Оператор CASE. Pascal
Структура оператора CASE: Оператор CASE позволяет реализовать множественный выбор и в общем виде записывается так: case выражение of список констант 1: begin {последовательность инструкций 1} end; список констант 2: begin {последовательность инструкций 2} end; список констант 3: begin {последовательность инструкций N} end; else begin {последовательность инструкций, выполняемая в} {случае, если выражение не попало ни в один из} {списков констант} end;
Основные понятия: Выражение - выражение, от значения которого зависит дальнейший ход программы (одна из последовательностей инструкций, которая должна быть выполнена). Список констант - константы, разделенные запятыми. Если константы представляют диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например, список 1, 2, 3, 4, 5, 6 может быть заменен диапазоном 1..6.
Изображение в блок-схеме: Выражение Команды 1.. Команды 2.. Команды
Пример: Задание: Создать программу, имитирующую работу микрокалькулятора, составить словесный алгоритм, блок- схему, написать программу. Замечание: примем за К – знак арифметической операции. Словесный алгоритм: 1. Ввод данных: x, y – два числа; K – операция. 2. Вычисление: выполняем действия в зависимости от выбранной операции + z:=x+y; - z:=x-y; * z:=x*y; / z:=x/y; 3. Вывод z;
Блок-схема: начало x,y,K K z:=x-y z конец + -*/ z:=x+y z:=x*y z:=x/y
Программа program calk; var x,y:integer; z:real; k:char; begin writeln(1-е число) ; readln(x); writeln(+ - / * ) ; readln(k); writeln(2-е число) ; readln(y); case k of + : z := x + y; - : z := x - y; * : z := x * y; / : z := x / y; end; writeln(Решение=, z); end.
Задание для самостоятельного решения Составьте блок-схему и напишите программу к следующей задаче. Задано значение времени суток в часах. Определите какому периоду суток это время соответствует (утро/день/вечер). Словесный алгоритм: 1. Ввод данных: x (время, н-р: 9 или 18) 2. Выбор одного из вариантов выполнения программы 0..10: z:=утро; : z:=день; : z:=вечер; : z:=ночь; 3. Вывод данных: время суток – z. Но мы должны помнить, что переменная Z должна быть строкового типа, так как мы присваиваем ей словесное значение.