Примеры на 37 слайде решить.ppt
- Количество слайдов: 8
Оператор выбора Позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости от значения заданного выражения (селектора выбора).
Задача 1. «Старояпонский календарь» В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, быка, тигра, кролика, дракона, змеи, лошади, барана, обезьяны, петуха, собаки и кабана. Написать программу, которая по номеру года определяет его название в старояпонском календаре, если известно, что 1996 г. был годом крысы началом очередного цикла.
Две формы представления алгоритма выбор (неполная) Условие 1 Да Действие 1 Условие 2 Да Действие 2 Условие 2 Нет . . . Условие N Да Нет Условие 1 Да Действие 1 Нет Нет выбор – иначе (полная) Действие N Да Действие 2 Да Действие N . . . Условие N Нет Действие N+1
Оператор выбора в языке Паскаль CASE K OF A 1: Оператор1; A 2: Oператор2; . . . An: Оператор. N; END; Здесь K - выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический) А 1, …, Аn - константы того же типа, что и селектор, выполняющие роль меток ветвей, которые могут быть заданы списком или интервалом CASE K OF A 1: Оператор1; A 2: Oператор2; . . . An: Оператор. N; ELSE Оператор N+1 END;
Задача 1. «Старояпонский календарь» Решение. Поскольку цикл является двенадцатилетним поставим в соответствие название года остатку от деления номера этого года на 12. При этом учтем, что остаток от деления 1996 на 12 равен 4. Program Japan; Var year: integer; begin write('Ваш год рождения : '); readln(year); case year mod 12 of 0: write(’Год обезьяна'); 1: write('Год петуха'); 2: write('Год собаки'); 3: write('Год кабана'); 4: write('Год крысы'); 5: write('Год быка'); 6: write('Год тигра'); 7: write('Год кролика'); 8: write('Год дракона'); 9: write('Год змеи'); 10: write('Год лошади'); 11: write('Год овцы'); end.
Задача 2. «Большее среди двух» Найти наибольшее среди двух действительных чисел, используя оператор выбора Решение. Здесь селектором будет являться логическая величина Program Maximum; var Max, x, y: real; begin write (‘Введите два неравных числа ’); readln(x, y); case x > y of true: max: =x; false: max: =y; end; writeln (‘Максимальное из двух есть ’, max: 0: 2); readln; end.
Метки ветвей могут быть заданы списком или интервалом. Сформулируйте задачи к приведенным фрагментам программ (здесь переменная Ch должна быть объявлена как переменная типа Char, I - типа Integer) Пример1: Case Ch of 'A'. . 'Z', 'a'. . 'z': Write. Ln('Letter'); '0'. . '9': Write. Ln('Digit'); '+', '-', '*', '/': Write. Ln('Operator'); Else Write. Ln('Special character'); End; Пример2: Case I of 2, 3, 5, 7: Write. Ln(I, ’ - простое число'); 4, 6, 8. . 10: Write. Ln(I, ’ - составное число'); End;
Задачи для самостоятельной работы Написать программу, которая 1) по номеру дня недели (натуральному числу от 1 до 7) выдает в качестве результата его название и количество уроков в вашем классе в этот день. 2) по последней цифре заданного целого числа позволяет определить последнюю цифру его квадрата. 3) по введенному номеру времени года (1 - зима, 2 - весна, 3 лето, 4 - осень) выдавала бы соответствующие этому времени года месяцы, количество дней в каждом из месяцев. 4) Пусть элементами круга являются радиус (первый элемент, диаметр (второй элемент) и длина окружности (третий элемент). Программа по номеру элемента запрашивает его значение и вычисляет площадь круга.
Примеры на 37 слайде решить.ppt