Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по С++.doc
Скачиваний:
27
Добавлен:
20.08.2019
Размер:
2.26 Mб
Скачать

Цикл c предусловием.

Если по ходу выполнения алгоритма программы, необходимо выполнять группу операторов или оператор в одном и том же месте программы, до тех пор пока позволяет условие, можно организовать цикл с предусловием. Данный цикл схож с циклом по счетчику, у которого удалены инициализирующая и обновляющая части.

Формат оператора:

while” (B(x)) <тело цикла> “;”

B(x) – выражение любого типа.

<тело цикла> - простой, составной, структурированный. Обязательно существует оператор изменяющий условие.

Алгоритм работы оператора:

  1. Выполняется выражение (B(x)) :

    1. если выражение истинно, то выполняется <тело цикла>;

    2. если выражение ложно, то переходим на оператор за телом цикла.

  2. Если выражение представляет собой константа true, то цикл выполняется вечно.

  3. Если выражение представляет собой константа false, то цикл не выполняется ни разу, т.о. цикл с предусловием может не выполнится ни разу или необходимое число раз.

Обязательные условия для выполнения оператора:

  1. при входе в оператор, переменные участвующие в проверочном условии, должны иметь конкретные значения;

  2. в теле цикла должен присутствовать обязательный оператор, который изменяет значения переменных участвующих в проверочном условии таким образом, чтобы это условие стало ложным.

Блок-схема оператора цикла с предусловием

Примеры использования оператора while:

  1. while (x <= n)

{… x*=2;}

  1. Дано 10 попыток, угадай число, которое задумано.

#include <iostream>

using namespace std;

void main ()

{

int i = 1, ug, rez = 1;

cout << "\n Что будем угадывать? ";

cin >> ug;

while ( (i++ <= 10 ) && (rez!= ug))

{

cout << "\n Введите число:_ " ; cin >> rez ;

if (ug == rez)

cout << "\n Поздравляю! Вы угодали! ";

else cout<< "Вы не угадали !!!";

}

if (i <=10) cout<< " за " << i-1 << " раз";

else cout << "Вам не хватило 10 попыток!";

}

Цикл c постусловием.

Если по ходу выполнения программы, необходимо выполнить группу операторов или один оператор, а затем выяснить условие, что эти действия надо повторить, необходимо организовать цикл с постусловием.

Формат цикла с постусловием:

Do <тело цикла> “while” (B(x)) “;”

(B(x)) - выражение любого типа.

<тело цикла> - простой, составной, структурированный оператор.

Алгоритм работы цикла с постусловием:

  1. Выполняется тело цикла. Тело цикла обязательно выполняется хотя бы один раз.

  2. В теле цикла операнды, участвующие в условии B(x) , получают свои значения.

  3. Вычисляем (B(x)) :

  1. если (B(x) ! = 0 ) - true , то цикл повторяется;

  2. если (B(x) = 0 ) - false , то действие переходит на оператор, стоящий за циклом.

3 Если внутри тела цикла встречается continue , то все действия, вычисляемые в теле цикла пропускаются и выполняется условие (B(x)).

4. Если в теле цикла встречается break , то работа цикла прекращается, и действия переходят на оператор, стоящий за циклом.

Обязательные условия для выполнения оператора:

1. Присутствие символа точки с запятой в конце операторе do while является обязательным.

Примеры применения цикла с постусловие:

#include <iostream>

using namespace std;

void main ()

{

static const int N = 10 ;

int x = 1, sum = 0 ;

do // выполнять

{

sum += x ; // увеличивать sum на x

++x ; // инкрементировать x

} while ( x < N + 1 ) ; // пока x < N + 1

cout << sum << endl ; // выводится 55

}