Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CР 1 - Управляющие операторы.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
251 Кб
Скачать

Приложение б справочный материал

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

Циклы программируются с помощью операторов for, while и do/while.

Структура повторения while

Структура повторения while позволяет определить действие, которое должно повторяться, пока некоторое условие остается истинным. Предложение псевдокода

ПОКА число четное

число заменить на целую часть половины числа

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

Оператор, записанный в теле структуры повторения while (ПОКА) составляет тело while и может быть отдельным или составным.

Как только условие станет ложным, повторение прерывается и выполняется первое предложение псевдокода, следующее за структурой повторения. Блок-схема на рис. Б.1 иллюстрирует управляющую логику структуры повторения while.

Рис.Б.1-Блок-схема структуры повторения while

Выполнение подобной структуры повторения никогда не прервется, если в теле структуры while не предусмотрено действие, приводящее условие к ложному значению.

Оператор с предусловием (while) записывается так:

while (условие) оператор;

Слово while является зарезервированным словом С++. Если условие сразу ложно, оператор ни разу не выполнится. Для составления логических выражений можно использовать операции отношения (>, >=, <, <=, ==, !=) и логические операторы (табл. Б.1).

Таблица Б.1

Логические операторы

Оператор

Название оператора

Пример выражения

Пояснение

&&

логическое умножение (И)

(i > j) && (k != 1)

Выражение истинно если i больше j И k не равно 1

||

логическое сложение (ИЛИ)

(ch == ‘y’) || (ch == ‘Y’)

Выражение истинно если значение переменной ch равно ‘y’ ИЛИ ‘Y’

!

логическое отрицание (НЕ)

!(i > 1)

Выражение истинно если i не больше 1

На рис Б.2 приведен программный код описанной выше структуры. В примере используется переменная целого типа value, которой в результате выполнения очередной итерации цикла присваивается новое значение. Комбинированная операция /= уменьшает значение переменной value в два раза. Условие (value % 2 == 0) будет истинным если остаток от деления равен нулю, т.е. число четное. Результат деления хотя бы один раз станет нечетным, поэтому зацикливания не произойдет. При вводе нечетного числа цикл не выполняется ни разу.

int main()

{

char s[100];

int value;

cout << "Задайте числo: ";

cin >> value;

while (value % 2 == 0)

value /= 2; // value = value / 2;

cout << "Результат: " << value << endl;

return 0;

}

Рис.Б.2-Пример оператора цикла с предусловием

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