2.1 Основные элементы языка
____________________________________________________________________
Рассмотрим программу, где используются логические функции:
program logic_1; {$mode objfpc}{$H+} uses
CRT, FileUtil; var
x: integer;
L1, L2, Result: boolean; begin
x:= 4; L1:= x > 3; L2:= x < 3;
writeln(UTF8ToConsole('Булева переменная L1= '), L1); writeln(UTF8ToConsole('Булева переменная L2= '), L2); Result := L1 AND L2;
writeln(UTF8ToConsole('L1 AND L2 равно '), Result); Result := L1 OR L2;
writeln (UTF8ToConsole('L1 OR L2 равно '), Result); Result := NOT Result;
writeln (UTF8ToConsole('NOT Result равно '), Result); writeln(UTF8ToConsole('Нажмите любую клавишу')); readkey;
end.
2.1.22 Условные операторы.
Условные операторы – это такие операторы, с помощью которых можно изменять последовательность выполнения операторов программы.
106
Глава 2 Введение в язык программирования Pascal
____________________________________________________________________
2.1.22.1 Оператор if …. then
Этот оператор имеет вид:
if условие then
оператор;
где оператор – любой оператор Паскаля, условие – логическое выражение.
Если это условие выполняется (т.е. это условие дает значение true), то будет выполнен оператор стоящий после слова then.
Рассмотрим пример:
if X < 3 then
writeln(X);
Здесь записано: "Если X < 3 , то вывести на экран значение X".
Оператор if…then можно представить в виде структурной схемы, с
помощью которой показывается ход выполнения программы:
да (true)
X<3 |
|
|
|
|
|
|
|
||
|
|
|
|
|
нет (false) |
writeln (X) |
|||
|
|
|||
|
|
|
|
|
|
|
|
|
|
Рис.2.51. Блок-схема выполнения условного оператора if…then
2.1.22.2. Оператор if …then ... else
Этот оператор записывается следующим образом:
107
2.1 Основные элементы языка
____________________________________________________________________
if условие then
оператор 1
else
оператор 2;
Обратите внимание, что перед else точка с запятой (;) не ставится. В
этом операторе, в зависимости от значения условия, будет выполняться либо оператор 1, либо оператор 2 , что иллюстрирует структурная схема.
|
|
|
условие |
|
|
|
|
(false) |
(true) |
||||
|
|
|||||
|
ложь |
|
истина |
|||
|
|
|
|
|
|
|
Оператор 2 |
|
|
|
Оператор 1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.52. Блок-схема выполнения условного оператора if…then…else
Из этой структурной схемы видно, что выбирается либо один, либо другой вариант продолжения программы.
Например, после выполнения оператора:
if X < 2 then
X1:= 0
else
X1:= 1;
переменной Х1 будет присвоено значение 0, если Х меньше 2 или 1, если Х больше или равно 2.
Пример. Вычислить значение функции:
108
Глава 2 Введение в язык программирования Pascal
____________________________________________________________________
x, x |
0 |
y 0, x |
0 , |
x2 , x |
0 |
значение x ввести с клавиатуры.
В приведенных далее примерах мы не будем составлять блок-схемы в тайной надежде, что читатель сам их составит в случае необходимости.
program ex1;{Вариант 1 - использование оператора if…then } {$mode objfpc}{$H+}
uses
CRT, FileUtil; var
X, Y: real; begin
writeln(UTF8ToConsole('Введите значение Х' )); readln(X);
if X > 0 then Y:= X;
if X = 0 then Y:= 0;
if X < 0 then Y:= SQR(X);
writeln('X= ', X:0:2, '; Y= ', Y:0:2); writeln(UTF8ToConsole('Нажмите любую клавишу')); readkey;
end.
program ex2;{Вариант 2 - использование оператора if…then…else } {$mode objfpc}{$H+}
109
2.1 Основные элементы языка
____________________________________________________________________
uses
CRT, FileUtil; var
X, Y: real; begin
writeln(UTF8ToConsole('Введите значение Х')); readln(X);
if X > 0 then Y:= X
else
if X = 0 then Y:= 0
else
Y:= sqr(X);
writeln('X= ', X:0:2, '; Y= ', Y:0:2); writeln(UTF8ToConsole('Нажмите любую клавишу')); readkey;
end.
Часто бывает необходимо, чтобы выполнялись или не выполнялись группа из нескольких операторов. Для этого эти операторы объединяются в блок, в
котором перед первым оператором ставится слово begin, а после последнего слово end. Все операторы между begin и end образуют так называемый со-
ставной оператор, а begin и end как бы выполняют роль скобок. Их часто так и называют – операторные скобки.
Пример:
program demo; {Демонстрация применения составного оператора}
{$mode objfpc}{$H+}
uses CRT, FileUtil;
110