Информатика - Новый полный справочник для подготовки к ОГЭ
Программирование. Условный оператор - Обработка информации - ИНФОРМАЦИОННЫЕ ПРОЦЕССЫ
Конспект
До сих пор мы рассматривали только линейную программу. Команды выполнялись последовательно, друг за другом, от начала до конца, без исключений. Такой технологии недостаточно, чтобы решать множество компьютерных задач. Чаще программе требуется сделать, например, либо одно, либо другое действие, в зависимости от выполнения тех или иных условий. Для этого придуман условный оператор if — специальная команда, которая проверяет заданное условие, и, в зависимости от результата проверки, меняет течение программы.
Принцип работы условного оператора if такой:
- выполняется проверка условия.
- если условие истинно, выполняется один набор команд.
- если условие не выполнилось, выполняется другой набор команд.
Схематично это можно представлять следующим образом:
В программе на языке Паскаль данная конструкция оформляется:
Обратите внимание, if, then и else — это служебные слова языка (если, то, иначе). Между if и then записывается логическое выражение, результатом которого является истина или ложь. После слова then должен стоять оператор, который выполняется в случае истинности условия. После слова else указывается оператор, который выполняется в случае, если проверяемое условие ложно.
Заметим, что независимо от того, будет проверяемое условие истинным или ложным, после окончания условного оператора компьютер выполнит команду, стоящую после этого оператора.
Вот, фрагмент программы, который проверяет, чётность некоторой переменной а и выводит на экран слово “Even”. Если переменная ложна, то на экран выводится слово “Odd”:
Следует обратить внимание, что при написании условия (между if и then) возможно записывать не только одиночные операции сравнения, но и любые логические выражение, составленные, из нескольких логических операций.
Приведём пример фрагмента программы, который проверяет, верно ли, что целочисленная переменная а является трёхзначным натуральным числом (“YES”/“NO”).
Возможно, вы заметили, что при рисовании схемы условного оператора мы использовали термин “набор команд”, а при описании конструкции на языке Паскаль — уже термин “оператор”. Это не одно и то же. Под термином “оператор” на данном этапе мы подразумеваем одну команду. А термин “набор команд” обещает, что в настоящий момент можно выполнить несколько команд. Термин “оператор” в Паскале — это не то же самое, что “команда”. Хотя “команда”, как правило, является оператором. В то же время, всю условную конструкцию называем “условным оператором”. Примером послужит фрагмент программы:
Это тоже оператор, имеющий в своем составе, в частности, пару операторов, выводящих текст на экран.
Простым оператором служит одна команда. Например, оператор присваивания, вывод на экран или ввод с клавиатуры.
Ещё в Паскале есть структурированные операторы.
Они обычно состоят из нескольких частей. Одним из таких примеров является условный оператор.
Так как же написать на Паскале, что в случае, например, истинности проверяемого условия, нужно выполнить не одну команду-оператор, а несколько!?
Для этого в Паскале есть специальный оператор, называемый составным оператором, или операторной скобкой. Это объединение нескольких операторов в единое целое, являющееся, в свою очередь одним оператором, потому что после слов then и else в операторе i f можно написать только один оператор.
Операторной скобкой являются слово begin, после которого помещают любое количество разных операторов, и затем слово end.
Приведём пример части программы, которая проверяет, является ли переменная а нечётной. Если является, то переменная увеличивается на 1 и её новое значение выводится на экран. Если не является, то сначала на экран выводится её старое значение, потом из переменной вычитается 3.
В приведённом примере в случаях then и в else необходимо выполнить более одной команды, поэтому в обоих случаях используется операторная скобка.
Заметим, что потеря операторной скобки является весьма частой ошибкой и на экзамене ведёт к потере балла.
Поэтому рекомендуется запомнить такое правило Паскаля: если после do1, then, else нужно выполнить несколько команд, необходимо использовать операторную скобку (begin и end).
Ещё одно важное правило, касающееся синтаксиса языка Паскаль: перед словом else не ставится символ “;” (точка с запятой)!
Символ “;” точка с запятой на Паскале используется при перечислении операторов, которые должны быть выполнены друг за другом, чтобы отделить их друг от друга. В рассматриваемом нами условном операторе if между словом then и словом else можно написать только один оператор. В этом месте не следует ничего перечислять. При необходимости перечисления операторы объединяют операторной скобкой begin-end. Поэтому перед else точка с запятой не ставится!
Обратите внимание, операторная скобка очень похожа на пару “begin/end.”, которая начинает и заканчивает любую программу на языке Паскаль. Но это не совсем одно и то же. Чтобы показать это, конец программы заканчивается точкой, а операторная скобка никогда не имеет после себя точку.
После then и else возможно не написать ни одного оператора. Например:
Или:
Точка с запятой в данном случае явно показывает, что оператор после else отсутствует. Для этой же цели используют пустую операторную скобку:
В случае, когда не требуется выполнять никаких действий после else, это служебное слово опускается, т. е. в условном операторе i f будет только раздел then и не будет раздела else. Такая форма записи называется неполной формой оператора if. В то время как при наличии обоих блоков — then и else — говорят о полной форме оператора if.
Вы уже обратили внимание, что после then и else надо писать ровно один оператор. При этом сама конструкция if-then-else (или if-then) тоже называется оператором. Это означает, что совершенно нормальной и удобной является конструкция каскадных или вложенных операторов if.
Например, при необходимости вывода на экран условия: является ли целочисленная переменная а числом положительным (“positive”), отрицательным (“negative”) или нулём (“zero”), — будет очень кстати такое решение:
В данном примере в случае первого else записан один оператор — снова оператор if, который выбирает, какой вариант верен — меньше нуля или ноль, (else для условия а > 0 означает, что а ≤ 0.)
1 О том, что такое “do” и когда он применяется, вы можете прочитать ранее. Вкратце — это часть описания цикла.