- •Лекция 2. Переменные
- •Типы переменных
- •Комментарии
- •Лекция 3. Операции и операнды. Выражения. Стандартные функции и процедуры Операции и операнды. Выражения
- •Стандартные функции и процедуры
- •Лекция 4.Операторы.Ввод-вывод информации. Операторы
- •Ввод-вывод информации
- •Лекция 5.Создание консольного приложения
- •Лекция 6. Управляющие конструкции. Управляющая конструкция if
- •Самостоятельная работа.
- •Цикл for
- •Самостоятельная работа.
- •Инструкция (цикл) while
- •Самостоятельная работа.
- •Оператор цикла с постусловием repeat
- •Самостоятельная работа.
- •Оператор выбора case
- •Оператор перехода goto
- •Лекция 7.Строки Строковые типы
- •Стандартные подпрограммы для строк
- •Строковые выражения
- •Лекция 8. Преобразования типов Преобразования типов
- •Другие преобразования
- •Подстановка значений
- •Глобальная переменная DecimalSeparator
Лекция 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
