Презентация по информатике на тему Программирование разветвляющихся алгоритмов. Условный оператор в Pascal
Программирование разветвляющихся алгоритмов. Условный оператор. (Примеры программ рассматриваются на языке Pascal) Подготовил учитель информатики и ИКТ лицея г. Красный Лиман Донецкой области: Заруднев Андрей Николаевич Разветвленные алгоритмы. В некоторых задачах для получения конечного результата рассматриваются несколько вариантов решения (два и больше). Выбор варианта производится в зависимости от условия (простого или сложного) с помощью условного оператора:IF … THEN … ELSE…; или IF… THEN…; (полная форма) (неполная форма). Решение1 Решение2 then else условие if Решение then else условие if Использование полной формы Поиск наибольшего значения для двух чисел x и y.if x >y then max:=x else max:=y;Поиск наименьшего значения для двух чисел x и y.(учащиеся записывают самостоятельно).Определить поместится ли круг в квадрате, если известны сторона квадрата – а и радиус круга – R. a R Решение следующее: если диаметр круга будет меньше или равным стороне квадрата, то ответ – поместится, в противном случае – не поместится. if 2*R <= a then write(‘поместится’) else write(‘не поместится’); Использование неполной формы Поиск значения величины по заданным свойствам. 1) Заменить значение введенного числа х его квадратным корнем, если оно положительное. if х > 0 then x := sqrt(x);В некоторых задачах может использоваться несколько условных операторов, следующих один за другим.2) Составить алгоритм, который из вещественных чисел a, b, c отрицательные числа возводит в квадрат. if a < 0 then а := SQR(а);if b < 0 then b := SQR(b);if c < 0 then c := SQR(c); Блок-схема начало Вводa, b, c да нет проверка (a) Решение для (a) конец 1 1 да нет проверка (b) Решение для (b) да нет проверка (c) Решение для (c) Накопление результата 1) Дано три вещественных числа a, b, c. Составить алгоритм, который определяет сумму квадратов отрицательных чисел. if a < 0 then S := S + SQR(а);if b < 0 then S := S + SQR(b);if c < 0 then S := S + SQR(c); 2) Дано три вещественных числа a, b, c. Составить алгоритм, который определяет произведение квадратов отрицательных чисел. P := 1;if a < 0 then P := P * SQR(а);if b < 0 then P := P * SQR(b);if c < 0 then P := P * SQR(c); Поиск наименьшего значения из трех чисел x, y и z. Решение состоит в следующем: сначала сравниваем два числа х и у (полная форма), а затем наименьшее из них (min) сравниваем с третьим числом z. Если z меньше минимального, то присваиваем минимальному значение z, иначе ничего не делаем (неполная форма).VAR x, y, z, min: real;BEGINREAD(x, y, z);if x < y then min := x else min := y;if z < min then min := z;Write(min);END. Вычисление значения функции, в зависимости от значения аргумента В таких задачах эффективней использовать вложенный условный оператор, чем последовательную проверку каждого интервала. Используя вложенный условный оператор, мы уменьшаем количество операторов до одного вместо того количества, которое соответствует количеству возможных вариантов решения. Также уменьшается общее количество операций отношения в проверяемых условиях (ветвь else исключает ранее проверенное условие), что делает алгоритм быстрым. Блок-схема Удобней разрабатывать программу для таких задач, начиная с построения блок-схемы (на черновике), которая дает наглядную картину большого количества вложений.Начинать построение блок-схемы лучше с конца, группируя соседние решения в пары, образуя условный оператор, а затем для каждой пары подбирать простое условие, соответственно ветвям ИСТИНА и ЛОЖЬ (на схеме ДА и НЕТ). Если формула содержит знаменатель, который в заданном промежутке при определенном значении аргумента обращается в ноль, то необходимо в программе вывести текстовое сообщение ‘решений нет’, и развести оператор вывода числового значения и текстового результата во внешний условный оператор. Задача. Составить алгоритм вычисления значения у при заданном х. Учесть случай при х = 8. Решение. Получаем 4 варианта: в трех случаях получаем число и записываем в переменную у, при х = 8 ‘нет решений’.Составим блок-схему для этой задачи, с учетом рекомендаций:Рисуем все результаты;Группируем по парам соседние результаты: сначала числовые, затем текстовый вывод.Дорисовываем ввод данных, начало, конец. х У = х*х У = 3*х – 5 У=(1 – х)/(х – 8) x < -1 да нет x ≤ 1 да нет x = 8 нет да Выводy начало конец Начать построение блок-схемы (повторить) дальше Вывод ‘нет решений’ Перевод алгоритма на Pascal Var x, y: real;BEGINRead(x);if x=8 then WRITE(‘Нет решений') else beginif x<=1then if x<-1 then y:=sqr(x) else y:=3*x-5else y:=(1-x)/(x-8);write(y);end;END. Замена значения одной величины из трех заданных В этом случае эффективней вместо трех последовательных условных операторов использовать один с вложением двух других.Составить алгоритм, который наибольшее из трех вещественных чисел a, b, c заменяет их средним значением. if (a > b) and (a > c) then а := (а + b + c) / 3elseif (b > a) and (b > c) then b := (а + b + c) / 3elseif (c > b) and (c > a) then c := (а + b + c) / 3; Использованная литература: Дмитриева М.В., Кубанский А.А. Элементы современного программирования. – С.-Пб.: Изд-во С.-Петербургского университета, 1991.Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. Заведений. В 2-х частях/ Под ред. А.П.Ершова, В.М. Монахова. – М.: Просвещение. – Ч. 1, 1985, Ч. 2, 1986.Окулов С.М. Основы программирования. – М.: Лаборатория базовых знаний, 2001.Остер Г. Задачник. – Росмэн, 1998. – 128 с.