© Черноскова Ю.Ю. Ветвления в языке программирования Pascal Общие сведения
© Черноскова Ю.Ю. Илья Муромец и разбойники Собирался старый казак Илья Муромец Гуляти во чисто поле, Во чисто поле показа́ковать. Наезжает он три дороженьки, Три дороженьки-перекрест очки, - На камешке подпись подписана: Первая дороженька направо, Другая дороженька налево, Третья дороженька прямо-на́прямо. «Мне направо идти - богата быть, Мне налево идти - женату быть, Мне на прямо идти - убита быть...»
© Черноскова Ю.Ю. Ветвление Организация действий, при которой осуществляется выполнение той или иной последовательности команд в зависимости от результата проверки условий.
© Черноскова Ю.Ю. Классификация команд ветвления Ветвление Выбор из двух Выбор из двух вариантов IF Выбор из нескольких Выбор из нескольких вариантов CASE
© Черноскова Ю.Ю. Оператор ветвления If Условие Оператор 1 Да Нет Оператор 2 Полная форма записи Сокращенная форма записи
© Черноскова Ю.Ю. Оператор ветвления If If then условие оператор else ; Сначала вычисляется значение выражения, записанного в условии. Если значение выражения есть True, то выполняется, записанный после слова then. Если результат False, то выполняется. Если слово else отсутствует, то выполняется оператор, следующий сразу за оператором If. Перед else точка с запятой не ставится!
© Черноскова Ю.Ю. По блок-схеме алгоритма запишите фрагмент программы: … readln(x,y); If x<0 then If y>x then begin y:=y-x; x:=sqr(y); end else y:=y+x; writeln(x,y); … x<0 y:=y+x y:=y-x TrueFalse y>x TrueFalse x:=sqr(y) x, y Составной оператор Точка с запятой не ставится!
© Черноскова Ю.Ю. Оператор ветвления If x:=10; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие
© Черноскова Ю.Ю. Оператор ветвления If x:=10; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 107
© Черноскова Ю.Ю. Оператор ветвления If x:=10; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 10710<7 False
© Черноскова Ю.Ю. Оператор ветвления If x:=10; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 10710<7 False 100
© Черноскова Ю.Ю. Оператор ветвления If x:=10; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 10710<7 False
© Черноскова Ю.Ю. Оператор ветвления If x:=7; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие
© Черноскова Ю.Ю. Оператор ветвления If x:=7; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 77
© Черноскова Ю.Ю. Оператор ветвления If x:=7; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 777<7 False
© Черноскова Ю.Ю. Оператор ветвления If x:=7; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 777<7 False 49
© Черноскова Ю.Ю. Оператор ветвления If x:=7; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 777<7 False 4956
© Черноскова Ю.Ю. Оператор ветвления If x:=3; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие
© Черноскова Ю.Ю. Оператор ветвления If x:=3; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 37
© Черноскова Ю.Ю. Оператор ветвления If x:=3; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 373<7 True
© Черноскова Ю.Ю. Оператор ветвления If x:=3; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 373<7 True 2
© Черноскова Ю.Ю. Оператор ветвления If x:=3; y:=7; if x<y then x:=2 else y:=sqr(x); s:=x+y; xys Условие 373<7 True 29
© Черноскова Ю.Ю. Оператор выбора Case Условие 1 Операторы 1 Да Нет Условие 2 Операторы 2 Да Нет Условие n Операторы n Да Нет … Операторы n+1 Полная форма записи Сокращенная форма записи
© Черноскова Ю.Ю. Оператор выбора Case Case of : ;операторы : ;... : ; else ; end; В качестве переменной может стоять выражение. Сначала вычисляется значение этого выражения, затем это значение находят из списка значений и выполняются соответствующие операторы. Если значения нет ни в одном списке, то выполняются операторы, стоящие за словом else. Если слово else отсутствует, то выполняется оператор, находящийся после слова end. Примечания Примечания.
© Черноскова Ю.Ю. Пример В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных. Написать программу, которая по номеру года определяет его название, если известно, что 1996 год был годом крысы – началом очередного цикла.
© Черноскова Ю.Ю. Решение Цикл двенадцатилетний – название года соответствует остатку от деления номера этого года на 12. Остаток от деления 1996 на 12 равен 4.
© Черноскова Ю.Ю. Программа Program Goroskop; uses crt; var g:integer; begin clrscr; writeln(Введите год); readln(g); case g mod 12 of 0: writeln(Год Обезьяны); 1: writeln(Год Петуха); 2: writeln(Год Собаки); 3: writeln(Год Свиньи); 4: writeln(Год Крысы); 5: writeln(Год Коровы); 6: writeln(Год Тигра); 7: writeln(Год Зайца); 8: writeln(Год Дракона); 9: writeln(Год Змеи); 10: writeln(Год Лошади); 11: writeln(Год Овцы); end; end.
© Черноскова Ю.Ю. Условие Логическое выражение, построенное из выражений отношения (>, =, ), логических операций and, or, xor, not и круглых скобок. Простые условия: x>100, y mod 2<>0, abs(z)<=10. Составные условия: (a 10), (x>0) and (x mod 10=0).
© Черноскова Ю.Ю. Составные условия Результат составного условия зависит от результатов простых условий, входящих в его состав, и логических операций. P QNot PP And Q P Or QP Xor Q True True False False True False False False True True True False False False True True True False False True True False
© Черноскова Ю.Ю. Приоритет логических операций not and, or, xor
© Черноскова Ю.Ю. Вычислите результат логических выражений: а) not (abs( )<0) б) (sqrt(25) =79) в) (not (10 mod 3=3)) or (12-10=3) г) (12 mod 4=0) and (13 div 8=5) д) (37<>sqr(5)) and (17-3>12) е) (sqr(16)<=100) or (not (2 div 4=0)) = True = False = True = False
© Черноскова Ю.Ю. Оператор Конструкция языка программирования, задающая полное описание действия. Простые, структурированные, составные. Составной оператор – группа операторов, отделенных друг от друга точкой с запятой, ограниченная операторными скобками begin и end.
© Черноскова Ю.Ю. Примечание 1 Значение переменной или выражения, записанного после слова Case, должно принадлежать порядковому типу. Порядковые типы данных: Целый - integer Символьный - char Логический - boolean Перечисляемый Диапазон
© Черноскова Ю.Ю. Примечание 2 Тип значений должен совпадать с типом выражения. s – переменная символьного типа Case s of A: writeln(Буква А); Б: writeln(Буква Б);... Я: writeln(Буква Я); else writeln(Такой буквы нет в русском алфавите); end;
© Черноскова Ю.Ю. Примечание 3 В списке значений можно задавать не только одну константу, но и список (указывается через запятую) или диапазон констант (указывается через..). Case p of , : writeln(Нет доступа); : writeln(Доступ ограничен); , : writeln(Вам доступен модуль А); , : writeln(Вам доступен модуль В); else writeln(Вам доступен модуль C); end;