Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
05.06.2018
Размер:
32.26 Кб
Скачать

Билет №14. Оператор выбора CASE OF.

Оператор выбора является обобщением оператора if-then-else на случай выбора одного из нескольких возможных продолжений выполнения программы. Выбор осуществляется по ключу выбора (селектору). Синтаксическая структура этого оператора такова:

case < ключ выбора > of

< константа выбора 1> : < оператор 1>;

. . . . . .

< константа выбора m> : < оператор m>;

[else < оператор>]

end;

где: < константа выбора > - значение того же типа, что и ключ выбора. Ключом выбора может быть выражение любого порядкового типа.

m - число ветвей выбора (не более чем мощность типа ключа выбора).

При выполнении оператора выбора вначале вычисляется значение ключа, а затем последовательным просмотром ветвей выбора отыскивается такая ветвь, для которой константа выбора совпадает со значением ключа. Оператор этой ветви выполняется, после чего оператор выбора завершает работу и передает управление следующему по тексту программы оператору. Ветвь else (если она присутствует) выполняется только в том случае, когда ни одна ветвь оператора case-of не выбрана. Если ветвь else отсутствует, то это эквивалентно ветви else с пустым оператором.

В ветвях выбора вместо констант выбора можно использовать список констант выбора (разделенных запятыми), либо диапазон констант выбора (заданный посредством .. также как для типа-диапазона). В этих случаях выбор ветви производится при равенстве константы из списка или из диапазона констант с ключом выбора.

Операторы выбора являются хорошо структурированным средством выбора из любого числа альтернатив и часто выполняют ту же функцию, что и вложенные операторы if-then-else.

Следующая простая программа демонстрирует создание и использование перечислимого типа и оператора case-of.

program colors;{Выбор цвета из набора, заданного перечислимым типом}

uses CRT;

type color = (cWhite,cRed,cBlue,cGreen,cBlack); {перечислимый тип}

var b:0..4; c:color;

begin TextBackground(cyan);TextColor(white);ClrScr;window(10,10,50,20);

write('Введите число (от 0 до 4):');read(b);c:=color(b);

case c of cWhite: begin TextColor(white);writeln('white') end;

cRed: begin TextColor(red);writeln('red') end;

cBlue: begin TextColor(blue);writeln('blue') end;

cGreen: begin TextColor(green);writeln('green') end;

cBlack: begin TextColor(black);writeln('black') end;

end

end {colors}.

Задача 4.2.6(14)

program Project14;

type mas=array[1..3,1..4] of Integer;

var a,b:mas;

i,j,l1,l2,d1,d2,s:Integer;

procedure p(x:mas; e1,e2:Integer; var n,k:integer);

var i,j,max:Integer;

begin

max:=x[1,1];

n:=1;

k:=1;

for i:=1 to e1 do

for j:=1 to e2 do

if x[i,j]<max then

begin

max:=x[i,j];

n:=i;

k:=j;

end;

end;

begin

for i:=1 to 3 do

for j:=1 to 3 do

read(a[i,j]);

Writeln;

for i:=1 to 3 do

for j:=1 to 4 do

read(b[i,j]);

p(a,3,3,l1,l2);

p(b,3,4,d1,d2);

s:=a[l1,l2];

a[l1,l2]:=b[d1,d2];

b[d1,d2]:=s;

Writeln;

for i:=1 to 3 do begin

for j:=1 to 3 do begin

write(a[i,j],' ');

end; writeln; end;

Writeln;

for i:=1 to 3 do begin

for j:=1 to 4 do begin

write(b[i,j],' ');

end; writeln; end;

Readln;

end.

Соседние файлы в папке 1 семестр сессия