Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
programmirovanie_okonchat.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
153.81 Кб
Скачать

Вопрос16 Циклические конструкции. Цикл for. Приведите примеры. Циклические конструкции. Цикл for

for цикл с известным заранее числом повторений. Его общий вид: for (<инициализация цикла>;<выражение-условие>;<список_выражений> <тело цикла>;

Здесь инициализация цикла - это последовательность определений (описаний) и выражений, разделяемых запятыми. Все выражения, входящие в инициализацию цикла, вычисляются только один раз при входе в цикл. Чаще всего здесь устанавливаются начальные значения счетчиков и параметров цикла. Под выражением-условием понимается конструкция, ранее описанная в циклах while и do: если она равна 0, то выполнение цикла прекращается. В случае отсутствия выражения-условия следующий за ним разделитель "точка с запятой" сохраняется. При отсутствии выражения-условия предполагается, что его значение всегда истинно. Это справедливо также в случае отсутствия секции инициализация цикла. Выражения из списка выражений вычисляются на каждой итерации после выполнения операторов тела цикла. Тело цикла может быть отдельным оператором, составным оператором или пустым оператором. for.

Пример. Составить программу по нахождению суммы квадратов первых k натуральных чисел.

#include <iostream.h>

void main()

{

int k;

cout << "\nЗадайте число: ";

cin >> k;

cout << '\n';

for (int i=1,s=0;i<=k;i++)

s+=i*i;

cout << "\nРезультат: " << s << '\n';

}

Вопрос17 Цикл for. Использование операции "запятая". Приведите примеры.

В заголовке цикла можно использовать операцию "запятая". Напомним, что операция "запятая" связывает два выражения в одно и гарантирует, что самое левое выражение будет вычисляться первым. Обычно она используется для включения дополнительной информации в заголовок цикла for. Например:

1. for (step=2,forgo=0; forgo<1000; step*=2)

forgo += step;

2. for (i=1,j=1; i<10,j<10; i++,j++)

z = i+j;

    Таким образом, в различные части оператора for можно включить несколько выражений, например, для параллельного изменения двух индексов:

for (; i==j; i++,j++)

    Пример 1.

#include<iostream.h>

main ()

{

for (int x=1,y=1,z=1; x<101,y<101,z<101; x++,y++,z++)

if (y*y+z*z==x*x)

cout << "x=" << x <<" y=" << y <<" z=" << z << endl;

}

    При выполнении этой программы ничего не будет выведено на экран, так как переменные x, y, z одновременно будут принимать значения 1, 2, 3 и т.д.

    Пример 2.

#include<iostream.h>

main ()

{

for (int x=1,y=1,z=1; x<10; x++,y++,z++)

cout << "x=" << x << "y=" << y << "z=" << z << endl;

}

Результаты работы программы:

x=1 y=1 z=1

x=2 y=2 z=2

x=3 y=3 z=3

x=4 y=4 z=4

x=5 y=5 z=5

x=6 y=6 z=6

x=7 y=7 z=7

x=8 y=8 z=8

x=9 y=9 z=9

 если  изменить текст последней программы, добавив в цикл условие y<5. Таким образом, текст программы примет следующий вид:

#include<iostream.h>

main ()

{

for (int x=1,y=1,z=1; x<10,y<5; x++,y++,z++)

cout << "x=" << x << "y=" << y << "z=" << z << endl;

}

Что будет выведено на экран при ее выполнении? Ниже приведены результаты работы этой программы:

x=1 y=1 z=1

x=2 y=2 z=2

x=3 y=3 z=3

x=4 y=4 z=4

Отсюда можно сделать вывод, что в данном случае операция "запятая" выполняет роль логической операции "И" (&&).

    Применение операции "запятая" не ограничивается только циклами for, но именно в них она используется особенно часто.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]