§ 3. Основные алгоритмические конструкции
Алгоритмические конструкции
Как вам уже известно из курса информатики, любой алгоритм может быть записан с использованием трех базовых алгоритмических конструкций: следование, цикл и ветвление (пример 3.1). Команды, составляющие алгоритмическую конструкцию следование, выполняются последовательно, друг за другом, в том порядке, в котором они записаны. Команды цикла и ветвления управляют порядком выполнения других команд в программе и относятся к командам управления (управляющим конструкциями). Алгоритмическая конструкция ветвления обеспечивает выполнение одной или другой последовательности команд в зависимости от истинности или ложности некоторого условия. Оператор ветвления — команда, реализующая алгоритмическую конструкцию ветвления на языке программирования. Алгоритмическая конструкция повторение (цикл) представляет собой последовательность действий, выполняемых многократно. Саму последовательность называют телом цикла. Оператор цикла — это команда, реализующая алгоритмическую конструкцию повторения на языке программирования. Существуют разные возможности управлять тем, сколько раз будет повторяться тело цикла. Может быть задано условие продолжения или окончания работы цикла, а также число повторений тела цикла. В зависимости от этого выделяют цикл с предусловием, цикл с постусловием и цикл с параметром. Существуют разные возможности управлять тем, сколько раз будет повторяться тело цикла. Может быть задано условие продолжения или окончания работы цикла, а также число повторений тела цикла. Выделяют следующие циклы: цикл с предусловием, цикл с постусловием и цикл с параметром. Выбор цикла зависит от задачи. Во многих случаях циклы взаимозаменяемы. При выборе цикла можно ориентироваться на следующее:
|
Пример 3.1 Блок-схемы алгоритмических конструкций. Следование Ветвление Цикл
Кроме блок-схем, для графического представления алгоритмов используют структурограммы (N — S-диаграммы, диаграммы Насси — Шнейдермана). Примеры структурограмм Команда ветвления: Команда цикла с предусловием: |
3.2. Логический тип данных
В языке программирования С++ для работы с условиями определен логический тип данных bool. Величины типа bool могут принимать два значения — false (ложь) и true (истина). Значения false и true получаются в результате выполнения операций сравнения над числовыми данными. Сравнивать можно константы, переменные, арифметические и логические выражения. Для сравнения используют следующие знаки:
Логическое выражение — выражение, принимающее одно из двух значений: true или false. Логические выражения можно присваивать переменным типа bool, а также выводить их значения на экран: будет выведено 0 для значения true или 1 для значения false соответственно (пример 3.2). В языке С++ любое числовое значение может восприниматься как логическое. При этом значения, равные нулю, считаются ложью, а не равные нулю — истиной. В С++ допустимы логические выражения следующего вида: bool a = 3 <= x <= 7;. Однако смысл такого выражения не совпадает с математическим. При выполнении программы компилятор сначала проверит истинность условия 3 <= x и заменит его на 0 или 1 в зависимости от того, истинно это условие или нет. Затем произойдет проверка того, что полученное значение меньше либо равно 7. Вне зависимости от истинности первой части условия результат всегда будет истинным, т. к. 0 <= 7 и 1 <= 7. Поэтому значение переменной a всегда будет истинным, и оно не зависит от значения переменной x. |
Тип bool назван в честь английского математика и логика Джорджа Буля, занимавшегося вопросами математической логики в XIX в. Пример 3.2. Примеры логических выражений:
Значение логического выражения y >= x * x можно определить, только зная значения переменных x и y. При x = 2 и y = 10 значение выражения — true. При x = 10 и y = 2 – false. Проверим истинность этих выражений в программе:
Результат работы программы: |