Поділіться своєю думкою про онлайн уроки інформатики. Пройдіть анонімне опитування на головній сторінці сайту
Тема уроку сьогодні — "Підпрограми". Це дуже важливий аспект програмування, адже підпрограми дозволяють нам структурувати код, робити його зрозумілішим, а головне – багаторазово використовувати одні й ті ж фрагменти коду, що значно скорочує час на розробку та полегшує супровід програм.
Ви, мабуть, чули про такі поняття, як «функції» чи «процедури». Ці терміни широко використовуються в програмуванні і є основою для побудови складних програм. Підпрограми є надзвичайно корисними в багатьох ситуаціях. Уявімо, що потрібно в програмі кілька разів виконати ту ж саму послідовність дій, наприклад, обчислити площу кола, або виконати обробку масиву даних. Без підпрограм довелося б писати той самий код знову і знову, що збільшує ймовірність помилок і робить код громіздким та важким для розуміння.
Підпрограми застосовуються в різних сферах: розробці ігор, створенні веб-додатків, написанні програм для наукових обчислень. Наприклад, у калькуляторі підпрограми обробляють введені значення та виконують математичні операції. Або ж у програмі для обробки тексту, де є підпрограми для перевірки орфографії, зміни стилів і форматування тексту. Тобто в нашому повсякденному житті багато програм працюють саме завдяки підпрограмам, і це робить їх універсальними та зручними у використанні.
Що таке підпрограма?
Підпрограма — це окремий блок коду, який виконує певну задачу і який можна викликати за потреби у будь-якому місці програми. Підпрограми можуть мати параметри та повертати результат. Найбільш поширеними видами підпрограм є функції та процедури.
Процедура — підпрограма, яка виконує певні дії, але не повертає значення. Наприклад, якщо у програмі є код, що виводить привітання, його можна оформити як процедуру.
Функція — підпрограма, яка повертає значення, яке можна використовувати у подальших обчисленнях. Наприклад, функція може обчислювати суму двох чисел і повертати результат.
Приклади підпрограм у Python
У Python створення підпрограм відбувається за допомогою ключового слова def. Давайте розглянемо приклад.
python
Копіювати код
def square(x):
return x * x
result = square(5)
print("Квадрат числа 5:", result)
У цьому прикладі square — це функція, яка приймає параметр x і повертає його квадрат. Викликавши цю функцію з аргументом 5, ми отримуємо результат 25.
Приклад підпрограм у Lazarus
У середовищі Lazarus підпрограми також дуже зручні для використання. Наприклад, можна створити підпрограму для виведення повідомлення.
pascal
Копіювати код
procedure ShowMessage;
begin
ShowMessage('Привіт, це підпрограма!');
end;
Параметри підпрограми — це значення, які передаються підпрограмі для обробки. Наприклад, у функції square в Python параметр x передається для обчислення квадрата числа.
Виклик підпрограми — це звернення до підпрограми в основному коді. Наприклад, рядок square(5) у прикладі вище є викликом функції square.
Повернення значення — у функціях можна повернути результат обчислень, використовуючи команду return у Python або Result := ... у Lazarus.
Локальні змінні — змінні, які існують тільки в межах підпрограми і не доступні в інших частинах програми. Наприклад, змінна x у функції square є локальною.
Переваги підпрограм
Повторне використання коду — один раз написавши підпрограму, її можна використовувати де завгодно в програмі.
Структурованість програми — підпрограми дозволяють логічно розділити програму на частини, що полегшує її розуміння та тестування.
Зниження ймовірності помилок — оскільки підпрограма тестується окремо, вірогідність помилок зменшується.
Приклади завдань для закріплення теми
Підпрограма для обчислення факторіала в Python
python
Копіювати код
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print("Факторіал 5:", factorial(5))
Функція у Lazarus для обчислення суми двох чисел
pascal
Копіювати код
function Sum(a, b: Integer): Integer;
begin
Result := a + b;
end;
Знання підпрограм допоможе вам не тільки структурувати програму, а й зробити її більш ефективною та зрозумілою. Підпрограми є важливим кроком на шляху до освоєння професійного програмування, адже вміння користуватись ними розвиває навички логічного мислення та грамотної організації коду.
На наступних заняттях ми будемо вдосконалювати ваші знання, виконуючи практичні завдання з підпрограмами, а також вивчати складніші конструкції, які допоможуть вам створювати ще цікавіші та корисніші програми.
Чому підпрограми такі важливі?
Економія часу: Не потрібно писати один і той самий код знову і знову.
Зрозумілість коду: Розбиття програми на менші, логічні частини робить її легшою для розуміння і зміни.
Повторне використання: Підпрограми можна використовувати в різних програмах.
Спрощення тестування: Кожну підпрограму можна протестувати окремо.
Де ми зустрічаємо підпрограми в житті?
Куховарство: Рецепт – це свого роду підпрограма для приготування страви.
Складання меблів: Інструкція – це алгоритм, який розбитий на підзадачі.
Будь-який пристрій: Від смартфона до автомобіля – все працює за допомогою програм, які складаються з багатьох підпрограм.
Основні теоретичні відомості
Що таке підпрограма?
Підпрограма – це окремий блок коду, який виконує певну задачу. Вона має свою назву і може приймати вхідні дані (параметри) та повертати результат.
Види підпрограм:
Функції: Повертають результат.
Процедури: Виконують дії, але не повертають результат.
Структура підпрограми:
Заголовок: Містить назву підпрограми і список параметрів (якщо є).
Тіло: Містить послідовність команд, які виконуються підпрограмою.
Виклик підпрограми:
Щоб виконати підпрограму, потрібно написати її назву і передати їй необхідні аргументи (якщо вони є).
Приклад в Python:
Python
def вітання(ім'я):
print("Привіт,", ім'я + "!")
вітання("Іван")
Використовуйте цей код обачно.
У цьому прикладі ми створили функцію вітання, яка приймає ім'я як параметр і виводить привітання.
Приклад в Lazarus:
Delphi
procedure Вітання(Ім'я: string);
begin
ShowMessage('Привіт, ' + Ім'я + '!');
end;
begin
Вітання('Марія');
end.
Використовуйте цей код обачно.
Тут ми створили процедуру Вітання, яка приймає ім'я і виводить повідомлення за допомогою вбудованої функції ShowMessage.
Передача параметрів:
Параметри дозволяють передавати дані в підпрограму. Існують два типи передачі параметрів:
За значенням: Копія значення параметра передається в підпрограму. Зміни всередині підпрограми не впливають на вихідний параметр.
За посиланням: Адреса комірки пам'яті передається в підпрограму. Зміни всередині підпрограми впливають на вихідний параметр.
Рекурсія:
Рекурсія – це випадок, коли підпрограма викликає сама себе. Це дозволяє вирішувати складні задачі, розбиваючи їх на простіші підзадачі.
Приклад рекурсії в Python:
Python
def факторіал(n):
if n == 0:
return 1
else:
return n * факторіал(n - 1)
Використовуйте цей код обачно.
Важливі терміни:
Підпрограма: Окремий блок коду, який виконує певну задачу.
Функція: Підпрограма, яка повертає результат.
Процедура: Підпрограма, яка виконує дії, але не повертає результат.
Параметр: Змінна, яка передається в підпрограму.
Аргумент: Конкретне значення, яке передається в підпрограму як параметр.
Виклик підпрограми: Команда, яка запускає виконання підпрограми.
Рекурсія: Випадок, коли підпрограма викликає сама себе.
Наступні уроки:
Практичні завдання: Розв'язання задач з використанням підпрограм.
Сортування: Алгоритми сортування масивів за допомогою підпрограм.
Пошук: Алгоритми пошуку елементів в масивах за допомогою підпрограм.
Висновок:
Підпрограми – це потужний інструмент, який дозволяє писати більш структуровані, ефективні і зрозумілі програми. Опанувавши цю тему, ви зможете створювати складні алгоритми і розв'язувати різноманітні задачі програмування.
Запитання:
Чи зрозуміли ви, що таке підпрограма?
Які переваги використання підпрограм?
Можете навести приклади підпрограм з повсякденного життя?
Бажаю вам успіхів у вивченні програмування!
Практична робота
Умова: Створити програму, яка перевіряє, чи є введене користувачем число парним.
Алгоритм:
Попросити користувача ввести число.
Перевірити, чи ділиться число на 2 без остачі.
Якщо ділиться, вивести повідомлення "Число парне", інакше - "Число непарне".
Розв'язок на Python:
Середовище пайтон онлайн https://www.online-python.com/
Python
число = int(input("Введіть число: "))
if число % 2 == 0:
print("Число парне")
else:
print("Число непарне")
Використовуйте цей код обачно.
Розв'язок на Lazarus:
Форма:
Елемент Edit1 для введення числа.
Елемент Button1 з написом "Перевірити".
Елемент Label1 для виведення результату.
Код:
Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
число: Integer;
begin
Val(Edit1.Text, число);
if число mod 2 = 0 then
Label1.Caption := 'Число парне'
else
Label1.Caption := 'Число непарне';
end;
end.
Використовуйте цей код обачно.
Умова: Створити програму, яка обчислює площу прямокутника за заданими сторонами.
Алгоритм:
Попросити користувача ввести довжину і ширину прямокутника.
Обчислити площу за формулою: площа = довжина * ширина.
Вивести результат.
Розв'язки (аналогічно до попередньої задачі)
Умова: Створити програму, яка перевіряє, чи одне число кратне іншому.
Алгоритм:
Попросити користувача ввести два числа.
Перевірити, чи перше число ділиться на друге без остачі.
Якщо ділиться, вивести повідомлення "Перше число кратне другому", інакше - "Перше число не кратне другому".
Розв'язки (аналогічно до попередніх задач)
Пояснення:
Оператор mod: Цей оператор повертає остачу від ділення. Якщо остача дорівнює нулю, то одне число ділиться на інше без остачі.
Умовні оператори if-else: За допомогою цих операторів ми перевіряємо умови і виконуємо різні дії залежно від результату перевірки.
Додаткові завдання:
Розрахувати периметр прямокутника.
Перевірити, чи число є простим.
Знайти найбільший спільний дільник двох чисел.
Обчислити середнє арифметичне кількох чисел.
Ці задачі допоможуть учням закріпити свої знання про змінні, оператори, умови і введення-виведення даних. Вони також є гарною основою для подальшого вивчення більш складних алгоритмів і структур даних.
Завдання: Написати програму, яка приймає два числа, порівнює їх та виводить більше число.
Розв'язок у Python
python
Копіювати код
def max_of_two(a, b):
return a if a > b else b
# Введення чисел
num1 = int(input("Введіть перше число: "))
num2 = int(input("Введіть друге число: "))
# Виклик підпрограми та виведення результату
print("Максимальне число:", max_of_two(num1, num2))
Розв'язок у Lazarus
Алгоритм створення проєкту:
Додайте на форму:
Два TEdit для введення чисел.
TButton для запуску порівняння.
TLabel для виведення результату.
Код у Lazarus:
pascal
Копіювати код
procedure TForm1.Button1Click(Sender: TObject);
var
num1, num2, maxNum: Integer;
begin
num1 := StrToInt(Edit1.Text);
num2 := StrToInt(Edit2.Text);
if num1 > num2 then
maxNum := num1
else
maxNum := num2;
Label1.Caption := 'Максимальне число: ' + IntToStr(maxNum);
end;
Завдання: Написати програму, яка обчислює площу прямокутника за заданою шириною і висотою.
Розв'язок у Python
python
Копіювати код
def rectangle_area(width, height):
return width * height
# Введення ширини та висоти
width = int(input("Введіть ширину: "))
height = int(input("Введіть висоту: "))
# Виклик підпрограми та виведення результату
print("Площа прямокутника:", rectangle_area(width, height))
Розв'язок у Lazarus
Алгоритм створення проєкту:
Додайте на форму:
Два TEdit для введення ширини та висоти.
TButton для обчислення площі.
TLabel для виведення результату.
Код у Lazarus:
pascal
Копіювати код
procedure TForm1.Button1Click(Sender: TObject);
var
width, height, area: Integer;
begin
width := StrToInt(Edit1.Text);
height := StrToInt(Edit2.Text);
area := width * height;
Label1.Caption := 'Площа прямокутника: ' + IntToStr(area);
end;
Завдання: Написати програму, яка приймає ціле число та визначає, чи є воно парним.
Розв'язок у Python
python
Копіювати код
def is_even(number):
return number % 2 == 0
# Введення числа
num = int(input("Введіть число: "))
# Виклик підпрограми та виведення результату
if is_even(num):
print("Число парне")
else:
print("Число непарне")
Розв'язок у Lazarus
Алгоритм створення проєкту:
Додайте на форму:
TEdit для введення числа.
TButton для перевірки парності.
TLabel для виведення результату.
Код у Lazarus:
pascal
Копіювати код
procedure TForm1.Button1Click(Sender: TObject);
var
num: Integer;
begin
num := StrToInt(Edit1.Text);
if num mod 2 = 0 then
Label1.Caption := 'Число парне'
else
Label1.Caption := 'Число непарне';
end;
Ці задачі націлені на використання підпрограм для базових операцій та забезпечують простий інтерфейс для введення чисел і виведення результатів.
Що таке підпрограма?
a) Блок коду, який виконує певну функцію
b) Весь код програми
c) Інструкція для збереження файлів
Правильна відповідь: a
Яка мета використання підпрограм?
a) Для розподілу великих задач на менші частини
b) Для оптимізації роботи комп'ютера
c) Для створення інструкцій для операційної системи
Правильна відповідь: a
Як називається підпрограма в Python?
a) Метод
b) Функція
c) Клас
Правильна відповідь: b
Як починається оголошення функції в Python?
a) function ім'я():
b) def ім'я():
c) func ім'я():
Правильна відповідь: b
Яка ключова команда використовується для завершення функції в Lazarus?
a) Return
b) End
c) Stop
Правильна відповідь: b
Як викликається підпрограма в Python?
a) Пишеться ім'я підпрограми з круглими дужками
b) Пишеться ім'я підпрограми без дужок
c) За допомогою команди call
Правильна відповідь: a
Яка підпрограма є вбудованою в Python?
a) print()
b) do()
c) call()
Правильна відповідь: a
Який символ використовують для відступів у Python?
a) Пробіл або табуляція
b) Двокрапка
c) Кома
Правильна відповідь: a
Як називається блок коду підпрограми в Lazarus?
a) Script
b) Procedure
c) Function
Правильна відповідь: b
Що виконує оператор return у Python?
a) Повертає значення з функції
b) Запускає програму
c) Завершує програму
Правильна відповідь: a
Що таке параметр функції?
a) Змінна, що передається у функцію для обробки
b) Результат виконання функції
c) Опис функції
Правильна відповідь: a
Як у Lazarus можна оголосити процедуру?
a) procedure ім'я;
b) func ім'я;
c) def ім'я;
Правильна відповідь: a
Який оператор в Python використовується для отримання значення функції?
a) print
b) input
c) return
Правильна відповідь: c
Чому підпрограми сприяють спрощенню коду?
a) Дозволяють уникати повторень
b) Зменшують обсяг пам'яті
c) Зменшують кількість змінних
Правильна відповідь: a
Які параметри приймає функція?
a) Тільки текстові значення
b) Тільки цілі числа
c) Будь-які значення
Правильна відповідь: c
Який тип даних повертає функція в Lazarus, якщо вона оголошена як Function?
a) Текстовий
b) Будь-який
c) Числовий
Правильна відповідь: b
Що буде виведено при виклику print(sum(1, 2)), якщо функція sum(a, b): повертає a + b?
a) 1
b) 2
c) 3
Правильна відповідь: c
Як у Lazarus викликається функція, що повертає значення?
a) Як звичайна команда
b) У виразі, де використовують результат
c) Використовуючи команду call
Правильна відповідь: b
Як можна перевірити результат роботи підпрограми?
a) За допомогою змінних
b) Через виведення значення
c) Через інші підпрограми
Правильна відповідь: b
Що таке рекурсія?
a) Виклик функції всередині себе
b) Виконання функції кілька разів
c) Зміна значення змінної
Правильна відповідь: a
Як передаються параметри у функцію в Python?
a) Через коми в дужках
b) Через крапку з комою
c) Без дужок
Правильна відповідь: a
Що буде результатом функції multiply(2, 3) при визначенні def multiply(a, b): return a * b?
a) 5
b) 6
c) 9
Правильна відповідь: b
Який тип підпрограми не повертає значення?
a) Функція
b) Процедура
c) Клас
Правильна відповідь: b
Яка функція в Python перетворює число в рядок?
a) toString
b) str
c) int
Правильна відповідь: b
Що таке модуль?
a) Окремий файл, що містить підпрограми та функції
b) Компонент інтерфейсу
c) Графічний елемент
Правильна відповідь: a
Яка функція в Lazarus викликає повідомлення на екран?
a) Msg()
b) ShowMessage()
c) Print()
Правильна відповідь: b
Що є основною перевагою використання підпрограм?
a) Підвищення швидкості процесора
b) Зниження складності програми
c) Зменшення пам’яті
Правильна відповідь: b
Що робить оператор def у Python?
a) Оголошує нову змінну
b) Оголошує нову функцію
c) Завершує функцію
Правильна відповідь: b
Яка структура обирається для повторного виконання коду?
a) Рекурсія
b) Логічний вираз
c) Коментар
Правильна відповідь: a
Що дозволяє функція input() в Python?
a) Показати результат
b) Приймати значення від користувача
c) Повернути результат
Правильна відповідь: b
Група результатів 1 (ГР1) "Працює з інформацією, даними, моделями" — питання №: 3, 7, 13, 15, 17, 22, 28
Група результатів 2 (ГР2) "Створює інформаційні продукти" — питання №: 2, 10, 11, 16, 19, 21, 23, 25
Група результатів 3 (ГР3) "Працює в цифровому середовищі" — питання №: 1, 6, 8, 9, 18, 26, 27
Група результатів 4 (ГР4) "Безпечно та відповідально працює з інформаційними технологіями" — питання №: 4, 5, 12, 14, 20, 24, 29, 30