Составление алгоритмов с ветвлением Цель: научиться составлять блок-схемы с ветвлением Виктор Васнецов «Витязь на распутье»

Download Report

Transcript Составление алгоритмов с ветвлением Цель: научиться составлять блок-схемы с ветвлением Виктор Васнецов «Витязь на распутье»

Составление алгоритмов
с ветвлением
Цель: научиться
составлять блок-схемы
с ветвлением
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