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

Лекция 6. Управляющие конструкции. Управляющая конструкция if

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

if условие then оператор;

Кто знаком с английским языком, уже ухватил суть этой конструкции. На русский язык это выражение можно перевести так:

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

Другими словами, если какое-то заданное условие верно, то выполняется указанный оператор. Иначе этот оператор не выполняется.

Часто одного оператора бывает недостаточно, тогда используют программные скобки:

if условие then begin

Оператор 1;

Оператор 2;

...........

Оператор n;

end;

Операторы, заключенные в программные скобки begin .. end воспринимаются, как единый оператор. Иногда и этого бывает недостаточно. Что, если по логике программы требуется выполнить один оператор, если условие верно, и другой, если оно неверно? Тут приходит на помощь расширенная конструкция:

if условие then оператор 1

else оператор2;

Как видно из синтаксиса, если указанное условие истинно, то выполнится оператор 1. Иначе выполнится оператор 2. Еще одно правило, которое следует запомнить: перед словом else точка с запятой не ставится!

Конечно же, с помощью программных скобок можно расширить и эту конструкцию:

if условие then begin

Оператор 1;

.............

Оператор n;

end

else begin

Оператор 1;

.............

Оператор n;

end;

Сейчас самое время упомянуть о классических стилях программирования. Мы уже говорили, что хороший стиль программирования подразумевает каждый отдельный оператор писать на своей строке, применять отступы. В литературе по программированию часто встречается два классических стиля. Один стиль выглядит так:

if условие then

begin

Оператор 1;

..............

Оператор n;

end;

То есть, слово begin пишется на отдельной строке. Другой стиль выглядит иначе:

if условие then begin

Оператор 1;

..............

Оператор n;

end;

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

Однако и это еще не все. В предыдущем примере мы рассматривали только одно условие. Если оно верно, то выполнялся один оператор, а если нет – другой. А что, если по логике программы требуется проверить более, чем одно условие? И снова мы можем расширить эту конструкцию. Взгляните на синтаксис:

if условие 1 then оператор 1

else if условие 2 then оператор 2

else оператор 3;

Здесь, если условие 1 будет верно, конструкция выполняет оператор 1 и завершает работу. Если это условие неверно, проверяется условие 2. Если условие 2 верно, то выполняется оператор 2, и конструкция завершает работу. Если же оба условия неверны, выполняется оператор 3. Расширений else if в такую конструкцию можно вставлять сколько угодно.

Давайте теперь проанализируем часть кода из примера прошлой лекции.

If Perem2 = 0 then begin

Soobshenie;

Edit3.Text := '0';

end

else begin

Perem3 := Delenie(Perem1, Perem2);

Edit3.Text := FloatToStr(Perem3);

end;

Вам уже должно быть понятно, что если Perem2 действительно равна 0, то выполнится первый блок кода. Иначе будет выполнен второй блок кода.

Пример 1.

Составить программу, выводящую на экран слово Yes, если точка с координатами (x,y) принадлежит заштрихованной области, и No - в противном случае.

Решение

Заштрихованная область представляет собой часть круга радиуса R, расположенного и первой четверти. Как известно, точки (х,у), лежащие внутри круга с центром и начале координат и радиусом R, удовлетворяют неравенству х2 + у2 <=R2. Кроме тогоч точки, лежащие в первой четверти координатной плоскости, должны удовлетворяй условиям: х>= 0 и у >= 0. Учитывая то, что точки, лежащие внутри заштрихованной области, должны одновременно удовлетворять всем трем условиям, соответствующее логическое выражение может быть записано следующим образом: ( x*x+y*y<=R*R) and (х>=0) and (у>=0)

Программа

Program_1;

{$APPTYPE CONSOLE}

Uses

SynUtils;

Var

x,y,R:real;

Begin

writeln('Enter x,у,R');

readln(x,y,R);

if ( x*x+y*y<=R*R) and (x>=0) and (y>=0)

then writeln(‘Yes’)

else writeln(‘No’);

Readln

End.

Результаты работы программы

Enter x,у,R

1 1 2

Yes

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