8 класс Информатика ГДЗ учебник Босова Параграф 4.3

8 класс Информатика ГДЗ учебник Босова Параграф 4.3. Программирование линейных алгоритмов. Глава 4. Начала программирования на языке Паскаль

Стр.168-173.

Решения к задачам §4.3 Программирование линейных алгоритмов. 

1. Площадь треугольника по формуле Герона

Краткое условие (ГДЗ): Программа вычисляет площадь треугольника со сторонами 12, 5 и 13.
Найдите результат и запишите математическую формулу для s.

Решение:

Полупериметр:

p = (a + b + c) / 2 = (12 + 5 + 13) / 2 = 30 / 2 = 15.

Формула Герона для площади треугольника со сторонами a, b, c:

s = √(p (p − a) (p − b) (p − c))

Подставим числа:

  • s = 15
  • s = s · (p − a) = 15 · (15 − 12) = 15 · 3 = 45
  • s = s · (p − b) = 45 · (15 − 5) = 45 · 10 = 450
  • s = s · (p − c) = 450 · (15 − 13) = 450 · 2 = 900
  • s = √900 = 30

Ответ: s = 30;  формула s = √(p (p − a) (p − b) (p − c)).


2. Программа для вычисления y = x³ + 2,5x² − x + 1

Краткое условие (ГДЗ): Написать программу, вычисляющую
y по формуле y = x³ + 2,5x² − x + 1, если:

  • нельзя использовать операцию возведения в степень;
  • в каждом операторе присваивания разрешена только одна арифметическая операция;
  • разрешено не более 5 операторов присваивания.

Преобразование выражения (подсказка):

Используем форму Горнера:

y = x³ + 2,5x² − x + 1 = ((x + 2,5)x − 1)x + 1

Программа на Паскале:

Каждое присваивание содержит только одну арифметическую операцию, всего ровно 5 операторов присваивания, возведения в степень нет.

Задание 3. Написать программу, которая вычисляет расстояние между двумя точками A(xa, ya) и B(xb, yb). Проверить работу программы на данных: xa=2, ya=1, xb=10, yb=7.

Решение.

Формула расстояния между точками:

d = √((xb − xa)2 + (yb − ya)2).

Подставляем значения:

  • Δx = 10 − 2 = 8
  • Δy = 7 − 1 = 6
  • d = √(64 + 36) = √100 = 10

Ответ: 10.0

Программа на Pascal:

Задание 4. Написать программу, которая по сторонам треугольника a, b, c вычисляет его площадь. Проверка: a=3, b=4, c=5.

Решение.

Используем формулу Герона. Сначала полупериметр:

p = (a + b + c) / 2.

Тогда площадь:

S = √(p · (p − a) · (p − b) · (p − c)).

Подставим a=3, b=4, c=5:

  • p = (3 + 4 + 5) / 2 = 12 / 2 = 6;
  • S = √(6 · 3 · 2 · 1) = √36 = 6.

Ответ: 6.0

Программа на Pascal:

Задание 5. Даны координаты вершин треугольника A, B, C. Нужно написать программу, которая вычисляет его площадь. Тест: A(2,1), B(6,5), C(10,1) → S = 16.0.

Решение.

Площадь треугольника по координатам вычисляется формулой:

S = ½ · | (xb − xa)·(yc − ya) − (xc − xa)·(yb − ya) |

Подставим данные:

  • xa = 2, ya = 1
  • xb = 6, yb = 5
  • xc = 10, yc = 1

Считаем:

S = ½ · | (6−2)·(1−1) − (10−2)·(5−1) |
S = ½ · | 4·0 − 8·4 | = ½ · | −32 | = 16

Ответ: 16.0

Программа на Pascal:

Задание 6. Налоговая сумма вводится с копейками. Нужно округлить её до ближайшего рубля по правилу:

  • если копеек < 50 — округлить вниз;
  • если копеек ≥ 50 — округлить вверх.

Решение.

Разделяем число на рубли и копейки. Далее применяем условие:

Пример.

Ввод: 245.68
Копеек 68 ≥ 50 → округляем вверх → 246 руб.

Ввод: 100.12
Копеек 12 < 50 → округляем вниз → 100 руб.

Задание 7. Изучаем работу random() и отвечаем на вопросы: как получить случайное число в разных интервалах.

Решение.

В Паскале функция random(k) возвращает целое число от 0 до k−1.

1. Как получить случайное число из интервала (0, x)?

Нужны числа от 1 до x−1:

2. Как получить случайное число из полуинтервала (0, x]?

Нужны числа от 1 до x:

3. Как получить случайное число из интервала (n, x + n)?

Нужны числа от n+1 до x+n−1. Ширина интервала равна x−1:

Итог: используется общая формула:

— для интервала [a, b]. Для открытых интервалов границы корректируются вручную.

Задание 8. Случайно выбрать номера лотерейных билетов
для трёх групп: молодёжь (1–100), взрослые (101–200), пенсионеры (201–250).

Решение. Используем функцию random, подбирая нужные
диапазоны.

Получили три случайных номера из нужных интервалов.

Задание 9. Написать программу, которая для любого
двузначного числа находит: сумму его цифр, произведение его цифр,
а также число, полученное перестановкой цифр.

Решение.

Пример проверки.
Если n = 47 → сумма = 11, произведение = 28, перестановка = 74.

Задание 10. Написать программу, которая по сумме сдачи находит, сколько нужно выдать купюр по 500, 200, 100 и 50 рублей, а остаток выдаётся монетами.

Решение.

Пример проверки.
При s = 845 программа выдаст:
500 руб – 1 шт., 200 руб – 1 шт., 100 руб – 1 шт., 50 руб – 0 шт., монетами – 45 руб.

Задание 11. По номеру секунды k определить, сколько
прошло полных часов h и полных минут m от начала суток, и вывести фразу:
It is h hours m minutes.

Решение (программа на Pascal).

Проверка.
При k = 13257 программа выводит:
It is 3 hours 40 minutes.

Задание 12. Найти сумму кодов букв в слове «БАЙТ».

Решение (Pascal).

Примечание. Значение суммы зависит от кодировки (обычно Windows-1251).

Задание 13. Вывести строку, составленную из символов с кодами 66, 69, 71, 73, 78.

Решение (Pascal).

Комментарий. Функция chr() возвращает символ по его числовому коду (ASCII/Windows-1251).

Задание 14. Ввести три слова (прилагательное, существительное и глагол) и вывести все варианты фраз из этих слов.

Решение (Pascal).

Задание 15. Из слова «ИНФОРМАТИКА» получить слова «ФОРМА», «ФИРМА», «МАК» и найти общее количество букв в этих словах.

Решение (Pascal).

Задание 16. Пользователь по описанному «фокусу» вводит число N.
Нужно по этому числу «отгадать» день и месяц рождения.

Решение (Pascal).

Задание 17. a = 10, b = 20. Определить значение логической переменной rez для каждого присваивания.

Решение.

а) rez := (a = 10) or (b > 10)

  • a = 10 ⇒ (a = 10) = истина
  • b = 20 ⇒ (b > 10) = истина
  • истина or истина ⇒ rez = истина

б) rez := (a > 5) and (b > 5) and (a < 20) and (b < 30)

  • 10 > 5 ⇒ истина
  • 20 > 5 ⇒ истина
  • 10 < 20 ⇒ истина
  • 20 < 30 ⇒ истина
  • все части истинны ⇒ rez = истина

в) rez := (not(a < 15)) or (b > 20)

  • 10 < 15 ⇒ истина ⇒ not(истина) = ложь
  • 20 > 20 ⇒ ложь
  • ложь or ложь ⇒ rez = ложь

18а) Программа на Паскале: сумма цифр трёхзначного числа чётная?


18б) Программа на Паскале: треугольник со сторонами a, b, c разносторонний?

 

§ 4.1 § 4.2 § 4.3 § 4.4 § 4.5