Цикл с параметром.
Формат оператора цикла с параметром: for (выражение_1; выражение_2; выражение__3) оператор; Выражение 1 выполняется только один раз в начале цикла. Обычно оно определяет начальное значение параметра цикла (инициализирует параметр цикла). Выражение 2 — это условие выполнения цикла. Выражение 3 обычно определяет изменение параметра цикла, оператор — тело цикла, которое может быть простым или составным. В последнем случае используются фигурные скобки. Алгоритм выполнения цикла for представлен на блок-схеме на рис. Обратите внимание на то, что после вычисления выражения 3 происходит возврат к вычислению выражения 2 — проверке условия повторения цикла. С помощью цикла for нахождение N! можно организовать следующим образом: F=l; for(i=l;i<=N;i++) F=F*i; Используя операцию «запятая», можно в выражение 1 внести инициализацию значений сразу нескольких переменных: For (F=l,i=l;i<=N;i++) F= F*i; Некоторых элементов в операторе for может не быть, однако разделяющие их точки с запятой обязательно должны присутствовать. В следующем примере инициализирующая часть вынесена из оператора for: F=l; i=1; for (; i<=N; i++) F=F*i; Ниже показан еще один вариант вычисления N!. В нем на месте тела цикла находится пустой оператор, а вычислительная часть внесена в выражение 3. for(F=l,i=l;i<=N;F=F*i,i++); Этот же оператор можно записать в следующей форме: for (F=l,i=l;i<=N;F*=i++); В языке Си оператор for является достаточно универсальным средством для организации циклов. С его помощью можно программировать даже итерационные циклы, что невозможно в Паскале. Вот пример вычисления суммы элементов гармонического ряда, превышающих заданную величину е: for (n=l,S=0;1.0/n>eps && n<INT_MAX;n++) S+=1.0/n; И наконец, эта же самая задача с пустым телом цикла: for(n=l,S=0;1.0/n>eps && n<INT_MAX; S+=l.0/n++); Следующий фрагмент программы на Си++ содержит два вложенных цикла for. В нем запрограммировано получение на экране таблицы умножения. for (x=2;x<=9;x++) for (у=2;у<=9;у++) cout<<”\n”<<x<<<<*<<y<<” = “<<x*y; На экране будет получен следующий результат: 2*2 = 4 2*3 = 6 ……… 9*8=72 9*9=81 Оператор continue. Если выполнение очередного шага цикла требуется завершить до того, как будет достигнут конец тела цикла. используется оператор continue. Следующий фрагмент программы обеспечивает вывод на экран всех четных чисел в диапазоне от 1 до 100. for(i = l; i<=100;i++) {if (i%2) continue;cout<<”\t”<<i; } Для нечетных значений переменной / остаток от деления на 2 будет равен единице, этот результат воспринимается как значение «истина» в условии ветвления, и выполняется оператор continue. Он завершит очередной шаг цикла, выполнение цикла перейдет к следующему шагу. Ниже показан пример программы на языке Си, которая выводит на экран монитора буквы латинского алфавита от "A" до "Z".
#include <stdio.h> #include <windows.h> #include <conio.h> main() { char str[50]; unsigned char ch; textbackground(4); textcolor(15); clrscr(); for(ch='A'; ch<='Z'; ch++) printf("%c", ch); CharToOem("\nДля выхода нажмите любую клавишу", str); printf(str); getch(); } Результат выполнения рассмотренной программы, написанной на языке Си.
// Пример №7 Int c; c=1; while (c!=0) { cin>>c; if (c==2)
|