Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
osnovy_programmirovanija_v_srede_lazarus.pdf
Скачиваний:
185
Добавлен:
18.03.2015
Размер:
6.53 Mб
Скачать

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

Глава 2 Введение в язык программирования Pascal

____________________________________________________________________

var X: integer;

begin

writeln(UTF8ToConsole ('Введите значение Х' ));

readln(X);

if X < 2 then

begin

// начало составного оператора

writeln(UTF8ToConsole('Выполнение программы по условию true'));

writeln('X = ', X);

end

// конец составного оператора

{ составной оператор считается как бы одним оператором, поэтому перед else ;

не ставится}

else

begin

// начало составного оператора

writeln(UTF8ToConsole('Выполнение программы по условию false'));

writeln('X = ', X) ;

end; // конец составного оператора

writeln(UTF8ToConsole('Нажмите любую клавишу'));

readkey;

end.

Иллюстрация в общем виде: составной оператор записывается внутри

служебных слов begin и end:

begin

s1;

s2;

s3;

s4;

end;

111

2.1 Основные элементы языка

____________________________________________________________________

где S1, S2, S3, S4 - операторы Паскаля, в том числе и составные опера-

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

 

begin

 

s1;

 

s2;

 

begin

 

p1;

Составной

begin

оператор

 

v1;

 

 

s3

 

 

 

p2

 

 

v2;

 

 

 

 

 

end;

 

 

 

p3;

 

 

 

end;

 

 

 

s4;

 

end;

Рис. 2.53. Вложенные составные операторы

Здесь s3 и p2 также составные операторы.

Условные операторы также могут быть вложены друг в друга.

if x < 2 then if y > 0

then s:= s + 1 else s:= s - 1;

Соответствующая блок-схема приведена на рис. 2.54.

112

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