Составление алгоритмов с ветвлением Цель: научиться составлять блок-схемы с ветвлением Виктор Васнецов «Витязь на распутье»
Download ReportTranscript Составление алгоритмов с ветвлением Цель: научиться составлять блок-схемы с ветвлением Виктор Васнецов «Витязь на распутье»
Составление алгоритмов с ветвлением Цель: научиться составлять блок-схемы с ветвлением 1 Виктор Васнецов «Витязь на распутье» 2 Семакин, Хеннер «Задачник-1», стр. 229-230 3 Задача №1 Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, а в четвёртую степень – отрицательные. 4 Ответим на вопросы • Что дано? • Какими переменными обозначим данные? • Что надо найти? • Какими переменными обозначим результат? • Как будем находить результат? • Как на математическом языке обозначить неотрицательные числа? 5 Алгоритм №1 Вычисление Ввод а,b,c a>=0 x:=a*a x:=a*a*a*a Вывод х 6 b>=0 y:=b*b y:=b*b*b*b Вывод y c>=0 z:=c*c z:=c*c*c*c Вывод z кон 7 Вопрос: Можно ли в алгоритме взять другое условие? Задание: Составьте самостоятельно блок-схему, если условие взято наоборот: a<0, b<0, c<0 8 Фрагмент алгоритма №1 Вычисление Ввод а,b,c a<0 x:=a*a*a*a x:=a*a Вывод х 9 Задача №2 Даны две точки А(x1,y1) и В (x2,y2) . Составить алгоритм, определяющий, которая из точек находится ближе к началу координат 10 Составим математическую модель задачи y А(x1,y1) y1 Какая точка ближе к началу координат? a B(x2,y2) b х1 a= y1 x1 2 2 b= x x2 y 2 2 2 11 Расстояние Ввод x1,y1,x2,y2 a:= y1 x1 b:= x2 y 2 2 2 2 2 12 a<b Вывод А ближе к началу координат а=b Вывод А=В Вывод В ближе к началу координат кон 13 Задача №3 Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным? Что мы знаем об углах треугольника? 14 Проанализируем задачу №3 • Какими переменными обозначим величину углов треугольника? • Как составить условие существования треугольника по двум углам на математическом языке? 15 Алгоритм №3 Треугольник Ввод h,c h+c<180 Вывод Треугольник существует Вывод Треугольник не существует 16 Проанализируем алгоритм №3 • Какой будет результат, если значения h и c будут равны 0? • Как исправить алгоритм, чтобы при h=0 и c=0 алгоритм тоже работал? 17 Составное условие h=0 или c=0 h=0 и c=0 – либо h=0, либо c=0, либо оба равны нулю – и h=0, и c=0 Если хотя бы одно значение или оба значения будут равны 0, то треугольник – не существует 18 Изменим начало алгоритма №3 Треугольник Ввод h,c h=0 или c=0 h+c<180 Вывод Треугольник существует Вывод Треугольник не существует 19 Проведём дальнейший анализ задачи №3 • Как по двум углам определить, является ли треугольник прямоугольным? • Рассмотрим всевозможные случаи комбинации двух углов. Например: • 450 и 450 • 300 и 600 • 900 и 300 20 Как математически записать условие? Можно записывать тройные условия h=90 или c=90 или h+c=90 Можно записать условие подругому? h=90 или c=90 h+c=90 21 Дополним алгоритм новым уточнением в виде того условия, которое вам понравилось больше 22 Треугольник Ввод h,c Алгоритм №3 h=0 или c=0 h+c<180 Вывод Треугольник существует Вывод Треугольник не существует h=90 или c=90 или h+c=90 23 Вывод Треугольник прямоугольный Вывод Треугольник не прямоугольный Вывод Треугольник не существует кон 24 Возможно, вы найдёте ещё один способ решения этой задачи дома 25 Домашнее задание: задача № 4 • Задача №4.Даны действительные числа х и у, не равные друг другу. Меньшее из этих чисел заменить половиной их суммы, а большее – их удвоенным произведением. • Задача №5. Даны два целых числа. Если числа не равны, то заменить каждое из них одним и тем же числом, равному большему из исходных, а если 26 равны , то заменить числа 0 Опора к алгоритму №4 Вычисление Ввод x,y Вывод х,y кон 27 Как составить условие, чтобы найти правильный и короткий путь? 28 Вывод • При составлении условия важна тщательная проверка всех случаев значений переменных, иначе алгоритм в общем виде будет работать неправильно • Можно использовать составные условия • Для решения одной и той же задачи могут быть составлены различные алгоритмы • Процесс программирования – творческий процесс 29 Спасибо за урок! 30