Дополнительное задание Параграф 21 ГДЗ Семакин 8 класс (Информатика)
Домашнее задание №25
Тема: Ветвления в вычислительных алгоритмах
1. Запишите на алгоритмическом языке алгоритм, соответствующий данной блок-схеме:
a,b,c
алг
нач
. цел A,B,C,D
. ввод A,B,C
. если A < C
. . то D:=A
. всё
. если B < C
. . то A:=D
. всё
. D:=D+A
. вывод D
кон
2. Что получится в результате работы следующего алгоритма, если 1) a=2, b=5, 2) a=0, b=-2
алг пример
цел a,b,c
нач
ввод a,b
если a > 0 то
если b > 0 то
c:=a+b
иначе
c:=10
кв
иначе
если b > 0 то
c:=a*b
иначе
c:=0
кв
кв
вывод c
кон
1) 7
2) 0
3. Запишите алгоритм нахождения минимума из трёх целых чисел a, b, c.
алг CC_3
нач
. цел A,B,C,D
. ввод A,B,C
D:=A
. если B < D
то D:=B
всё
. если C < D
то D:=C
всё
вывод D
кон
4. Зарисуйте блок-схему для задачи номер 3.
Практическое задание №21
Тема: Ветвление в вычислительных алгоритмах
1 уровень сложности
1. Дано целое число А. Если значение А > 0, то необходимо увеличить его на единицу. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм для A=5, A=-4, A=0.
2. Дано целое число А. Если значение А < 0, то необходимо удвоить его. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм для A=6, A=-10, A=0.
3. Дано целое число А. Если значение А < > 0, то необходимо уменьшить его на 4. Написать программу для решения этой задачи. Протестировать алгоритм для A=2, A=-1, A=0.
4. Дано целое число А. Если значение А > 0, то необходимо увеличить его на единицу, иначе уменьшить на 1. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм для A=3, A=0, A=-12.
5. Дано целое число А. Если значение А = 0, то необходимо увеличить его на 3, иначе присвоить А значение, равное 0. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм для A=0, A=-1, A=8.
6. Даны два действительных числа X и Y. Если X > Y, то вычислить произведение этих чисел, иначе их сумму. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм на трёх различных тестах (X > Y, X=Y и X < Y).
1.
Ввод А Вывод А
0 0
-1 -1
8 9
2.
Ввод А Вывод А
6 6
-10 -20
0 0
3.
Ввод А Вывод А
2 -2
-1 -5
0 0
4.
Ввод А Вывод А
3 4
0 -1
-12 -13
5.
Ввод А Вывод А
0 3
-1 0
8 0
6.
алг T_6
нач
. вещ x,y,r
. вывод "введи x, y > »
. ввод x,y
. если x < y
. . то r:=x*y
. . иначе r:=x+y
. все
. вывод r
кон
x y r
6.9 6.5 41.85
5 5 10.0
3.3 4.2 7.5
2 уровень сложности
1. Даны два действительных числа X и Y, не равные друг другу. Заменить меньшее из этих чисел половиной их суммы, а боль-шее – их удвоенным произведением. Разработать схему алгоритма для решения этой задачи. Протестировать алгоритм на числах 5.5 и -4.3, а также на числах 1 и 14.5.
2. Точка А задана координатами X,Y. Разработать схему алгоритма, который устанавливает значение флага F=1, если точка принадлежит заштрихованной области (см. рисунок 1) и значение флага F=0 в противном случае. Вывести значение F. Протестировать алгоритм для точек (1.5,2), (0,0), (-1.5, 1), (1,-1.2), (-2,-1).
Рис.1
3. Точка А задана координатами X,Y. Разработать схему алгоритма, который устанавливает значение флага F=1, если точка принадлежит заштрихованной области (см. рисунок 2) и значение флага F=0 в противном случае. Вывести значение F. Протестировать алгоритм для точек (2.5, 2), (1,1), (0,0), (1,0), (2,-1).
Рис.2
4. Точка А задана координатами X,Y. Разработать схему алгоритма, который устанавливает значение флага F=1, если точка принадлежит заштрихованной области (см. рисунок 3) и значение флага F=0 в противном случае. Вывести значение F. Протестировать алгоритм для точек (0,0.8), (0,0), (-1.5,1), (1,1.5), (-2,-1).
Рис.3
5. Разработать схему алгоритма для определения минимума из трёх чисел без использования логических операций. Протестировать алгоритм на следующих исходных данных:
а) 2 5 1
б) 0 -2 8
в) -4 5 10
6. Разработать схему алгоритма для подсчета количества отрицательных чисел среди целых чисел a, b, c. Протестировать алгоритм для всех возможных случаев (когда количество отрицательных чисел равно 0, 1, 2 и 3).
1.
алг T_1
нач
. вещ x,y,a,b
. вывод "введи x, y > »
. ввод x,y
. a:=x; b:=y
. если x < y
. . то x:=2*a*b
. . иначе y:=(a+b)/2
. все
вывод x,' ',y
кон
Ввод Вывод
x y x y
5.5 -4.3 -47.3 0.6
1 14.5 7.75 29.0
2.
алг T_2
нач
. вещ x,y
. цел f
. вывод "введи x, y > »
. ввод x,y
. если (x > 0)и(y > 0)
. . то f:=1
. . иначе f:=0
. все
. если f=1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. все
кон
Ввод Вывод
x y
1.5 2 Принадлежит
0 0 Не принадлежит
-1.5 1 Не принадлежит
1 -1.2 Не принадлежит
-2 -1 Не принадлежит
3.
алг T_3
нач
. вещ x,y
. цел f
. вывод «введи x, y > »
. ввод x,y
. если (x > 1)и(y > 1)
. . то f:=1
. . иначе f:=0
. все
. если f=1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. все
кон
Ввод Вывод
x y
2.5 2 Принадлежит
1 1 Не принадлежит
0 0 Не принадлежит
1 0 Не принадлежит
2 -1 Не принадлежит
4.
алг T_4
нач
. вещ x,y
. цел f
. вывод «введи x, y > »
. ввод x,y
.
. если (y > 0.5)
. . то f:=1
. . иначе f:=0
. все
. если f=1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. все
кон
Ввод Вывод
x y
0 0.8 Принадлежит
0 0 Не принадлежит
-1.5 1 Принадлежит
1 1.5 Принадлежит
-2 -1 Не принадлежит
5.
алг T_5
нач
. цел a,b,c,m
. вывод «введи a, b, c > »
. ввод a,b,c
. m:=a
. если b < m
. . то m:=b
. . иначе если c < m то m:=c
. . . все
. все
. вывод m
кон
Ввод Вывод
A B C
2 5 1 1
0 -2 8 -2
-4 5 10 -4
6.
алг T_6
нач
. цел a,b,c,k
. вывод "введи a, b, c > »
. ввод a,b,c
. k:=0
. если a < 0 то k:=k+1 все
. если b < 0 то k:=k+1 все
. если c < 0 то k:=k+1 все
. вывод k
кон
Ввод Вывод
A B C
2 5 1 0
0 -2 8 1
-4 -5 10 2
-1 -6 -3 3
3 уровень сложности
1. Треугольник задан длинами сторон А, В, С. Разработать схему алгоритма, определяющую, существует ли данный треугольник. Если треугольник существует, то установить значение флага F=1, иначе F=0. Для решения этой задачи использовать сложные логические условия. Протестировать алгоритм для следующих исходных данных:
а) A=3, B=4, C=5
б) A=1, B=1, C=1
в) A=0, B=4, C=5
г) A=-3, B=6, C=5
д) A=2, B=1, C=8
2. Разработать схему алгоритма для отыскания max(min(a,b), min(c,d)), не используя сложные логические условия и вложенные ветвления. Числа a,b,c,d - целые. Протестировать алгоритм для следующих исходных данных:
а) a=4 b=5 c=6 d=9
б) a=2 b=1 c=6 d=9
в) a=2 b=1 c=8 d=4
г) a=12 b=1 c=6 d=9
3. Точка А задана координатами X,Y. Разработать схему алгоритма, который устанавливает значение флага F=1, если точка принадлежит заштрихованной области (см. рисунок 4) и значение флага F=0 в противном случае. Вывести значение F. Протестировать алгоритм для точек (0,0), (1,0), (1.5,1), (-1,1.5), (-2,-1), (2,-1), (1,-1), (-1,1).
Рис. 4
5. Точка А задана координатами X,Y. Разработать схему алгоритма, который устанавливает значение флага F=1, если точка принадлежит заштрихованной области (см. рисунок 5) и значение флага F=0 в противном случае. Вывести значение F. Протестировать алгоритм для точек (0,0), (1.5,1), (2,1), (1,-1), (-0.5,-0.2), (-2,-1), (-1,-2), (-1,1), (-3, 1).
Рис.5
6. Точка А задана координатами X,Y. Разработать схему алгоритма, который устанавливает значение флага F=1, если точка принадлежит заштрихованной области (см. рисунок 6) и значение флага F=0 в противном случае. Вывести значение F. Протестировать алгоритм для точек (0,0), (2,2), (0.5,0.5), (0.5,-1.5), (-0.5,0.5), (-2,-1),
(-1,-2), (-1,1), (2, 0).
Рис.6
1.
алг T_1
нач
. цел a,b,c,f
. вывод "введи a, b, c > »
. ввод a,b,c
. если (a+b < c)и(c+a < b)и(c+b > a) то f:=1
. . иначе f:=0
. все
. если f=1 то вывод («Существует»)
. . иначе вывод («Не существует»)
. все
кон
Ввод Вывод
A B C
3 4 5 Существует
1 1 1 Существует
0 4 5 Не существует
-3 6 5 Не существует
2 1 8 Не существует
2.
алг T_2
нач
. цел a,b,c,d,max1,min1,min2
. вывод «введи a, b, c, d > »
. ввод a,b,c
. если a > b то min1:=b иначе min1:=a все
. если c > d то min2:=d иначе min1:=c все
. если min1 > min2 то max1:=min1 иначе max1:=min2 все
. вывод max1
кон
Ввод Вывод
A B C D
4 5 6 9 6
2 1 6 9 6
2 1 8 4 4
12 1 6 9 6
3.
алг T_3
нач
. цел f
. вещ x,y
. вывод «введи x,y > »
. ввод x,y
. если (x < -1)или(x > 1) то f:=1
. . иначе f:=0
. все
. если f=1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. все
кон
Ввод Вывод
x y
0 0 Не принадлежит
1 0 Не принадлежит
1.5 1 Принадлежит
-1 1.5 Не принадлежит
-2 -1 Принадлежит
2 -1 Принадлежит
1 -1 Не принадлежит
-1 1 Не принадлежит
алг T_5
нач
. цел f
. вещ x,y
. вывод «введи x,y > »
. ввод x,y
. если ((x > -3)и(x < 2)и(y > 0)и(y < 2))или((y < =0)и(x*x+y*y < 1)) то f:=1
. . иначе f:=0
. все
. если f=1 то вывод ("Принадлежит")
. . иначе вывод ("Не принадлежит")
. все
кон
5.
Ввод Вывод
x y
0 0 Принадлежит
1.5 1 Принадлежит
2 1 Не принадлежит
1 -1 Не принадлежит
-0.5 0.2 Принадлежит
-2 -1 Не принадлежит
-1 -2 Не принадлежит
-3 1 Не принадлежит
6.
алг T_6
нач
. цел f
. вещ x,y
. вывод "введи x,y > »
. ввод x,y
. если ((x > -1)и(x < 1)и(y < =0)и(y < 2))или((y > =0)и(x*x+y*y < 1)) то f:=1
. . иначе f:=0
. все
. если f=1 то вывод ("Принадлежит")
. . иначе вывод ("Не принадлежит")
. все
кон
Ввод Вывод
x y
0 0 Принадлежит
2 2 Не принадлежит
0.5 0.5 Принадлежит
0.5 -1.5 Принадлежит
-0.5 0.5 Принадлежит
-2 -1 Не принадлежит
-1 -2 Не принадлежит
-1 1 Не принадлежит
2 0 Не принадлежит
ЕК ЦОР: Часть2, глава 6, §36. ЦОР № 14
Программа-конструктор алгоритмов.
1. Алгоритм по блок-схеме:
алг
нач
. цел A, B, C, D
. ввод A, B, C
. если A < C
. . то D := A
. всё
. если B < C
. . то A := D
. всё
. D := D + A
. вывод D
кон
2. Работа алгоритма:
1) при $$a=2$$, $$b=5$$: $$a>0$$ и $$b>0$$, значит $$c=a+b=2+5=7$$.
2) при $$a=0$$, $$b=-2$$: $$a>0$$ — ложь, $$b>0$$ — ложь, значит $$c=0$$.
3. Алгоритм нахождения минимума из трёх целых чисел:
алг CC_3
нач
. цел A, B, C, D
. ввод A, B, C
. D := A
. если B < D
. . то D := B
. всё
. если C < D
. . то D := C
. всё
. вывод D
кон
4. Блок-схема для этого алгоритма должна содержать: ввод $$A, B, C$$, присваивание $$D:=A$$, затем два последовательных условия $$B<D$$ и $$C<D$$ с возможным изменением $$D$$, после чего вывод $$D$$.
Выполнение
1 уровень сложности:
1. Если $$A>0$$, то $$A:=A+1$$.
Проверка:
- $$A=5 \rightarrow 6$$
- $$A=-4 \rightarrow -4$$
- $$A=0 \rightarrow 0$$
2. Если $$A<0$$, то $$A:=2A$$.
Проверка:
- $$A=6 \rightarrow 6$$
- $$A=-10 \rightarrow -20$$
- $$A=0 \rightarrow 0$$
3. Если $$A\neq 0$$, то $$A:=A-4$$.
алг
нач
. цел A
. ввод A
. если A <> 0
. . то A := A — 4
. всё
. вывод A
кон
Проверка:
- $$A=2 \rightarrow -2$$
- $$A=-1 \rightarrow -5$$
- $$A=0 \rightarrow 0$$
4. Если $$A>0$$, то $$A:=A+1$$, иначе $$A:=A-1$$.
Проверка:
- $$A=3 \rightarrow 4$$
- $$A=0 \rightarrow -1$$
- $$A=-12 \rightarrow -13$$
5. Если $$A=0$$, то $$A:=A+3$$, иначе $$A:=0$$.
Проверка:
- $$A=0 \rightarrow 3$$
- $$A=-1 \rightarrow 0$$
- $$A=8 \rightarrow 0$$
6. Если $$X>Y$$, то $$R:=X\cdot Y$$, иначе $$R:=X+Y$$.
алг T_6
нач
. вещ x, y, r
. вывод «введи x, y > «
. ввод x, y
. если x > y
. . то r := x * y
. . иначе r := x + y
. всё
. вывод r
кон
Проверка:
- $$x=6.9$$, $$y=6.5 \rightarrow r=6.9\cdot 6.5=44.85$$
- $$x=5$$, $$y=5 \rightarrow r=10$$
- $$x=3.3$$, $$y=4.2 \rightarrow r=7.5$$
2 уровень сложности:
1. Если числа не равны, меньшее заменить половиной суммы, большее — удвоенным произведением.
алг T_1
нач
. вещ x, y, a, b
. вывод «введи x, y >»
. ввод x, y
. a := x; b := y
. если x < y
. . то x := (a + b) / 2
. . иначе y := 2 * a * b
. всё
. вывод x, ‘ ‘, y
кон
Проверка:
- $$x=5.5$$, $$y=-4.3 \rightarrow x=-47.3,\ y=0.6$$
- $$x=1$$, $$y=14.5 \rightarrow x=7.75,\ y=29.0$$
2. Флаг принадлежности точки заштрихованной области:
алг T_2
нач
. вещ x, y
. цел f
. вывод «введи x, y >»
. ввод x, y
. если (x > 0) и (y > 0)
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. всё
кон
Проверка:
- $$ (1.5, 2) \rightarrow 1 $$
- $$ (0, 0) \rightarrow 0 $$
- $$ (-1.5, 1) \rightarrow 0 $$
- $$ (1, -1.2) \rightarrow 0 $$
- $$ (-2, -1) \rightarrow 0 $$
3. Для области на рисунке 2:
алг T_3
нач
. вещ x, y
. цел f
. вывод «введи x, y >»
. ввод x, y
. если (x > 1) и (y > 1)
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. всё
кон
Проверка:
- $$ (2.5, 2) \rightarrow 1 $$
- $$ (1, 1) \rightarrow 0 $$
- $$ (0, 0) \rightarrow 0 $$
- $$ (1, 0) \rightarrow 0 $$
- $$ (2, -1) \rightarrow 0 $$
4. Для области на рисунке 3:
алг T_4
нач
. вещ x, y
. цел f
. вывод «введи x, y >»
. ввод x, y
. если y > 0.5
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. всё
кон
Проверка:
- $$ (0, 0.8) \rightarrow 1 $$
- $$ (0, 0) \rightarrow 0 $$
- $$ (-1.5, 1) \rightarrow 1 $$
- $$ (1, 1.5) \rightarrow 1 $$
- $$ (-2, -1) \rightarrow 0 $$
5. Минимум из трёх чисел без логических операций:
алг T_5
нач
. цел a, b, c, m
. вывод «введи a, b, c >»
. ввод a, b, c
. m := a
. если b < m
. . то m := b
. . иначе если c < m то m := c
. . всё
. всё
. вывод m
кон
Проверка:
- $$2,\ 5,\ 1 \rightarrow 1$$
- $$0,\ -2,\ 8 \rightarrow -2$$
- $$-4,\ 5,\ 10 \rightarrow -4$$
6. Подсчёт количества отрицательных чисел:
алг T_6
нач
. цел a, b, c, k
. вывод «введи a, b, c >»
. ввод a, b, c
. k := 0
. если a < 0 то k := k + 1 всё
. если b < 0 то k := k + 1 всё
. если c < 0 то k := k + 1 всё
. вывод k
кон
Проверка:
- $$2,\ 5,\ 1 \rightarrow 0$$
- $$0,\ -2,\ 8 \rightarrow 1$$
- $$-4,\ -5,\ 10 \rightarrow 2$$
- $$-1,\ -6,\ -3 \rightarrow 3$$
3 уровень сложности:
1. Треугольник существует, если выполняются все неравенства треугольника:
алг T_1
нач
. цел a, b, c, f
. вывод «введи a, b, c >»
. ввод a, b, c
. если (a + b > c) и (a + c > b) и (b + c > a)
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Существует»)
. . иначе вывод («Не существует»)
. всё
кон
Проверка:
- $$3, 4, 5 \rightarrow 1$$
- $$1, 1, 1 \rightarrow 1$$
- $$0, 4, 5 \rightarrow 0$$
- $$-3, 6, 5 \rightarrow 0$$
- $$2, 1, 8 \rightarrow 0$$
2. Для выражения $$\max(\min(a,b), \min(c,d))$$:
алг T_2
нач
. цел a, b, c, d, max1, min1, min2
. вывод «введи a, b, c, d >»
. ввод a, b, c, d
. если a > b то min1 := b иначе min1 := a всё
. если c > d то min2 := d иначе min2 := c всё
. если min1 > min2 то max1 := min1 иначе max1 := min2 всё
. вывод max1
кон
Проверка:
- $$4, 5, 6, 9 \rightarrow 6$$
- $$2, 1, 6, 9 \rightarrow 6$$
- $$2, 1, 8, 4 \rightarrow 4$$
- $$12, 1, 6, 9 \rightarrow 6$$
3. Для области на рисунке 4:
алг T_3
нач
. цел f
. вещ x, y
. вывод «введи x, y >»
. ввод x, y
. если (x < -1) или (x > 1)
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. всё
кон
Проверка:
- $$ (0, 0) \rightarrow 0 $$
- $$ (1, 0) \rightarrow 0 $$
- $$ (1.5, 1) \rightarrow 1 $$
- $$ (-1, 1.5) \rightarrow 0 $$
- $$ (-2, -1) \rightarrow 1 $$
- $$ (2, -1) \rightarrow 1 $$
- $$ (1, -1) \rightarrow 0 $$
- $$ (-1, 1) \rightarrow 0 $$
5. Для области на рисунке 5:
алг T_5
нач
. цел f
. вещ x, y
. вывод «введи x, y >»
. ввод x, y
. если ((x > -3) и (x < 2) и (y > 0) и (y < 2)) или ((y <= 0) и (x * x + y * y < 1))
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. всё
кон
Проверка:
- $$ (0, 0) \rightarrow 1 $$
- $$ (1.5, 1) \rightarrow 1 $$
- $$ (2, 1) \rightarrow 0 $$
- $$ (1, -1) \rightarrow 0 $$
- $$ (-0.5, -0.2) \rightarrow 1 $$
- $$ (-2, -1) \rightarrow 0 $$
- $$ (-1, -2) \rightarrow 0 $$
- $$ (-1, 1) \rightarrow 0 $$
- $$ (-3, 1) \rightarrow 0 $$
6. Для области на рисунке 6:
алг T_6
нач
. цел f
. вещ x, y
. вывод «введи x, y >»
. ввод x, y
. если ((x > -1) и (x < 1) и (y <= 0) и (y < 2)) или ((y >= 0) и (x * x + y * y < 1))
. . то f := 1
. . иначе f := 0
. всё
. если f = 1 то вывод («Принадлежит»)
. . иначе вывод («Не принадлежит»)
. всё
кон
Проверка:
- $$ (0, 0) \rightarrow 1 $$
- $$ (2, 2) \rightarrow 0 $$
- $$ (0.5, 0.5) \rightarrow 1 $$
- $$ (0.5, -1.5) \rightarrow 1 $$
- $$ (-0.5, 0.5) \rightarrow 1 $$
- $$ (-2, -1) \rightarrow 0 $$
- $$ (-1, -2) \rightarrow 0 $$
- $$ (-1, 1) \rightarrow 0 $$
- $$ (2, 0) \rightarrow 0 $$
Ответ
1) $$D$$ — значение, полученное по алгоритму; 2) $$7$$ и $$0$$; 3) алгоритм нахождения минимума приведён выше; 4) блок-схема строится по этому алгоритму.