Нейросеть

ГДЗ: Параграф § 1.3 / Информатика 9 класс

Страницы: 30, 31, 32, 33, 34, 35, 36, 37, 38
Глава: Глава 1. Алгоритмы и программирование
Параграф: § 1.3 - Запись вспомогательных алгоритмов на языке Python
Учебник: Информатика 9 класс -
Автор: Босова Людмила Леонидовна
Год: 2025
Издание: 7-е издание, стереотипное

Вопросы для самопроверки:

1. С какой целью используются подпрограммы в программировании?

Ответ:

Подпрограммы (процедуры и функции) используются для:

  • Разделения кода на логически завершённые и управляемые модули.
  • Повышения читаемости и структурированности программы.
  • Многократного использования одного и того же блока команд, что предотвращает дублирование кода.
  • Упрощения отладки, так как ошибки легче локализовать в небольших блоках.

2. В чём заключается основное различие между функцией и процедурой?

Ответ:

Основное различие состоит в возвращаемом значении:

  • Процедура – это подпрограмма, выполняющая определённый набор действий, но не возвращающая явного результата.
  • Функция – это подпрограмма, которая, помимо выполнения действий, обязательно возвращает единственное значение (результат) с помощью оператора return.

3. Каким образом связаны наибольший общий делитель (НОД) и наименьшее общее кратное (НОК) двух чисел?

Ответ:

Наименьшее общее кратное (НОК) двух натуральных чисел \( a \) и \( b \) связано с их наибольшим общим делителем (НОД) с помощью следующего соотношения:

\( \text{НОК}(a, b) = (a \cdot b) / \text{НОД}(a, b) \)

Практические задания:

Создайте процедуру, которая принимает целое число \( n \) в качестве параметра и выводит на экран \( n \) строк, каждая из которых состоит из символа 'A'.

Решение на Python:

def print_symbol_lines(n, symbol='A'):
for _ in range(n):
print(symbol)

# Пример вызова
print_symbol_lines(5)
Разработайте процедуру с параметрами \( w \) (ширина), \( h \) (высота) и \( a \) (символ), которая выводит на экран прямоугольник, состоящий из символов \( a \), с заданной шириной и высотой.

Решение на Python:

def print_rectangle(w, h, a):
for _ in range(h):
print(a * w)

# Пример вызова
print_rectangle(10, 3, '*')
Напишите функцию kdn(), которая вычисляет количество цифр во введённом целом числе.

Решение на Python:

def kdn(n):
# Преобразуем число в строку и находим ее длину
return len(str(abs(n)))

# Пример вызова
print(kdn(12345)) # Выведет 5
Напишите функцию kbin(), которая вычисляет количество цифр в двоичной записи введённого десятичного числа.

Решение на Python:

def kbin(n):
# Функция bin() возвращает строку вида '0b...'
# len(bin(n)) - 2 дает длину двоичной части
if n == 0:
return 1
return len(bin(n)) - 2

# Пример вызова
print(kbin(10)) # 10 в двоичной 1010, длина 4
Используя процедуру для вычисления наибольшего общего делителя (НОД) двух чисел, разработайте программу, вычисляющую наименьшее общее кратное (НОК) для четырёх чисел: 36, 54, 18 и 15. Используйте соотношение: \( \text{НОК}(a, b) = (a \cdot b) / \text{НОД}(a, b) \).

Решение на Python (с использованием алгоритма Евклида для НОД):

def nod(a, b):
while b != 0:
a, b = b, a % b
return a

def nok(a, b):
if a == 0 or b == 0:
return 0
return abs(a * b) // nod(a, b)

def nok_of_four(n1, n2, n3, n4):
# Последовательное вычисление НОК: НОК(n1, n2, n3, n4) = НОК(НОК(НОК(n1, n2), n3), n4)
res1 = nok(n1, n2)
res2 = nok(res1, n3)
final_res = nok(res2, n4)
return final_res

# Исходные данные
num1, num2, num3, num4 = 36, 54, 18, 15
result = nok_of_four(num1, num2, num3, num4)
print(f"НОК({num1}, {num2}, {num3}, {num4}) = {result}")
# Ответ: 540
Напишите программу, которая упорядочивает значения переменных \( a \), \( b \), \( c \) по возрастанию, так чтобы \( a \lt b \lt c \). Используйте вспомогательную функцию <code>swap()</code> для обмена значений переменных. Входные данные вводятся с клавиатуры.

Решение на Python (используя сортировку пузырьком):

def swap(x, y):
return y, x

def sort_three(a, b, c):
# Упаковываем в список для удобства сортировки
nums = [a, b, c]
n = len(nums)
# Два прохода сортировки пузырьком
for i in range(n - 1):
if nums[i] > nums[i+1]:
nums[i], nums[i+1] = swap(nums[i], nums[i+1])

# Еще один проход для гарантии, так как используется только swap
if nums[0] > nums[1]:
nums[0], nums[1] = swap(nums[0], nums[1])

return nums[0], nums[1], nums[2]

# Ввод данных
try:
a, b, c = map(int, input("Введите три числа через пробел: ").split())
a, b, c = sort_three(a, b, c)
print(f"Результат: {a} {b} {c}")
except ValueError:
print("Ошибка ввода.")
Создайте программу для вычисления суммы выражения \( s = 1! + 2! + 3! + \dots + n...

Решение на Python:

def factorial(k):
if k == 0 or k == 1:
return 1
else:
res = 1
for i in range(2, k + 1):
res *= i
return res

def sum_of_factorials(n):
sum_s = 0
for i in range(1, n + 1):
sum_s += factorial(i)
return sum_s

# Ввод n
try:
n = int(input("Введите целое число n: "))
if n >= 1:
result = sum_of_factorials(n)
print(f"Сумма ряда до {n}! равна: {result}")
else:
print("Введите n >= 1.")
except ValueError:
print("Ошибка ввода.")
Разработайте программу для вычисления выражения \( s = x^8 + x^5 + x^n \), где \( x \) и \( n \) вводятся с клавиатуры. Используйте вспомогательную подпрограмму для расчёта степени.

Решение на Python:

def power(base, exp):
# Встроенная функция pow() или оператор
return base
exp

def calculate_expression(x, n):
s = power(x, 8) + power(x, 5) + power(x, n)
return s

# Ввод данных
try:
x = float(input("Введите x: "))
n = int(input("Введите n: "))
result = calculate_expression(x, n)
print(f"Значение выражения: {result}")
except ValueError:
print("Ошибка ввода.")
Создайте функцию, которая вычисляет длину отрезка по координатам его концов. Напишите программу, которая, используя эту функцию, вычисляет периметр треугольника по координатам его вершин.

Решение на Python:

import math

def segment_length(x1, y1, x2, y2):
# Формула расстояния между двумя точками: sqrt((x2 - x1)^2 + (y2 - y1)^2)
return math.sqrt(power(x2 - x1, 2) + power(y2 - y1, 2))

def power(base, exp):
return base ** exp

def triangle_perimeter(xa, ya, xb, yb, xc, yc):
# Длины сторон
side_ab = segment_length(xa, ya, xb, yb)
side_bc = segment_length(xb, yb, xc, yc)
side_ca = segment_length(xc, yc, xa, ya)
# Периметр
perimeter = side_ab + side_bc + side_ca
return perimeter

# Ввод координат вершин
try:
print("Введите координаты вершины A (xA yA):")
xa, ya = map(float, input().split())
print("Введите координаты вершины B (xB yB):")
xb, yb = map(float, input().split())
print("Введите координаты вершины C (xC yC):")
xc, yc = map(float, input().split())

perimeter = triangle_perimeter(xa, ya, xb, yb, xc, yc)
print(f"Периметр треугольника: {perimeter:.2f}")
except ValueError:
print("Ошибка ввода.")
Создайте функцию, вычисляющую площадь треугольника по координатам его вершин. Затем разработайте программу, которая, используя эту функцию, вычисляет площадь четырёхугольника по координатам его вершин.

Решение на Python (используя формулу Гаусса / разбиение на треугольники):

def triangle_area(x1, y1, x2, y2, x3, y3):
# Формула площади по координатам вершин:
# 0.5 * |(x1(y2 - y3) + x2(y3 - y1) + x3(y1 - y2))|
area = 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))
return area

def quad_area(xa, ya, xb, yb, xc, yc, xd, yd):
# Площадь четырехугольника как сумма площадей двух треугольников: ABC и ACD
area_abc = triangle_area(xa, ya, xb, yb, xc, yc)
area_acd = triangle_area(xa, ya, xc, yc, xd, yd)
total_area = area_abc + area_acd
return total_area

# Ввод координат вершин
try:
# Предполагается ввод в порядке, обходящем вершины
print("Введите координаты вершины A (xA yA):")
xa, ya = map(float, input().split())
print("Введите координаты вершины B (xB yB):")
xb, yb = map(float, input().split())
print("Введите координаты вершины C (xC yC):")
xc, yc = map(float, input().split())
print("Введите координаты вершины D (xD yD):")
xd, yd = map(float, input().split())

area = quad_area(xa, ya, xb, yb, xc, yc, xd, yd)
print(f"Площадь четырехугольника: {area:.2f}")
except ValueError:
print("Ошибка ввода.")

Задали создать проект?

Создай с помощью ИИ за 5 минут

До 90% уникальность
Готовый файл Word
15-30 страниц
Список источников по ГОСТ
Оформление по ГОСТ
Таблицы и схемы

Готовые проекты

Список готовых проектов к текущему параграфу.

Уведомление об авторском праве и цитировании

ВНИМАНИЕ: Представленные фрагменты из учебных материалов используются исключительно в научно-образовательных целях в объеме, оправданном поставленной целью.

Данное использование осуществляется в рамках, установленных законодательством об авторском праве (в частности, нормами о свободном использовании произведения для образовательных целей).

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