Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kitkat_otvety.doc
Скачиваний:
5
Добавлен:
01.08.2019
Размер:
3 Мб
Скачать
☆

2) В отличие от оператора if, оператор case позволяет выбрать и выполнить один опе­ратор не из двух, а из нескольких операторов. В общем случае оператор case может быть записан следующим образом:

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

< список _меток_1 > : < оператор1 >;

< список _меток_2 > : < оператор2 >;

< список _меток_n > : < операторn >;

else

< оператор > end;

В приведенном формате оператора < выражение > - это выражение порядкового типа, определяющее дальнейший ход выполнения программы. Использова­ние порядкового типа означает, что нельзя использовать выражения, возвращающие дей­ствительные числа или строки. Список меток представляет собой список констант, раз­деленных запятыми. Если константы представляют диапазон чисел, то вместо списка можно указать первую и последнюю константы диапазона, разделенные двумя точками. Например, список 1,2,3,4 можно записать как 1..4. Выполняется оператор case следующим образом. В начале вычисляется значение выражения, следующего за словом case. Далее по­лученное значение последовательно сравнивается с константами из списков меток, сто­ящих перед двоеточиями. Если значение выражения совпадает с константой из какого-либо списка меток, то выполняется соответствующий этому списку меток оператор. На этом выполнение опе­ратора case завершается. Заметим, что в качестве оператора может быть использован и составной оператор. Если значение выражения не совпадает ни с одной константой из всех списков меток, то выполняется оператор, стоящий за зарезервированным словом else. Раздел else не обязательно должен присутствовать в операторе case. Если он отсут­ствует, и значение выражения не совпало ни с одной константой из списков меток, то ни один оператор не будет выполнен.

Билет 5

  1. Встроенные процедуры и функции с вещественными аргументами.

  2. Передача процедурам (функциям) имени другой процедуры (функции) в качестве параметра.

1)

2) Процедурные типы. Основное назначение процедурных типов - дать программисту гибкие средства передачи функций и процедур в качестве фактиче­ских параметров обращения к другим процедурам и функциям. Оказывается, что процедуры и функции тоже являются данными и, следовательно, в программе могут существовать переменные процедурных типов. Переменным процедур­ных типов в качестве значений присваиваются имена соответствующих подпрограмм. Этот подход широко используется в Object Pascal, особенно при использовании клас­сов. При создании консольных приложений процедурный тип использует­ся для передачи процедур и функций в качестве параметров из вызывающей программы в вызываемую подпрограмму. Существуют два процедурных типа: тип-процедура и тип-функция. Для объявления процедурного типа используется заголовок про­цедуры (функции), в котором опускается ее имя

type < имя процедурного типа >= < заголовок процедуры или функции без имени >; Передаваемые подпрограммы не могут быть локальными, т. е. процедурами или функциями, объявленными внутри другой подпрограммы. Переменным процедурных типов допускается присваивать в ка­честве значений имена соответствующих подпрограмм. После тако­го присваивания имя переменной становится синонимом имени подпрограммы.

type

funс1 = function (a,b:real):real;

func2 = function {const x:integer):char;

p1 = procedure (x,y:integer; var z:real);

p2 = procedure;

В программе могут быть объявлены переменные процедурных типов, например, так:

var

pr : pl;

fl, f2 : func2;

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