Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ushebnoe_pasobie.doc
Скачиваний:
23
Добавлен:
17.03.2016
Размер:
1.53 Mб
Скачать
      1. Оператор case

Оператор case предназначен для организации выбора из множества различных вариантов. В общем случае оператор case выглядит следующим образом:

case <выражение> of <список выбора> else <оператор> end;

Здесь case, of, else, endключевые слова (пер. с англ.: выбор, из, иначе, конец);

<выражение>выражение любого порядкового типа;

<список выбора>одна или более конструкций вида: <значение>: <оператор>;

<значение>константа или константное выражение того же типа, что и<выражение>;

<оператор>любой оператор Турбо-Паскаля, в том числе и составной.

Работа оператора начинается с вычисления <выражения>. Значение этого выражения является критерием для выбора из нескольких вариантов. Если полученное значение выражения совпадает с одной из констант, то выполняется тот оператор, которому предшествует эта константа. Если такой константы не обнаруживается, то выполняется оператор следующий за ключевым словомelse. Ветвьelse может отсутствовать, и в этом случае управление передается оператору следующему за операторомcase.

Ниже приведены примеры, демонстрирующие работу оператора выбора.

program pr4;

var n:integer;

begin

writeln('Введите число');

read(n);

case n mod 2 of

1: writeln(n,'- нечетное');

0: writeln(n,'- четное');

end;

end.

Следующая программа по номеру месяца определяет время года.

program pr5;

var month: integer;

begin

writeln('Введите число - номеp месяца');

read(month);

case month of

12,1,2: writeln(month,' - зимний месяц');

3,4,5: writeln(month,' - весенний месяц');

6,7,8: writeln(month,' - летний месяц');

9,10,11: writeln(month,' - осенний месяц');

else writeln('Пpо это мне неизвестно!');

end;

end.

Составим программу, имитирующую работу простейшего калькулятора, выполняющего четыре арифметических действия.

program pr6;

var

op: char ;{Арифметическая операция}

x,y,z: real;{Операнды и результат}

begin

write('x,y=');

readln(x,y);

write('Введите аpифметическую опеpация:');

readln(op);

case op of

'*': begin z := x* y; writeln('z=',z);end;

'/': begin z := x/ y; writeln('z=',z);end;

'+': begin z := x+y; writeln('z=',z);end;

'-': begin z := x- y; writeln('z=',z);end;

else writeln('Увы! Это не аpифметическая опеpация.' );

end;

end.

      1. Оператор перехода

В языке Турбо-Паскаль имеются различные управляющие операторы, позволяющие написать любую программу. Тем не менее в языке имеется оператор безусловного перехода.

Безусловный переход приводит к передаче управления из одного места в программе в другое. Структура оператора перехода следующая:

goto <метка>

Здесь gotoключевое слово (англ.: перейти на [метку]).

Метка это произвольный идентификатор, позволяющий пометить некоторый оператор, чтобы ссылаться на него. Для совместимости со стандартным Паскалем разрешается в качестве метки использовать целые числа. Метка ставится перед оператором получающим управление и отделяется от него двоеточием. Как любой идентификатор метку необходимо описать в разделе описания меток, который начинается с ключевого слова label, за которым следует список меток:

...............

label m,1,loop;

begin

.........

goto 1;

m: .........

goto loop;

1: ............

goto m;

Метка, описанная в программе, обязательно должна использоваться. Метка, описанная в функции или процедуре, должна использоваться в той функции или процедуре, в которой она описана.

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