Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

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

Следует отметить, что данная программа реализована по неполной форме оператора CASE. Кроме того, отметим, что метка варианта – это необычная метка, так как она может принимать не только целочисленные значения, а принимать значения идентификатора, а следовательно и может отсутствовать описатель label.

Следует иметь ввиду, что существует так называемая полная форма описателя CASE.

CASE (селектор или ключ выбора) OF (список выбора)

ELSE (операторы) END;

Вышеприведѐнную программу можно реализовать по данной полной форме. Для этого сразу после END для CASE необходимо добавить следующее (в общем виде):

Else Begin

Written (‗набери селектор правильно‘);

Goto_6; End;

Таким образом, во втором варианте программы будет для оператора CASE два оператора END, стоящие рядом, не считая конца оператора.

Отметим, что в данном варианте программы присутствует так называемый оператор безусловного перехода GOTO, относящиеся к группе операторов перехода, которых три (IF, CASE, GOTO).

Поэтому и возникает необходимость более подробно рассмотреть оператор GOTO.

ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА GOTO

Отметим, что данный оператор крайне редко используется в программах на PASCAL, обычно он в программе функционирует с оператором if, но если в программе есть оператор выбора case по полной форме, то без него не обойтись.

В общем виде данный оператор можно представить.

GOTO _ N;

Где n – метка какого – либо оператора (целое число). Поэтому в вышеприведѐнной программе второго варианта по полной форме оператор CASE необходимо добавить в описатель LABEL цифру 6.

Реализуя GOTO 6 компьютер отыскивает в программе оператор, помеченный меткой 6 (в данном случае это оператор READ), пропуская все остальные операторы, и начинает реализацию программы.

Рассмотрим вариант программы с оператором CASE, оформленный по полной форме:

Program_geom; Label

1,2,3,4,5,6; Const

a=3.2; b=7.8e-1; h=2.4; f=27.4; r=4.2;

Var

S: read; N: integer;

Begin

6: Read (n); Case_n_of 1:S:=a*b; 2:S:=a*h/2;

3:S:=h*a*b/2;

4:S:=pi*r*r;

5:S:=pi*(r*r)*f/360;

else; Begin

Written (‗Введите правильно число‘);

Goto 6; End; End; Write (S); End.

Рассмотрим другие программы с использованием операторов IF и CASE.

Следующая программа демонстрирует вышеизложенный постулат о том, что несмотря на то, что в тексте программы литеры типа Char заключен в апострофы, то при вводе его с помощью read, он будет без апострофа (раздел 4.2.1.):

Program_ozencal; Vaz

uroc1: Char; Begin

Read (uroc1);

Case _uroc1_of

‗a‘:Writeln(‗отлично‘); ‗b‘:Writeln(‗хорошо‘); ‗c‘:Writeln ‗удовлетворительно‘);

‗d‘:Writeln(‗неудовлетворительно‘); end.

Проиллюстрируем вышеприведенные ограничения на примере того, что символьные данные можно только сравнивать (раздел 4.2.1.)

Program_ozenca2;

Vaz

Uroc2:Char;

Begin

Read (uroc2);

If(uroc2>=‘a‘) and (uroc2<=‘c‘)_then

Writeln(‗удовлитворительно‘)

Else_if_(uroc2=‘d‘)_oz__(uroc2=‘f‘)_then

Writeln(‗неудовлитворительно‘)

End.

ОПЕРАТОРЫ ЦИКЛА

На языке PASCAL существует три типа оператора цикла, различающиеся в основном заданным количеством циклов и заранее неизвестным количеством циклов. Рассмотрим их последовательно.

ОПЕРАТОР FOR-TO-DO

Данный оператор применим тогда, когда заранее известно количество циклов. В общем виде такой оператор можно представить:

FOR_(переменная:)=(начальное значение)_TO_(конечное значение)_DO_(какой-либо оператор)

Здесь: FOR – для; TO – до; DO – выполнить;

а значением может быть: математическое выражение целого типа, целое число или переменная целого типа.

Перевести данный оператор на русский язык можно так: для (for) какой-либо переменной в цикле

необходимо изменять свое значение от начального до (to) конечного значения, выполняя (do) при этом многократно (в цикле) какой-либо оператор.

Таким образом, в цикле (как видно из общей схемы оператора) переменная на каждом цикле получает свое новое значение, и каждое из этих числовых значений подставляется каждый раз в оператор после слова DO.

Обычно в этом операторе начальное значение меньше конечного. В этом случае переменная от своего начального до конечного значения «шагает» с шагом равным 1.

Следует отметить, что переменную в этом операторе иногда называют параметром цикла. После ключевого слова DO следует только один оператор. Если их должно быть несколько, то их необходимо заключить в операторные скобки BEGIN END. Если операторов несколько, а операторные скобки отсутствуют, то выполнится только первый оператор в цикле, а остальные операторы будут пропущены, и все остальные будут выполнены при выходе из цикла.

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

Рассмотрим конкретные примеры: Задача 1.

Пусть требуется составить программу для табулирования следующей функции в цикле.

y ax2 bx c ,

где а=0,1, b=3.7,

c 1,2 *10 1

Предельная изменения аргумента:

Источник: https://studfile.net/preview/16565609/