Главная / Учебники / Информатика 8 класс / Параграф § 4.3 / ГДЗ § 4.3
| Глава: | Глава 4. Начала программирования на языке Паскаль |
|---|---|
| Параграф: | § 4.3 - Программирование линейных алгоритмов |
| Учебник: | Информатика 8 класс - |
| Автор: | Босова Людмила Леонидовна |
| Год: | 2025 |
| Издание: | 7-е издание, стереотипное |
Ответ:
В языке Паскаль используются следующие основные типы данных:
Ответ:
Программа вычисляет площадь треугольника по формуле Герона.
Исходные данные: \( a = 12 \), \( b = 5 \), \( c = 13 \).
1. Вычисляется полупериметр \( p \): \( p := (12 + 5 + 13) / 2 = 15.0 \).
2. Вычисляется площадь \( s \): \( s := \sqrt{15.0 * (15.0 - 12) * (15.0 - 5) * (15.0 - 13)} = \sqrt{900.0} = 30.0 \).
Результат работы программы: s = 30.0
Решение на языке Паскаль
Используем преобразованное выражение для минимизации количества операций.
var x, y: real; begin write('Введите x >>'); readln(x); y := x + 2.5; y := y * x - 1; y := y * x + 1; writeln('y = ', y) end.
Решение на языке Паскаль
Используем функцию sqrt для квадратного корня и sqr для квадрата.
var xa, ya, xb, yb, d: real; begin writeln('Вычисление длины отрезка'); write('Введите xa, ya: '); readln(xa, ya); write('Введите xb, yb: '); readln(xb, yb); d := sqrt(sqr(xb - xa) + sqr(yb - ya)); writeln('|AB| = ', d:0:1); end.
Решение на языке Паскаль
Для вычисления площади \( s \) используем формулу Герона: \( s = \sqrt{p(p-a)(p-b)(p-c)} \), где \( p \) – полупериметр \( p = \frac{a+b+c}{2} \).
var a, b, c, p, s: real; begin writeln('Вычисление площади треугольника по трем сторонам'); write('Введите a, b, c: '); readln(a, b, c); p := (a + b + c) / 2; s := sqrt(p * (p - a) * (p - b) * (p - c)); writeln('s = ', s:0:1); end.
Решение на языке Паскаль
Используем формулу с модулем для вычисления площади по координатам вершин. Используем функцию abs для модуля.
var xa, ya, xb, yb, xc, yc, s: real; begin writeln('Вычисление площади треугольника по координатам вершин'); write('Введите xa, ya: '); readln(xa, ya); write('Введите xb, yb: '); readln(xb, yb); write('Введите xc, yc: '); readln(xc, yc); s := 0.5 * abs(xa * (yb - yc) + xb * (yc - ya) + xc * (ya - yb)); writeln('Площадь треугольника S = ', s); end.
Решение на языке Паскаль
Для округления, где 50 копеек округляется вверх, используется функция round.
var nal_tochnyi: real; nal_uplata: integer; begin writeln('Округление налоговой суммы'); write('Введите точную сумму налога (руб.коп.): '); readln(nal_tochnyi); nal_uplata := round(nal_tochnyi + 0.0000001); // Добавление малой величины для корректного округления .5 writeln('Сумма к уплате (руб.): ', nal_uplata); end.
Работа функции random
Функция random без аргументов возвращает вещественное число \( r \in [0, 1) \). С целочисленным аргументом \( x \) возвращает целое число \( i \in [0, x-1] \).
Решение на языке Паскаль
Пусть \( \text{N} \) — двузначное число. Первая цифра \( a = \text{N} \ div \ 10 \), вторая цифра \( b = \text{N} \ mod \ 10 \).
var n, a, b, sum_cifr, proiz_cifr, perestanovka: integer; begin write('Введите двузначное число: '); readln(n); a := n div 10; b := n mod 10; sum_cifr := a + b; proiz_cifr := a * b; perestanovka := b * 10 + a; writeln('Сумма цифр: ', sum_cifr); writeln('Произведение цифр: ', proiz_cifr); writeln('Число с переставленными цифрами: ', perestanovka); end.
Решение на языке Паскаль
Используем последовательное деление с остатком для купюр, начиная с самого крупного номинала.
var s, ostatok, k500, k200, k100, k50: integer; begin write('Введите сумму сдачи (руб.): '); readln(s); ostatok := s; k500 := ostatok div 500; ostatok := ostatok mod 500; k200 := ostatok div 200; ostatok := ostatok mod 200; k100 := ostatok div 100; ostatok := ostatok mod 100; k50 := ostatok div 50; ostatok := ostatok mod 50; writeln('Сдача ', s, ' руб. выдается:'); writeln('Банкнот по 500 руб. - ', k500, ' шт.'); writeln('Банкнот по 200 руб. - ', k200, ' шт.'); writeln('Банкнот по 100 руб. - ', k100, ' шт.'); writeln('Банкнот по 50 руб. - ', k50, ' шт.'); writeln('Монетами - ', ostatok, ' руб.'); end.
Решение на языке Паскаль
Количество секунд в часе: \( 3600 \). Количество секунд в минуте: \( 60 \).
var k, h, m, ostatok: integer; begin write('Введите k-ю секунду суток: '); readln(k); h := k div 3600; ostatok := k mod 3600; m := ostatok div 60; writeln('It is ', h, ' hours ', m, ' minutes'); end.
Решение на языке Паскаль
Программа складывает коды символов 'Б', 'А', 'Й', 'Т' с помощью функции ord.
var s: integer; begin s := ord('Б') + ord('А') + ord('Й') + ord('Т'); writeln('Сумма кодов букв в слове БАЙТ: ', s); end.
Решение на языке Паскаль
Программа использует функцию chr для преобразования кодов в символы и выводит их в одну строку.
var s: string; begin s := chr(66) + chr(69) + chr(71) + chr(73) + chr(78); writeln('Строка символов: ', s); end.
Решение на языке Паскаль
Используем строковую конкатенацию для создания всех 6 ( \( 3! \) ) возможных перестановок слов.
var s1, s2, s3: string; begin write('Введите прилагательное: '); readln(s1); write('Введите существительное: '); readln(s2); write('Введите глагол: '); readln(s3); writeln('Варианты фраз:'); writeln(s1, ' ', s2, ' ', s3); writeln(s1, ' ', s3, ' ', s2); writeln(s2, ' ', s1, ' ', s3); writeln(s2, ' ', s3, ' ', s1); writeln(s3, ' ', s1, ' ', s2); writeln(s3, ' ', s2, ' ', s1); end.
Решение на языке Паскаль
Используем функцию length(s) для определения длины каждой строки.
var s1, s2, s3, s4, s5: string; total_length: integer; begin s1 := 'ИНФОРМАТИКА'; s2 := 'ФОРМА'; s3 := 'ФИРМА'; s4 := 'МАК'; s5 := 'СЛОВА'; total_length := length(s1) + length(s2) + length(s3) + length(s4) + length(s5); writeln('Общее количество символов: ', total_length); // Ожидаемый результат: 11 + 5 + 5 + 3 + 5 = 29 end.
Решение на языке Паскаль
Пусть \( \text{Result} \) — полученное число, \( \text{D} \) — день, \( \text{M} \) — месяц. Обратный алгоритм: \( \text{TrueResult} = \text{Result} - 250 \). Тогда \( \text{D} = \text{TrueResult} \ div \ 100 \), \( \text{M} = \text{TrueResult} \ mod \ 100 \).
var result, true_result, day, month: integer; begin writeln('Фокус - угадывание даты рождения'); write('Попросите человека выполнить вычисления и ввести результат: '); readln(result); true_result := result - 250; day := true_result div 100; month := true_result mod 100; writeln('Ваша дата рождения: ', day, ' / ', month); end.
Решение
Исходные данные: \( a = 10 \), \( b = 20 \).
Исходная программа на языке Паскаль
uses GraphABC; begin // Треугольник Line(50, 250, 150, 100); Line(150, 100, 250, 250); Line(250, 250, 50, 250); // Окружность Circle(300, 150, 50); // Квадрат Rectangle(400, 100, 500, 200); end.
Программа с измененным изображением
Для создания требуемого изображения: квадрат, в нем окружность, в ней треугольник.
uses GraphABC; begin // Квадрат (200x200) Rectangle(100, 100, 300, 300); // Окружность (центр (200, 200), радиус 100) Circle(200, 200, 100); // Треугольник внутри окружности Line(150, 250, 250, 250); Line(250, 250, 200, 150); Line(200, 150, 150, 250); end.
Задали создать проект?
Создай с помощью ИИ за 5 минут
Список готовых проектов к текущему параграфу.
ВНИМАНИЕ: Представленные фрагменты из учебных материалов используются исключительно в научно-образовательных целях в объеме, оправданном поставленной целью.
Данное использование осуществляется в рамках, установленных законодательством об авторском праве (в частности, нормами о свободном использовании произведения для образовательных целей).
В соответствии с законодательством, автор и источник заимствования указаны для каждого используемого фрагмента.