|
Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Операторы управления
Задача 3.22. Определить, сколько раз последовательность из
произвольных чисел меняет знак.
Чтобы решить задачу, нужно попарно перемножать элементы последовательности. Если результат произведения пары чисел — отрицательное число, значит, эти числа имеют разные знаки.
Пусть в переменной
хранится текущий элемент последовательности, в
— предыдущий. Введём первое число
(до цикла) и второе
(в цикле). Если их произведение отрицательно, то увеличиваем количество смен знака на 1 (k++). После чего сохраняем значение
в переменную
и повторяем цикл (рис. 3.33).
Предлагаем читателю самостоятельно разобраться с текстом программы на С++:
#include <iostream>
using namespace std;
int main ( )
{
float A,B; int i,K,N;
cout<<" N = "; cin>>N;
for (K=0, cout<<" A = ", cin>>A, i =2; i<=N; i++)
{
cout<<" B = "; cin>>B;
if (A*B<0) K++;
A=B;
}
cout<<" K = "<<K<<" \n ";
return 0;
}
Задача 3.23. Поступает последовательность из
вещественных чисел. Определить количество простых чисел в последовательности.
Блок-схема алгоритма изображена на рис. 3.34. Обратите внимание, что для решения задачи было организовано два цикла. Первый цикл обеспечивает ввод элементов последовательности. Второй цикл находится внутри первого и определяет, является ли поступившее число простым (задача 3.15).
#include <iostream>
using namespace std;
int main ( )
{
unsigned long int X;
unsigned int N;
int i, k, j;
bool Pr;
for ( k=0, cout<<" N = ", cin >>N, i =1; i<=N; i ++)
{
for ( cout<<" X = ", cin >>X, Pr=true, j =2; j<=X/ 2; j ++)
if (X%j ==0)
{
Pr=false;
break;
}
if ( Pr ) k++;
}
if ( k==0) cout<<"Простых чисел нет \n ";
else cout<<"Количество простых чисел k = "<<k<<" \n ";
return 0;
}
Задача 3.24. Дано
наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Найти количество наборов, элементы которых возрастают.
Блок-схема алгоритма решения задачи показана на рис. 3.35. Нетрудно заметить, что алгоритм реализован с помощью двух циклических процессов. Внутренний цикл проверяет является ли последовательность возрастающей, а внешний повторяет алгоритм для новой последовательности.
Программный код решения задачи 3.24:
#include <iostream>
using namespace std;
int main ( )
{
unsigned int K, i, kol, A, B; bool pr;
for ( cout<< "K = ", cin >>K, kol =0, i =1; i<=K; i ++)
{
for ( pr=true, cout<<" A = ", cin >>A;A! = 0; A=B)
{
cout<<" B = "; cin >>B;
if (B!=0 && A>=B) pr=false;
}
if ( pr ) kol++;
}
cout << " kol = " << kol <<endl;
return 0;
}


