8 класс Информатика ГДЗ учебник Босова Параграф 3.5. Алгоритмическая конструкция «ветвление», Разветвляющиеся алгоритмы. Глава 3. Основы алгоритмизации
Стр.115-118.
§ 3.5. Разветвляющиеся алгоритмы
1. Какие алгоритмы называют разветвляющимися?
Согласны ли вы с утверждением, что в разветвляющемся алгоритме при любых исходных данных выполняются все действия, предусмотренные алгоритмом?
2. Приведите пример разветвляющегося алгоритма:
- из повседневной жизни;
- из литературного произведения;
- из любой предметной области, изучаемой в школе.
3. Найти наибольшую из четырёх величин A, B, C и D.
найти наибольшую из четырёх величин A, B, C и D.
Решение
В примере 5 переменной Y присваивается наибольшее из трёх значений A, B и C:
|
1 2 3 |
Y := A если B > Y то Y := B если C > Y то Y := C |
Чтобы алгоритм находил максимум из четырёх величин A, B, C и D, достаточно после
сравнения с C добавить ещё одно ветвление – сравнение с D:
|
1 2 3 4 |
Y := A если B > Y то Y := B если C > Y то Y := C если D > Y то Y := D |
После выполнения этого алгоритма переменная Y будет содержать наибольшее из чисел
A, B, C и D.
Проверка работы алгоритма (пример)
Пусть A = 10, B = 30, C = 20, D = 25. Ход выполнения можно представить таблицей:
| Шаг алгоритма | A | B | C | D | Y | Условие |
|---|---|---|---|---|---|---|
| 1 | 10 | 30 | 20 | 25 | 10 | Начальное присваивание Y := A |
| 2 | 10 | 30 | 20 | 25 | 30 | B > Y: 30 > 10 (Да), поэтому Y := B |
| 3 | 10 | 30 | 20 | 25 | 30 | C > Y: 20 > 30 (Нет), Y не меняется |
| 4 | 10 | 30 | 20 | 25 | 30 | D > Y: 25 > 30 (Нет), Y не меняется |
Итог: Y = 30 – это наибольшее из чисел A, B, C и D.
4. Существует ли треугольник?
Идея решения.
Треугольник с сторонами a, b, c существует тогда и только тогда, когда
выполняются все три неравенства (треугольное неравенство):
- a < b + c;
- b < a + c;
- c < a + b.
Если хотя бы одно из этих условий нарушается, треугольника с такими сторонами не существует.
Алгоритм (словесное описание).
- Ввести значения a, b, c.
- Проверить, выполняются ли одновременно условия:
a < b + c, b < a + c и c < a + b. - Если все три условия выполняются, то вывести сообщение:
«Треугольник существует». - Иначе вывести сообщение: «Треугольник не существует».
Алгоритм на школьном алгоритмическом языке.
|
1 2 3 4 5 6 |
ввод a, b, c если (a < b + c) И (b < a + c) И (c < a + b) то вывод 'Треугольник существует' иначе вывод 'Треугольник не существует' все |
5. Равносторонний треугольник
Условие.
Составьте алгоритм, с помощью которого можно определить, является ли треугольник с заданными длинами сторон a, b, c равносторонним.
Идея решения.
Треугольник является равносторонним, если все его стороны равны:
a = b и b = c.
Алгоритм (словесное описание).
- Ввести значения a, b, c.
- Проверить, выполняется ли одновременно условие a = b и b = c.
- Если условие выполняется, вывести сообщение:
«Треугольник равносторонний». - Иначе вывести сообщение:
«Треугольник не равносторонний».
Алгоритм на школьном алгоритмическом языке.
|
1 2 3 4 5 6 |
ввод a, b, c если (a = b) И (b = c) то вывод 'Треугольник равносторонний' иначе вывод 'Треугольник не равносторонний' все |
6. Возведение числа в квадрат или куб
Идея решения.
Нужно ввести целое число n.
Если число чётное (n mod 2 = 0), то результатом будет n2.
Если число нечётное, то результатом будет n3.
Алгоритм (словесное описание).
- Ввести целое число n.
- Проверить, чётно ли число n (n mod 2 = 0).
- Если n чётное, вычислить результат: r := n * n.
- Иначе (если n нечётное), вычислить результат: r := n * n * n.
- Вывести значение r.
Алгоритм на школьном алгоритмическом языке.
|
1 2 3 4 5 6 7 |
ввод n если n mod 2 = 0 то r := n * n иначе r := n * n * n все вывод r |
7. Какая задача решается с помощью следующего алгоритма?
Алгоритм подсчитывает количество неотрицательных чисел среди A и B, увеличивая K на 1 за каждое число, которое больше или равно нулю.
8. Количество чётных чисел среди A, B и C
Идея решения.
Заведём счётчик K, в котором будем хранить количество чётных чисел.
По очереди проверим A, B и C на чётность (делимость на 2).
За каждое чётное число будем увеличивать K на 1, затем выведем K.
Алгоритм (словесное описание).
- Ввести целые числа A, B, C.
- Присвоить K значение 0.
- Если A mod 2 = 0, то увеличить K на 1.
- Если B mod 2 = 0, то увеличить K на 1.
- Если C mod 2 = 0, то увеличить K на 1.
- Вывести значение K.
- Конец алгоритма.
Алгоритм на школьном алгоритмическом языке
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
ввод A, B, C K := 0 если A mod 2 = 0 то K := K + 1 все если B mod 2 = 0 то K := K + 1 все если C mod 2 = 0 то K := K + 1 все вывод K |
9. Принадлежит ли точка x отрезку [a, b]
Решение. Возможный вариант алгоритма на Школьном алгоритмическом языке:
|
1 2 3 4 5 6 7 8 9 10 11 |
ввод a, b, x если x >= a то если x <= b то вывод 'ДА' иначе вывод 'НЕТ' все иначе вывод 'НЕТ' все |
Здесь выполняются две последовательные проверки: сначала выясняется, не меньше ли x числа a,
а затем — не больше ли x числа b. Если обе проверки дают ответ «Да», точка принадлежит
отрезку [a, b] и выводится сообщение «ДА», иначе — «НЕТ».
10. Составьте блок-схему алгоритма правописания приставок, оканчивающихся на букву «з».
Решение. Описания шагов алгоритма (его можно изобразить в виде блок-схемы):
|
1 2 3 4 5 6 7 8 9 10 11 |
ввод слова найти согласный звук, который стоит сразу после приставки если этот звук глухой (к, п, с, т, ф, х, ч, ц, ш) то в приставке пишем букву «с» иначе (звук звонкий или гласный) в приставке пишем букву «з» все |
Таким образом, приставки раз-/роз-, без-/бес-, через-/черес- и подобные
пишутся с буквой «з» перед гласной или звонким согласным и с буквой «с» перед
глухим согласным.
11. Определение дня недели для произвольного числа января 2022 года
Известно, что 31 января 2022 года было понедельником. Какие значения должны быть присвоены литерной переменной y в алгоритме, определяющем день недели для произвольного числа chislo января 2022 года?
|
1 2 3 4 5 6 7 8 9 |
chislo := chislo mod 7 если chislo = 3 то y := 'понедельник' если chislo = 4 то y := 'вторник' если chislo = 5 то y := 'среда' если chislo = 6 то y := 'четверг' если chislo = 0 то y := 'пятница' если chislo = 1 то y := 'суббота' если chislo = 2 то y := 'воскресенье' |
12. Даны две точки на плоскости…
Составьте алгоритм для определения, какая из них находится ближе к началу координат.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
алг нач ввод x1, y1, x2, y2 r1 := x1 * x1 + y1 * y1 r2 := x2 * x2 + y2 * y2 если r1 < r2 то вывод 'Первая точка ближе к началу координат' иначе если r1 > r2 то вывод 'Вторая точка ближе к началу координат' иначе вывод 'Обе точки равноудалены от начала координат' все кон |
13. Составьте алгоритм…
Алгоритм для определения, есть ли среди цифр заданного целого трёхзначного числа одинаковые.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
алг нач ввод n // трёхзначное число a := n div 100 // сотни b := (n div 10) mod 10 // десятки c := n mod 10 // единицы если (a = b) или (a = c) или (b = c) то вывод 'Есть одинаковые цифры' иначе вывод 'Все цифры различны' все кон |
14. Ученик хотел составить алгоритм решения линейного уравнения ax + b = 0, но перепутал условия в блок-схеме.
Исправленный алгоритм (словесное описание).
- Ввести значения
a,b. - Если
a ≠ 0, то вычислитьx := −b / aи вывести
«один корень: x». - Иначе (если
a = 0):- если
b ≠ 0, вывести сообщение «корней нет»; - если
b = 0, вывести сообщение «любое число».
- если
Проверка алгоритма.
- Уравнение
5·x − 10 = 0: здесьa = 5,b = −10.
a ≠ 0→ один корень:x = −(−10) / 5 = 2. - Уравнение
12·x = 0:a = 12,b = 0.
a ≠ 0→ один корень:x = −0 / 12 = 0. - Уравнение
0·x + 10 = 0:a = 0,b = 10.
a = 0иb ≠ 0→ корней нет. - Уравнение
0·x + 0 = 0:a = 0,b = 0.
a = 0иb = 0→ подходит любое числоx.
15. Робот находится внутри поля 5×5. Составьте алгоритм в среде КуМир:
15а) Робот закрашивает две клетки: свою и клетку с другой стороны стены.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
алг нач закрасить если справа стена тогда вверх вправо вниз закрасить иначе если слева стена тогда вверх влево вниз закрасить иначе если сверху стена тогда вправо вверх влево закрасить иначе вправо вниз влево закрасить все все все кон </code><code> |
| § 3.3 | § 3.4 | § 3.5 | § 3.6 | § 4.1 |