- •Форма оператора ввода (ввод данных с внешнего устройства в оп):
- •Форма оператора вывода (вывод данных из оп на внешнее устройство):
- •Операторы управления работой программы
- •Условный оператор
- •If (выражение) оператор 1 else оператор 2;
- •If (выражение) оператор
- •Вложенные условные операторы
- •Оператор switch
- •Форма переключателя:
- •Форма альтернативного выбора:
- •Операторы цикла.
- •Вложенные циклы
- •Операторы передачи управления
- •Оператор выхода из цикла или переключателя break.
- •Материал для самостоятельного изучения. Функции printf () и scanf ()
Операторы цикла.
Циклы реализуют алгоритмическую схему повторения обработки данных.
В С++ определены три разных цикла:
цикл с предусловием:
while (выражение-условие)
тело_цикла;
цикл с постусловием:
do тело_цикла
while (выражение-условие);
цикл с параметром:
for (инициализация_цикла; выражение-условие; выражения коррекции)
тело_ цикла
Тело_цикла - это отдельный оператор, который всегда завершается точкой с запятой, либо составной оператор, либо блок.
Только описание или определение не может быть телом цикла. Операторы цикла задают многократное выполнение операторов тела цикла.
Выражение-условие – во всех операторах скалярное (чаще всего логическое или арифметическое) определяет условие продолжение повторения обработки, если оно истинно (отлично от нуля).
Прекращение выполнения цикла происходит в случаях:
ложное (нулевое) значение выражения-условия;
выполнение в теле цикла оператора передачи управления за пределы тела цикла.
Последнюю возможность рассмотрим позже.
Оператор while- оператор цикла с предусловием.
При входе в цикл вычисляется условие, если оно отлично от нуля, выполняется тело_цикла.
Затем вычисление выражения-условия и выполнение тела_цикла повторяются, пока условие не станет ложным.
Следующая функция подсчитывает длины строки, заданной с помощью адресующего ее указателя – параметра функции:
int lt (char*stroka)
{int ln = 0;
while (*stroka++) ln++;
return ln;}
Ниже приведены некоторые выражения условия:
while (a<b), while (point! = nullptr ) // (point-указатель),
while(point), while (point! = 0).
Если в теле цикла не изменяется выражение-условие, могут возникнуть бесконечные циклы или ''зацикливание''.
Пример бесконечного цикла, с пустым оператором в теле:
while (1);
Такой цикл может быть закончен за счет событий, явно непредусмотренных в программе. Например, событие – указание операционной системе ''снять задачу''.
Оператор do while является оператором цикла с постусловием.
При входе в цикл выполняется тело_цикла.
Затем проверяется выражение-условие и, если его значение истинно, вновь выполняется тело цикла и так далее.
К выражению-условию требования те же: оно должно изменяться при итерациях за счет операторов тела циклов.
do ; while (1); //бесконечный цикл
Примеры:
1)… char letter;
cout <<”Вы желаете продолжить? ( Y/N ) “;
letter = getch(); // чтение буквы с клавиатуры
letter = toupper(letter); // преобразование в прописную
while ((letter != 'Y') && ( letter != 'N'))
{ putch(7); //звуковой сигнал для неверного символа
letter = getch() ;
letter = toupper(letter);
}
…
2) … cout <<”Вы желаете продолжить? ( Y/N ) “
do {
letter = getch(); // чтение буквы с клавиатуры
letter = toupper(letter); // преобразование в прописную
if ( ( letter != 'Y' ) && (letter != 'N') )
putch(7) //звуковой сигнал для неверного символа
}
while ((letter != 'Y') && ( letter != 'N'));
Цикл for– цикл с параметром.
Заголовок цикла после зарезервированного слова for в круглых скобках включает три части: инициализация_цикла, выражение-условие и список выражений для коррекции, которые разделяются двумя знаками ';'.
Каждая из этих частей может отсутствовать, но даже если все они отсутствуют, два разделителя - ';' должны присутствовать в заголовке.
Инициализация_цикла – это выражение, или определения объектов одного типа.
Вычисляется один раз при входе в цикл.
Заканчивается точкой с запятой.
Как правило, определяются и инициализируются параметры цикла.
Выражение-условие - логическое выражение, проверяется на каждой итерации цикла.
Если его нет, полагают, что оно истинно.
В этом случае сохраняется следующая за условием точка с запятой.
Выражения коррекции – список выражений, разделенных запятыми, которые вычисляются на каждой итерации после выполнения тела_цикла до следующей проверки условия.
Тело_цикла – может быть отдельным простым оператором, составным оператором или блоком.
При входе в цикл один раз вычисляются выражения из секции инициализация_цикла.
Вычисляется значение выражения-условия, если оно истинно, выполняются операторы тела_цикла и вычисляются выражения коррекции.
Далее цепочка повторяется, пока выражение-условие не станет ложным.
for – цикл с заданным числом повторений, для контроля числа итераций используется управляющая переменная – параметр цикла.
Примеры показывают, что управляющая переменная может изменяться на любую требуемую величину:
for(c =0 ; c<=100 ; c +=10)
…;
for(b =100; b >= -100; b -= 25)
…;
for(let =’A’ ; let <= ‘Z’; let ++)
…;
for(pr =0.0 ; pr<= 100.0 ; pr +=0.5)
…;
Область действия имени объекта, объявленного в заголовке цикла, определяется от точки объявления объекта до конца блока, в котором цикл присутствует.
Пример:
… for ( int i = 0 ; i< 3 ; i++) cout << i<<” “ ;
for ( ; i > 0 ; i -- ) cout << i<<” “ ;
0 1 2 3 2 1
