Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль_Конспект лекций.doc
Скачиваний:
41
Добавлен:
27.05.2015
Размер:
1.39 Mб
Скачать

6.2 Оператор множественного выбора (варианта) - case

Ситуация множественного выбора возникает при написании программ достаточно часто: обработка нажатия клавиш, обработка списков, файловых потоков и т. д. В этом случае использование обычного ветвления затруднительно, так как структура программы становиться слишком сложной. Оператор множественного выбора позволяет достаточно компактно решить подобные задачи. Блок-схема выполнения этого оператора представлена на рис. 6.3. На этом рисунке: I - выражение или переменная целого типа; n- количество ветвей. Управление передаётся на ветвь, номер которой совпадает со значением выражения или переменной I.

Форма записи оператора case:

case <выражение порядкового типа I> of

<список значений и диапазонов 1>: <оператор 1>;

<список значений и диапазонов 2>: <оператор 2>;

………………………………………………………..

<список значений и диапазонов n>: <оператор n>;

else <оператор n +1>;

end;

1

n

S1

S2

Sn

2

…..

S1

S2

Sn

Рис.6.3. Блок-схема оператора множественного выбора

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

Примеры:

1)

case A of

1, 2, 3: n:= 75;

4 . . 6: n:= 134;

7 . . 10, 17 . . 23: n:= 247 ;

end;

2)

case chr(M) of

'A', 'Б', 'Е', 'Р’: begin writeln(M); Inc(X); end;

'Л’ , 'K', ‘T’, 'И' : begin

writeln(M-32) ;

Inc(Y);

end;

, 'Ю, 'Э' : begin writeln(M-27) ; Inc (Z) ; end;

end;

3)

case V of

1, 2, 7: Write ('Да') ;

4, 6, 8: Write ('Может быть’);

else Write ( 'Нет' ) ;

end;

Задача. С клавиатуры вводится число 0 ≤ п ≤ 5. Вывести на экран числительное, соответствующее этому числу.

program p6_2 ;

var

n: integer;

begin

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

Read ln(n) ;

case n of

1 : write ( ' один' ) ;

2: write (' два ');

  1. : write ( 'три' ) ;

  2. : write ( 'четыре' ) ;

  1. : write ( ' пять ' ) ; else

write ('число не подходит');

end;

end.

Лекция 7. Операторы организации циклов

Object Pascal предлагает три различных оператора цикла, которые применяются в определенных ситуациях.

7.1 Цикл типа for

Этот цикл принято использовать, когда известно количество итераций (повторений), или когда на каждом шаге требуется знать номер итерации. В цикле for используется переменная порядкового типа, которую часто называют счётчиком цикла или параметром цикла. Данная переменная увеличивается или уменьшается автоматически на одну единицу. Существуют две формы цикла — прямая и обратная.

7.1.1 Прямая форма оператора for

Запись прямой формы этого оператора имеет вид:

for <идентификатор переменной порядкового типа> :=

n1 to n2 do <оператор(ы)>;

где <идентификатор переменной порядкового типа> - это счётчик или параметр цикла, который изменяется от начального значения n1 (меньшее значение) до n2 (большее значение соответствующего типа). Параметр цикла при каждой итерации изменяется на единицу. Если n1 > n2, то оператор цикла вообще не выполняется. <оператор> - это один простой или составной оператор языка Pascal. Обычно этот оператор называют телом цикла.

Примеры:

1)

for i:=1 to 100 do S:= S + i*i;

В этом примере i параметр или переменная цикла, которая изменяется от 1 до 100. Телом цикла является оператор присваивания S:= S + i*i , который будет выполняться 100 раз.

2)

for c:= 'A' to 'Z' do Writeln(ord(c), ' - ', c) ;

В этом примере параметром цикла является переменная символьного типа с, которая «пересчитывает» буквы английского алфавита, а в теле цикла выполняется вывод каждой буквы и её кода на экран.

3)

for t:= 300 to 400 do if (t mod 3) = 0 then Writeln(t);

В этом примере параметром цикла является переменная целого типа t , которая изменяется от начального значения 300 до конечного значения 400. В теле цикла выполняется вывод на экран тех значений переменной t , которые кратны трём.

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