Упр.156 ГДЗ Рабочая тетрадь Босова 8 класс 2016 (Информатика)
волшебный мост мужик, имеющий b рублей, удваивает эту сумму за счет капитала чёрта (а рублей), стерегущего этот мост, после чего он должен уплатить чёрту дань в размере с рублей. Процесс этот продолжается до полного разрения одного из участников. Впишите недостающие команды в
блок-схему.
Выполните алгоритм при заданных исходных данных. Сколько в каждом случае будет совершено переходов (k) моста?
a b c k
20 10 11 1
21 9 11 2
23 7 11 3
27 3 11 4
35 -5 11 4
a b c k
20 11 10 1
19 12 10 2
17 14 10 3
13 18 10 4
-5 36 10 4
a b c k
20 12 16 1
24 8 16 2
32 0 16 2
a b c k
20 12 12 1
20 12 12 2
20 12 12 3
Зацикливание, бесконечный процесс
В блок-схеме нужно восстановить команды по смыслу сюжета:
- сначала вводятся значения $$a, b, c$$;
- счётчик переходов начинается с $$k := 1$$;
- после каждого перехода у мужика сумма удваивается за счёт чёрта: $$b := 2 \cdot b$$;
- затем мужик платит дань: $$a := a — b$$;
- если $$a \le 0$$, то у чёрта 0;
- иначе чёрт отдаёт дань: $$b := b — c$$;
- затем мужик получает её обратно: $$a := a + c$$;
- если $$b \le 0$$, то у мужика 0;
- иначе увеличивается число переходов: $$k := k + 1$$ и цикл повторяется.
Поэтому в блок-схеме недостающие команды такие:
a, b, c
k := 1
b := 2*b
a := a — b
b := b — c
a := a + c
k := k + 1
вывод k
Проверим выполнение алгоритма для данных из таблиц.
| a | b | c | k |
|---|---|---|---|
| 20 | 10 | 11 | 1 |
| 21 | 9 | 11 | 2 |
| 23 | 7 | 11 | 3 |
| 27 | 3 | 11 | 4 |
| 35 | -5 | 11 | 4 |
| a | b | c | k |
|---|---|---|---|
| 20 | 11 | 10 | 1 |
| 19 | 12 | 10 | 2 |
| 17 | 14 | 10 | 3 |
| 13 | 18 | 10 | 4 |
| -5 | 36 | 10 | 4 |
| a | b | c | k |
|---|---|---|---|
| 20 | 12 | 16 | 1 |
| 24 | 8 | 16 | 2 |
| 32 | 0 | 16 | 2 |
| a | b | c | k |
|---|---|---|---|
| 20 | 12 | 12 | 1 |
| 20 | 12 | 12 | 2 |
| 20 | 12 | 12 | 3 |
В последнем случае значения не меняются, поэтому процесс не заканчивается и происходит зацикливание.
Ответ
Недостающие команды: a, b, c; k := 1; b := 2*b; a := a — b; b := b — c; a := a + c; k := k + 1; вывод k.
Для первых трёх наборов данных: k = 4, 4, 2. Для четвёртого набора — зацикливание, бесконечный процесс.