
4_Условия и CASE.ppt
- Количество слайдов: 18
Лекция 4. Управляющие операторы языка Операторы ветвления (условные операторы) и оператор множественного выбора Case 1
Операторы ветвления 2
Правила записи логических выражений: n Не равно n Отрицание n Либо-либо n Принадлежность диапазону 3
Условный оператор if if выражение then оператор_1 [else оператор_2; ] Формы: n Полная (есть else) n Сокращённая (нет else) Особенности: n операторные скобки; n Выражение – логическое!!! 4
Пример 1 if a < 0 then b : = 1; if (a < b) and ((a > d) or (a = 0)) then inc(b) else begin b : = b * a; a : = 0 end; 5
Вложенные условия n if a < b then if a < c then m : = a else m : = c else if b < c then m : = b else m : = c; *** else всегда относится к ближайшему if Блок-схема? 6
Пример 2 Вычисление значения функции 7
Пример 2 Вычисление значения функции Program Pr_1; Var x, y: real; Begin writeln(‘Введите значение аргумента’); Read(x); If (x<-3) or (x>3) then begin writeln(‘Значение должно принадлежать интервалу [-3; 3]’); exit End; If x<-2 then y: =-2*x-5; If (x>-2) and (x<0) then y: =-SQRT(1 -SQR(x+1))-1; If (x>=0) and (x<1) then y: =x-1; If x>1 then y: =SQRT(1 -SQR(x-2)); Writeln(‘Для x=‘, x: 6: 2, ‘значение функции Y=‘, y: 6: 2) End. 8
Пример 3 y -2 1 2 x -2 program shot; var x, y: real; begin writeln(‘ Введите значения х и у: ’); readln(x, y); if (sqr(x) + sqr(y) <= 1) or (x <= 0) and (y >= - x - 2) then writeln(‘ Точка попадает в область’) else writeln(‘ Точка не попадает в область’); end. 9
program Pr_2; var NUM : integer; Begin writeln(‘Введите число от 1 до 4: ’); readln (NUM); if NUM=0 then writeln (‘Ноль’); if NUM=1 then writeln (‘Один’); if NUM=2 then writeln (‘Два’) if NUM=3 then writeln (‘Три’) if NUM=4 then writeln (‘Четыре’); end. Чем «плоха» программа? 10
Оператор варианта case выражение of константы_1 : оператор_1; константы_2 : оператор_2; константы_n : оператор_n; [ else : оператор ] end; 11
Какие типы называют порядковыми? ? ? 12
Порядковые типы Все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество. К любому порядковому типу могут быть применены функции: n. Ord - возвращает порядковый номер конкретного значения в данном типе; n. Pred и Succ - возвращают предыдущее и последующее значения соответственно; n. Low и High - возвращают наименьшее и наибольшее значения величин данного типа. К порядковым относятся: логические, целые, символьный, перечисляемый, интервальный. 13
Интервальный (ограниченный) тип данных n Интервальный от … до … n Это отрезок (диапазон значений) любого порядкового типа. n Отрезок задается диапазоном от минимального до максимального значения констант, разделенных двумя точками. n В качестве констант могут быть использованы константы, принадлежащие к целому, символьному, логическому или перечисляемому типам. n Скалярный тип, на котором строится отрезок, называется базовым типом. Примеры отрезков: 1. . 10 -15. . 25 'a'. . 'z' n Минимальное и максимальное значения констант называются нижней и верхней границами отрезка, определяющего интервальный тип. Нижняя граница должна быть меньше верхней. n Над переменными, относящимися к интервальному типу, могут выполняться все операции и применяться все стандартные функции, которые допустимы для соответствующего базового типа. 14
Перечисляемый тип данных n Представляет собой ограниченную упорядоченную последовательность скалярных констант, составляющих данный тип. n Значение каждой константы задается ее именем. n Имена отдельных констант отделяются друг от друга запятыми, а вся совокупность констант, составляющих данный перечисляемый тип, заключается в круглые скобки. n Например, n перечисляемый тип Rainbow (РАДУГА) объединяет скалярные значения RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, VIOLET (КРАСНЫЙ, ОРАНЖЕВЫЙ, ЖЕЛТЫЙ, ЗЕЛЕНЫЙ, ГОЛУБОЙ, СИНИЙ, ФИОЛЕТОВЫЙ). n Перечисляемый тип Traffic_Light (СВЕТОФОР) объединяет скалярные значения RED, YELLOW, GREEN (КРАСНЫЙ, ЖЕЛТЫЙ, ЗЕЛЕНЫЙ). 15
Описание перечисляемого типа данных 1. В разделе описания типов Type Rainbow = (RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, VIOLET); var Color: Rainbow; 2. разделе описания переменных, например: var Section: (RED, YELLOW, GREEN); n К переменным перечисляемого типа НЕ может быть применим оператор READ n К переменным перечисляемого типа может быть применим оператор присваивания: Section: = YELLOW; *** Упорядоченная последовательность значений, составляющих перечисляемый тип, автоматически нумеруется, начиная с нуля и далее через единицу. Отсюда следует, что к перечисляемым переменным и константам могут быть применены операции отношения и стандартные функции Pred, Succ, Ord. 16
Примеры применения case a in 4 : writeln(’ 4’); 5, 6 : writeln(’ 5 или 6’); program cursor_keys; 7. . 12: writeln(’от 7 до 12’); uses Crt; var key : char; end; begin writeln('Нажмите одну из курсорных клавиш '); key : = readkey; if ord(key) <> 0 then writeln('обычная клавиша') else begin key : = readkey; case ord(key) of 77: writeln('стрелка вправо'); 75: writeln('стрелка влево'); 72: writeln('стрелка вверх'); 80: writeln('стрелка вниз'); else writeln('не стрелка'); end; end. 17
Самостоятельно Написать программы: n n Дописать слово «рубль (рубля, рублей)» к заданному числу. Программа «Калькулятор» на 4 арифм. действия 18