Алгоритмические конструкции. Составной оператор. Оператор выбора IF. Сложные условия

Страницы работы

Содержание работы

Лекция

АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ.

Операторы выбора.

Мы познакомились с командой присваивания, командами ввода и вывода информации. Это так называемые простые операторы. Для того,  чтобы было удобно записывать алгоритмы,  используются алгоритмические конструкции.  К таким  алгоритмическим  конструкциям относятся:

- составной оператор;

- условные операторы;

- циклы.

1. Составной оператор

Составной оператор представляет собой совокупность последовательно  выполняемых  операторов,  заключенных в так называемые операторные скобки BEGIN и END.

BEGIN

<оператор 1>;

<оператор 2>;

...

<оператор n>

END;

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

Отдельные операторы  внутри составного оператора отделяются друг от друга точкой с запятой.  Однако,  перед ключевым  словом

END точку с запятой можно не ставить.

Использование сотавного оператора будет  продемонстрировано ниже.

2.  Оператор выбора IF.

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

Такой алгоритм  в общем виде можно записать так:

Если <условие> то <действие>;        (пример 1)

или

Если <условие> то <действие 1>

иначе <действие 2>;         (пример 2)

Такая алгоритмическая  конструкция называется развилкой и в языке Pascal записывается следующим образом:

IF <условие>

ТHEN

<оператор 1>

ELSE

<оператор 2>

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

>     больше

>=    не меньше

<     меньше

<=    не больше

<>    не равно

=     равно

В качестве примера рассмотрим программу, которая определяет максимальное из двух чисел:

PROGRAM MAXIMUM;

VAR X,Y: INTEGER;

BEGIN

WRITE('Введите два целых числа: ');

READLN(X,Y);

WRITE('Максимальное из двух чисел равно ');

IF X>Y

THEN

WRITE(X)

ELSE

WRITE(Y)

END.

Обратите внимание, что ключевые слова THEN и ELSE отделяются от следующих за ними операторов пробелами ( если вы поставите точку с запятой, то это будет ошибкой!).

Если в команде ветвления после слов THEN или ELSE требуется выполнить не одну, а несколько команд, то они заключаются в операторные скобки BEGIN - END.

Например:

IF D<>0

THEN

BEGIN

X1:=((-B+sqrt(D))/(2*A);

X1:=((-B-sqrt(D))/(2*A);

END

ELSE

writeln('действительных корней нет');

Допустима и сокращенная форма команды ветвления:

IF <условие> THEN <оператор>;

Например:  IF D<0 THEN WRITE('Делить на 0 нельзя');

3. Сложные условия

3.1. Что такое True и False

Все приведенные выше примеры содержат  ПРОСТЫЕ  условия.  Под

УСЛОВИЕМ мы будем понимать какое-либо выражение, о котором (после определения всех значений входящих в него  переменных)  можно сказать,  что оно либо ИСТИННО   либо  . Например:

If a>b then ...  - здесь условие a>b  является  True  только тогда, когда значение переменной a больше значения переменной b.

ЭТО ЖЕ условие можно записать по  другому:  a-b>0  или  b<a  или

b-a<0. И во всех приведенных случаях выражение является истинным

(True) тогда и только тогда,  когда значение переменной a больше значения переменной b.

Выражения, значения которых могут равняться True или  False, принято называть ЛОГИЧЕСКИМИ.  Как правило, в логических выражениях всегда присутствует знаки сравнения:

>  - больше             =  - равно

>= - больше или равно   <> - не равно

<  - меньше

<= - меньше или равно

Попробуйте сами определить,  когда приведенные ниже значения выражений являются True, а когда - False:

a=b       a>=b    a+1=b-1      s*s<=121    abs(x-x0)<e

3.2. Логический тип данных

Учитывая, что в языке Pascal имеются выражение,  принимающие конкретные  значения (True и False),  был введен специальный тип данных.  Этот тип данных принято называть ЛОГИЧЕСКИМ типом  данных.  Переменные данного типа описываются в блоке описания VAR с помощью ключевого слова BOOLEAN. Например:

var X: integer;

f: boolean;

...

Значением переменной f может быть либо True,  либо False. True и

False известны компилятору языка и Вы можете использовать их явно в программе. Например:

...

f:=True;

if f then WriteLn('А значение-то ИСТИННО!!!');

...

Как еще  можно использовать переменные логического типа?  Учитывая, что они принимают точно такие же значения, как и ЛОГИЧЕСКИЕ

выражения,  их  можно  использовать  ВМЕСТО  этих выражений (как предложено в вышеприведенном примере). Возможные варианты:

...

Write('Сколько Вам лет');  ReadLn(Year);

Write('А сколько лет Вашему другу'); ReadLn(Year_Friend);

f:=(Year+5<Year_Friend);

if f then WriteLn('Ничего себе,  Ваш друг старше Вас более чем на 5 лет ?!');

...

Достаточно часто встречаются ситуации, когда одно и тоже условие используется в программе более одного раза. В этом случае приведенный способ  использования ЛОГИЧЕСКОЙ переменной позволит Вам, во-первых, сократить текст программы,  а, во-вторых, облегчит ее модификацию. Представляете,  если одно и то же условие (логическое выражение) встречается в Вашей программе  10  раз,  а  потом вдруг выяснилось, что там ошибка...

Похожие материалы

Информация о работе