Книга: Основы программирования на языке Паскаль

а: = b +с;

с: = sgrt ( a + exp ( b ));

goto M1;

z: = x+y;

writeln (z);

M 1: S : = P ;


В случае, если бы не было оператора goto М1 ; все операторы выполнялись бы последовательно один за другим. здесь же после оператора с: =... стоит goto М1 ; следовательно, машина не будет выполнять z:=... и writeln... , а сразу после с: =... перейдет к выполнению оператора М: S : = Р ;

Метки, применяемые в программе, должны быть описаны в разделе описания меток, который желательно ставить первым среди описаний. Выглядит раздел так: Label М1, М2, L, NK ; т.е. после слова Label перечисляются через запятую все метки, которые будут применяться в данном блоке (программе). Заканчивается описание символом ';' .

Пример: составить программу, вычисляющую значения функции cos х , где начальное х = 0 , следующее х = 0.01 и т.д.

Program Prim3; Label M; Var x:real; BEGIN x:=0; M: writeln('x=',x,'cos x = ',cos(x)); x:=x+0.01;

goto M ; readln ; END .

Программа будет работать следующим образом: х присвоится значение 0 ; writeln выведет на экран текст, который указан в первых кавычках х = , далее извлечет из ячейки х значение и выведет его на экран; затем снова выведет текст cos х = , затем вычислит значение cos х и выдаст его на экран, т.е. машина выведет первую строку в виде

x = 0.0000000000Е + 00 cos х = 9.9999999999Е - 01.

После этого возьмется то х , которое было извлечено из ячейки памяти х (прежнее значение х ), т.е. 0.0 , к нему прибавляется величина 0.01 и результат снова занесется в ячейку памяти х так, что в х будет 0.01 , после этого оператор goto m ; передаст управление оператору, помеченному меткой м , т.е. оператору writeln, и машина выдаст новую строку:

x = 1.0000000000Е - 02 cos х = 9.9995000041Е - 01;

– выполнит оператор

х: =x + 0.01, получит х = 0.02;

– выведет строку

x = 2.0000000000Е - 02 cos х = 9.9980000666Е – 01;

– сделает х = 0.03 и т.д., до бесконечности, так как в данном алгоритме окончание работы не предусмотрено. Для завершения работы следует применить оператор if .

3.3. Оператор if

Общий вид: If булевское выражение then оператор else оператор;

Работа оператора: вначале вычисляется булевское выражение, значение которого в конечном итоге может быть только TRUE или FALSE. Если булевское выражение TRUE, то выполняется оператор, следующий за словом then , а затем происходит переход к оператору, следующему за if . Если булевское выражение false , то выполняется оператор, следующий за словом else , затем происходит переход к оператору, следующему за оператором if .

Замечание : после оператора, следующего за then, перед else символ ';' не ставится, так как оператор if еще здесь не закончен, а ';' ставится после окончания оператора. Возможно применение сокращенного оператора if :

If булевское выражение then оператор;

Здесь, если булевское выражение true, выполняется оператор, следующий за словом then , и происходит переход к оператору, следующему за оператором if . Если булевское выражение false , то оператор if игнорируется (вообще не выполняется), а выполняется оператор, следующий за if .

Переделаем "бесконечную" программу п. 3.2. в такую, которая остановится тогда, когда х станет равным 0.1 .

Program Prim4; Label M; Var x:real;

BEGIN x:=0;

К-во Просмотров: 467
Бесплатно скачать Книга: Основы программирования на языке Паскаль