Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не 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; }