Контрольная работа: Оператор выбора CASE

Оператор CASE представляет собой частный случай структуры ВЕТВЛЕНИЕ, когда возникает необходимость выбора одного из нескольких возможных вариантов вычислений в зависимости от значений некоторого выражения (ключа, селектора).

Порядок выполнения оператора Case следующий: вычисляется значение выражения K; полученное значение сравнивается с K1, K2, …, KN; если оно совпадает с одним из этих значений, то управление передается соответствующему оператору и выполнение оператора CASE завершается. Если значение выражения K не совпадает ни с одним из возможных значений, далее все зависит от типа оператора CASE: если он полный (в нем присутствует служебное слово ELSE), то управление передается команде S; в противном случае выполнение оператора завершается.

Конструкция ИнтАл Паскаль
Выбрать_По K K1: S1 K2: S2... KN: SN Иначе S Конец_Выбора   K – переменная целого типа; K1, K2, …, KN – возможные значения переменной К; S1, S2, …, SN, S – выполняемые команды CASE K OF K1: S1; K2: S2;... KN: SN ELSE S END;   K – выражение, определяющее значение ключа; K1, K2, …, KN – возможные значения ключа; S1, S2, …, SN, S – выполняемые операторы (простые или составные)

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

Селектор K представляет собой выражение порядкового типа. К порядковому типу относятся целочисленные типы, логический тип и символьный, с которым Вы познакомитесь в разделе 4.

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

Пример 1. По номеру дня недели требуется определить его название.

Program Day ;

Var Num: Byte ;

Begin

Writeln ('Введите номер дня недели') ;

If Num = 1 then Writeln ('Понедельник') Else if Num=2 then Writeln ('Вторник') Else if Num=3 then Writeln ('Среда') Else if Num=4 then Writeln ('Четверг') Else if Num=5 then Writeln ('Пятница') Else if Num=6 then Writeln ('Суббота') Else if Num=7 then Writeln ('Воскресенье') Else Writeln ('Это не номер дня …');

Case Num of

1: Writeln ('Понедельник') ;

2: Writeln ('Вторник') ;

3: Writeln ('Среда') ;

4: Writeln ('Четверг') ;

5: Writeln ('Пятница') ;

6: Writeln ('Суббота') ;

7: Writeln ('Воскресенье')

Else

Writeln ('Это не номер дня недели')

End;

End.

Пример 2. Составить программу, которая для заданных номеров месяца и года позволит определить количество дней в этом месяце.

Дано: month, year – номера месяца и года.

Найти: kol_days – количество дней в этом месяце.

Связь:

year – високосный, если year делится без остатка на 4, кроме тех, которые делятся на 100 и не делятся на 400. Например, 1900 год – не високосный, 2000 год – високосный.

Будем считать, что данные корректны.

Program Days ;

Var Year: Integer ;

month, kol_days: Byte ;

Sto: Boolean;

Begin

Write ('Введите номер месяца ') ;

Readln (month) ;

Case month of

1, 3, 5, 7, 8, 10, 12: kol_days := 31 ;

4, 6, 9, 11: kol_days := 30 ;

2: Begin {февраль}

Write ('Введите номер года ') ;

Readln (Year) ;

Sto:=(Year mod 100)=0;

if ((Sto=True) and (Year mod 400 =0)) or

((Sto=False) and (Year mod 4=0)) Then

kol_days := 29

Else kol_days := 28

End;

End ;

Writeln (kol_days);

End .

Пример 3. Составить программу проверки, делится ли заданное натуральное число на 7.

Пусть х – заданное натуральное число. Составим выражение сравнения: x mod 7 =0. Используем это выражение в качестве селектора; его возможные значения: True, False. Ниже приводятся два варианта использования оператора выбора (в полной и неполной формах):

Program PRIM_3; Var x: LongInt; Begin Write ('Введите натуральное число '); Readln (x);
Case x mod 7 = 0 of True: Writeln ('делится на 7'); False: Writeln ('не делится на 7') Case x mod 7 = 0 of True: Writeln ('делится на 7') Else Writeln ('не делится на 7')
End; End.

1. Какова структура условного оператора? * оператора выбора?

2. Каков порядок выполнения условного оператора? * оператора выбора?

1. Напишите программы решения следующих задач:

1) На экран компьютера выводится текст:

 

 

После того как пользователь сделает выбор, необходимо вывести знак препинания, каким должно заканчиваться предложение данного типа.

2) По номеру класса, в котором учится школьник, требуется определить, в школе какого типа он обучается (подготовительная, начальная, базовая, средняя).

3) На экран компьютера выводится текст:

 

 

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

4) Таблица К. Купера позволяет определить степень физической подготовленности человека в зависимости от суммы очков, набранных им на занятиях по физической культуре за неделю:

Сумма очков, набранных за неделю Степень физической подготовленности
Юноша Девушка
Не менее 75 Не менее 65 Превосходно
51-74 41-64 Отлично
32-50 27-40 Хорошо
21-31 16-26 Удовлетворительно
10-20 8-15 Плохо
Меньшее 10 Меньше 8 Очень плохо

Программа должна предложить ввести сумму набранных очков, уточнить, кто их набрал (юноша или девушка) и вывести на экран компьютера оценку физической подготовленности.

5) Программа предлагает ввести возраст человека (если необходимо, также его пол) и выводит, к какой группе он относится: дошкольник, ученик, работник, пенсионер.

6) В пятиэтажном доме на каждом этаже по 4 квартиры. Программа должна предложить ввести номер этажа и вывести номера квартир на этом этаже.

7) Программа предлагает ввести число k полных лет человека (от 1 до 120) и вывести фразу: «Вам k лет». Например, при k=3 – «Вам три года», k=18 – «Вам 18 лет», k=101 – «Вам 101 год».

8) Определить наиболее подходящий возраст партнера для вступления в брак. Программа должна запросить данные пользователя: возраст, признак пола (из выведенного на экран меню: 1 – юноша, 2 – девушка) и вывести подходящий возраст партнера, который вычисляется так: возраст девушки равен увеличенной на 7 половине возраста юноши, возраст юноши определяется как удвоенный возраст девушки минус 14.

9) Вывести в римской системе нумерации век, к которому относится заданный год (номер года вводится с клавиатуры).

10) Программа должна предложить выбрать способ вычисления площади круга (по заданному радиусу, или диаметру, или длине окружности), запросить требуемые данные, произвести вычисления и вывести результат на экран.

11) Программа должна предложить ввести текущее время и вывести период суток (день, ночь, утро, вечер, обед).


еще рефераты
Еще работы по информатике