Разветвляющиеся алгоритмы Лекция 5. Ломаско Павел Сергеевич 30 июля 2015 г.
План 1. Определение разветвляющихся алгоритмов. Условия. Логические переменные. 2. Условный оператор. 3. Оператор прямого выбора.
Определение разветвляющихся алгоритмов. Условия.
Разветвляющийся алгоритм это алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса. Каждый подобный путь называется ветвью алгоритма.
Условия Признаком разветвляющегося алгоритма является наличие операций проверки условия. Простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют операндами), связанных одним из знаков: больше, чем... = больше, чем... или равно <> не равно = равно Содержат множество простых условий, соединенных логическими связками: NOT (отрицание, логическое НЕ) AND (конъюнкция, логическое И) OR (дизъюнкция, логическое ИЛИ)
Примеры условий x-y>10; k<=sqr(c)+abs(a+b); Not((9<>11)Or(5<7)); (мама<>папа) and (55=61). Условие – это некоторое утверждение, которое обязательно принимает одно из значений: а) истина б) ложь.
Логические выражения Выражения, при подстановке в которые некоторых значений переменных, о нем можно сказать истинно (верно) оно или ложно (неверно) называются булевыми (логическими) выражениями. Джордж Буль ( ), английский математик и логик. Профессор математики Королевского колледжа Корка (ныне Университетский колледж Корк).
Логические переменные Переменная, которая может принимать одно из двух значений: True (правда) или False (ложь), называется булевой (логической) переменной. В Pascal логические переменные обозначаются типом boolean: Var K,Flag:boolean; begin К:=True; Flag:=False; … end.
Условный оператор
Общий вид оператора If if then else ; По смыслу это соответствует: если то иначе ;
Операторные скобки и составные операторы if then begin оператор 1; оператор 2;... end else begin оператор 1; оператор 2;... end;
Составной оператор Составной оператор - объединение нескольких операторов в одну группу. Группа операторов внутри составного оператора заключается в операторные скобки (begin-end).
Вложенные условные операторы if then оператор 1 else if then оператор 2 else if then оператор 3 else оператор 4;
Пример 1 Вычислить значение модуля и квадратного корня из выражения (х-у), где x, y – вещественные числа, вводимые с клавиатуры.
Пример 2 Вывести на экран большее из трех данных целых чисел.
Пример 3 Если целое число М делится нацело на целое число N, то вывести на экран частное от деления, в противном случае вывести сообщение М на N нацело не делится.
Пример 4 Составьте программу, которая уменьшает первое введенное число в 5 раз, если оно больше второго введенного числа по абсолютной величине, в противном случае увеличить второе число в 7 раз Используйте логическую переменную. Результат вывести на экран.
Пример 5 Написать программу решения квадратного уравнения вида:
Оператор прямого выбора
Прямой выбор Позволяет построить ветвление по ряду условий в форме, более удобной для чтения программ. Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора (или селектор) - выражение любого типа (кроме типов REAL и STRING).
Общий вид оператора прямого выбора (оператора варианта) case выражение of значение 1 : оператор (группа операторов); значение 2 : оператор (группа операторов); значениеN : оператор (группа операторов) else оператор (группа операторов); end;
Пример 1 Времена года пронумерованы целыми числами: 1-зима, 2-весна, 3- лето, 4-осень. По введенному с клавиатуры числу вывести на экран название времени года.
Перечисление значений case MONTH of 1, 2, 3 : writeln (Первый квартал); 4, 5, 6 : writeln (Второй квартал); 7, 8, 9 : writeln (Третий квартал); 10, 11, 12 : writeln (Четвёртый квартал); end;
Использование интервалов case a of 1..5: b:=1; 6..10: b:=2; else b:=100; end;
Пример 2 С клавиатуры вводится целое число – текущий час. Вывести приветствие в зависимости от времени суток.
Для самостоятельной работы uslovie/1/ Занятия 1-4, 6-7
Спасибо за внимание!