ГДЗ Інформатика 7 клас О.О. Бондаренко, В.В. Ластовецький, О.П. Пилипчук, Є.А. Шестопалов (2024)

← Повернутися до розділів

Розв'язок:

§ 40 Обчислення з використанням функцій користувача

Питання для самоперевірки

1. Що буде виведено, якщо x = 123; x = 54 321?

def f(x):
k = 0
while x>0:
x = x//10
k += 1
return k
x = int(input('x = ?'))
print(f(x))
Розглянемо код, щоб зрозуміти, що буде виведено.
Ось програма з корекцією відступів для функції `f`:
```python
def f(x):
k = 0
while x > 0:
x = x // 10
k += 1
return k
x = int(input('x = ?'))
print(f(x))
```
Пояснення

1. Функція `f(x)` рахує кількість цифр у числі `x`. Вона ділить `x` на 10 (цілочисельний поділ) у циклі `while`, поки `x` не стане 0. При кожному діленні на 10 змінна `k` збільшується на 1, підраховуючи кількість ітерацій (тобто кількість цифр).
2. Користувач вводить число для змінної `x`. Залежно від введеного значення `x`, функція `f(x)` повертає кількість цифр у цьому числі.

Приклади

  • Якщо ввести `x = 123`, функція `f(123)` поверне `3`, оскільки `123` має 3 цифри.
  • Якщо ввести `x = 54321`, функція `f(54321)` поверне `5`, оскільки `54321` має 5 цифр.

Отже:

  • Для введеного `x = 123`, програма виведе `3`.
  • Для введеного `x = 54321`, програма виведе `5`.

Ця функція рахує кількість цифр у числі `x`.

1. Якщо `x = 123`, функція буде працювати так:

  • Перший крок: `x = 123 // 10 = 12`, `k = 1`
  • Другий крок: `x = 12 // 10 = 1`, `k = 2`
  • Третій крок: `x = 1 // 10 = 0`, `k = 3`

Отже, `f(123)` поверне `3`, тому на екран буде виведено `3`.

2. Якщо `x = 54321`, функція працює так:

  • Перший крок: `x = 54321 // 10 = 5432`, `k = 1`
  • Другий крок: `x = 5432 // 10 = 543`, `k = 2`
  • Третій крок: `x = 543 // 10 = 54`, `k = 3`
  • Четвертий крок: `x = 54 // 10 = 5`, `k = 4`
  • П'ятий крок: `x = 5 // 10 = 0`, `k = 5`

Отже, `f(54321)` поверне `5`, і на екран буде виведено `5`.

2. Використання функції `m(a, b)` для знаходження найбільшого з трьох чисел `x`, `y`, `z`
Функція `m(a, b)` визначає більше з двох чисел. Щоб знайти найбільше з трьох чисел `x`, `y`, `z`, можна викликати цю функцію двічі:

```python
def m(a, b):
if a > b:
k = a
else:
k = b
return k
x = int(input('x = ?'))
y = int(input('y = ?'))
z = int(input('z = ?'))
# Використовуємо функцію m двічі
largest = m(m(x, y), z)
print("Найбільше число:", largest)
```
Тут:

1. Спочатку `m(x, y)` знаходить більше з `x` і `y`.
2. Далі результат порівнюється з `z` за допомогою `m(...)`, щоб знайти найбільше з трьох чисел.

3. Проаналізуйте програму для знаходження площі прямокутної пластини розмірами а×b см із круглим отвором радіуса

Програма знаходить площу прямокутника розмірами `a×b` см із круглим отвором радіуса `r`. Функції `s(a, b)` та `c(r)` обчислюватимуть площу прямокутника і площу круга відповідно:

```python
import math
# Функція для обчислення площі прямокутника
def s(a, b):
return a * b
# Функція для обчислення площі круга
def c(r):
return math.pi * r2
# Введення даних
a = int(input('a = ?'))
b = int(input('b = ?'))
r = int(input('r = ?'))
# Обчислення площі
pl = s(a, b) - c(r)
print("Площа дорівнює", pl, "кв. см")
```
У цьому коді:

  • `s(a, b)` повертає площу прямокутника.
  • `c(r)` повертає площу круга з радіусом `r`.
  • Різниця `s(a, b) - c(r)` дає площу прямокутної пластини із круглим отвором.

4. Створіть функцію, яка повертає добуток двох чисел.

Ось проста функція для знаходження добутку двох чисел `a` та `b`:
```python
def multiply(a, b):
return a * b
# Використання функції
a = int(input('Перше число: '))
b = int(input('Друге число: '))
print("Добуток чисел:", multiply(a, b))
```
Ця функція повертає добуток `a` та `b` і виводить результат.