Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
206.34 Кб
Скачать

4.2.3. Оператор выбора

Оператор выбора CASE обеспечивает организацию разветвлений путем выбора одного из нескольких операторов.

Формат записи оператора выбора:

case <селектор> of

c1: <оператор 1>;

c2: <оператор 2>;

. . . . . . . .

cn: <оператор n>

else <оператор>

end;

Селектором в операторе выбора является выражение целого (кроме longint), символьного, логического типа, либо типа, определяемого пользователем (перечисляемого и ограниченного). Из операторов 1, 2, ..., n выполняется тот, для которого соответствующая константа c1, c2, ..., cn совпадает со значением селектора. Константы должны быть одного типа с селектором.

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

Оператор выбора работает следующим образом: сначала вычисляется значение селектора, затем в последовательности операторов 1, 2, ..., n отыскивается тот, которому соответствует константа, равная вычисленному значению селектора. Найденный оператор выполняется, оператор case завершает работу.

Если в списке констант не будет найдена константа, соответствующая вычисленному значению селектора, то выполняется оператор, стоящий в программе за case, если в case нет ветви else, а если такая ветвь есть, то оператору, стоящему за else.

Примеры записи оператора выбора:

1) case k+1 of

5: y:=sqr(x);

3,11: y:=sqrt(x);

4: z:=4*(a-b);

6..10: Writeln(a,b)

end;

2) case s of

'+', '-', '*', '/': Write('знак операции');

'A'..'Z': Write('буква');

'0'..'9': Write('цифра')

else Write('другой символ')

end;

Задача 1. По заданному номеру определить день недели.

program Day_Week;

var Day : byte;

begin

write (‘Введите номер дня недели : ‘); readln (Day);

case Day of

1 : writeln (‘ Понедельник ‘);

2 : writeln (‘ Вторник ‘);

3 : writeln (‘ Среда ‘);

4 : writeln (‘ Четверг ‘);

5 : writeln (‘ Пятница ‘);

6 : writeln (‘ Суббота ‘)

7 : writeln (‘ Воскресенье ‘);

end;

end.

Задача 2. Даны два действительных числа x и y. Арифметические действия над числами пронумерованы (1 – сложение, 2 – вычитание, 3 – умножение, 4 - деление). Составить программу, которая по введенному номеру выполняет то или иное действие над числами.

program year;

var

x, y, k: integer;

begin

write ('Введите первое число x: '); readln (x);

write (' Введите второе число y: '); readln (y);

write ('Введите номер арифметического действия k: '); readln (k);

{В зависимости от введенного номера арифметической операции k выбирается необходимое действие}

case k mod 10 of

1 : writeln ('Операция сложения x + y = ',x + y);

2 : writeln ('Операция вычитания x – y = ',x - y);

3 : writeln ('Операция умножения x * y = ',x * y);

4 : writeln 'Операция деления x / y = ',x / y)

end;

end.

Задача 3. Составить программу, которая для целого числа k (от 1 до 100), напечатает фразу “Мне k лет”, где k - введенное с клавиатуры число, при этом в нужных случаях слово “лет” заменить на слово “год” или “года”. (Например: при k=70 “Мне 70 лет”, при k=15 “Мне 15 лет”, k=23 “Мне 23 года” и т.п.)

program Year;

var

k: 1.. 100 ;

begin

write ('Сколько вам лет? : ');

readln (k);

if ( k >= 11) and (k <= 14)

then writeln ('Мне ',k, ' лет)

else

begin

case k mod 10 of

1 : writeln ('Мне ',k,' год');

2..4 : writeln ('Мне ',k,' года ');

0, 5..9 : writeln ('Мне ',k,' лет')

end;

end;

end.

Задачи для самостоятельного решения

  1. Вычислить значение у при заданном значении х:

  1. Для функций, заданных графически, определить значение y при заданном значении x.

а) б)

y y

2

1

0 2 x 0 1 x

3. Дано целое число. Определить:

а) является ли оно четным;

б) оканчивается ли оно четной цифрой.

  1. Известны год и номер месяца рождения человека, а так­же год и номер месяца сегодняшнего дня (январь — 1 и т. д.). Определить возраст человека (число полных лет). В случае сов­падения указанных месяцев считать, что прошел полный год.

  2. Даны радиус круга и сторона квадрата. У какой фигу­ры площадь больше?

  3. Известны сопротивления двух не соединенных друг с другом участков электрической цепи и напряжение на каж­дом из них. По какому участку протекает меньший ток?

7. Дано двузначное число. Определить:

а) какая из его цифр больше, первая или вторая;

б) является ли сумма его цифр двузначным числом;

в) больше ли числа а сумма его цифр;

г) кратна ли трем сумма его цифр;

  1. Дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т. е. таким числом, десятич­ная запись которого читается одинаково слева направо и справа налево.

  2. Даны три вещественных числа a, b, c. Если существует треугольник со сторонами a, b, c, то определить его вид (прямоугольный, остроугольный или тупоугольный) и особенности (равносторонний, равнобедренный, разносторонний).

  3. Написать программу, которая по вводимому числу от 1 до 11 (номеру класса) выдает соответствующее сообщение «Привет, k-классник». Например, если k=1, «Привет, первоклассник»; k=4: «Привет, четвероклассник».

  4. Мастям игральных карт условно присвоены следующие порядковые номера: «пики» — 1, «трефы» — 2, «бубны» — 3, «червы» — 4. По заданному номеру масти т (1<т<4) определить название соответствующей масти.

  5. Игральным картам условно присвоены следующие порядковые номера в зависимости от их достоинства: «вале­ту» -11, «даме»-12, «королю»-13, «тузу»-14. По­рядковые номера остальных карт соответствуют их названи­ям («шестерка», «девятка» и т. п.) По заданному номеру карты k (6 k 14) определить достоинство соответствую­щей карты.

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