Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

____________________________________________________________________

program fun_4; {оператор цикла с параметром for...to} {$mode objfpc}{$H+}

uses

CRT, FileUtil; var

x, y: integer; begin

for x:=-10 to 10 do begin

if x > 0 then y:=sqr(x) + 1

else

if x= 0 then y:= 0

else y:=sqr(x)-1;

writeln('x= ', x, ' y= ', y); end;

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

end.

2.1.23.4. Второй вариант оператора цикла с параметром

Оператор цикла с параметром может быть записан и в таком виде:

for переменная:= выражение 1 downto выражение 2 do оператор;

В этом варианте параметр цикла (переменная) после каждого повторения не увеличивается, а уменьшается на 1. Значение выражения 1 больше или равно

(на практике всегда больше) значения выражения 2.

121

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

____________________________________________________________________

Оператор цикла заканчивается как только параметр цикла станет меньше

выражения 2.

Пример:

program fun_5; {оператор цикла с параметром for...downto} {$mode objfpc}{$H+}

uses

CRT, FileUtil;

var

x, y: integer;

begin

for x:= 10 downto - 10 do begin

if x > 0 then

y:=sqr(x) + 1

else

if x = 0 then

y:= 0

else

y:= sqr(x) - 1;

writeln('x= ', x, ' y= ', y);

end;

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

end.

 

10

Пример: Вычислить S

x,

 

x 1

program summa_1; {Вариант 1 используется оператор цикла for}

{$mode objfpc}{$H+}

122

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

____________________________________________________________________

uses

CRT, FileUtil; var

x, s: integer; begin

s:= 0; // в этой переменной накапливается сумма for x:= 1 to 10 do

s:= s + x;

writeln('x= ', x, UTF8ToConsole(' сумма s= '), s); writeln(UTF8ToConsole('Нажмите любую клавишу')); readkey;

end.

program summa_2;{Вариант 2 используется оператор цикла while…do} {$mode objfpc}{$H+}

uses

CRT, FileUtil; var

x, s: integer; begin

s:= 0; // в этой переменной накапливается сумма x:= 1;

while x <= 10 do begin

s:= s + x; x:= x + 1;

end;

writeln('x= ', x, UTF8ToConsole(' сумма s= '), s); writeln(UTF8ToConsole('Нажмите любую клавишу')); readkey;

123

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

____________________________________________________________________

end.

Как мы видим, при использовании оператора for запись цикла становится короче. Поэтому, если заранее точно известно число повторений цикла или его можно вычислить перед выполнением цикла, то предпочтительней использо-

вать цикл for.

2.1.24 Оператор выбора case

Для программирования разветвлений в алгоритме чаще всего используется условный оператор if…then или if…then…else. Однако если путей выбора много, то запись алгоритма с помощью условного оператора становится гро-

моздкой и труднообозримой. В таких случаях намного удобнее использовать оператор выбора case. Этот оператор имеет следующий синтаксис:

case <выражение> of

значение 1: оператор 1;

значение 2: оператор 2;

………………………………………

значение n: оператор n;

else

оператор;

end;

В этой конструкции операторы могут быть составными, <выражение>

должно быть порядкового типа, т.е. integer, char, boolean, перечислимого или интервального типа. Более подробно о типах данных мы поговорим в 3.2.

Тип <значение> должен совпадать с типом <выражение>, может быть одно или несколько, разделенных запятыми, а также может представлять собой не-

который диапазон значений. Вся конструкция должна завершаться ключевым словом end.

Ветвь else вместе с оператором может отсутствовать.

124

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

____________________________________________________________________

Оператор работает следующим образом:

1.вычисляется значение <выражения>.

2.выполняется оператор, метка которого <значение> совпадает со значе-

нием <выражение>.

3. Если ни одно<значение> не совпадает со значением <выражение>, вы-

полняется оператор после else.

Рассмотрим применение оператора выбора case на примере создания меню в консольных приложениях.

Пример.

program case_menu;

 

{$mode objfpc}{$H+}

 

uses

 

CRT, FileUtil;

 

var

 

choose: integer;

 

begin

 

{Формирование меню}

 

writeln(UTF8ToConsole('Выберите нужный режим работы

:'));

writeln(UTF8ToConsole('Создание файла

1'));

writeln(UTF8ToConsole('Вывод содержимого файла

2'));

writeln(UTF8ToConsole('Поиск записей по заданным полям

3'));

writeln(UTF8ToConsole('Добавление записей в файл

4'));

writeln(UTF8ToConsole('Удаление записей из файла

5'));

writeln(UTF8ToConsole('Корректировка записей в файле

6'));

writeln(UTF8ToConsole('Выход из программы

7'));

repeat

 

125

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773