Поділіться своєю думкою про онлайн уроки інформатики. Пройдіть анонімне опитування на головній сторінці сайту
Доброго дня, учні! Сьогодні на уроці ми розглянемо одну з важливих тем програмування — розгалуження, а також навчимося створювати проєкти з розгалуженнями. Ви дізнаєтесь, як програма може виконувати різні дії залежно від умов. Це дуже важливий інструмент для будь-якого програміста, тому що без розгалужень було б неможливо керувати поведінкою програм, реагувати на певні події або вводити логічні рішення.
Актуальність і застосування у житті:
Розгалуження широко застосовуються у повсякденних життєвих ситуаціях і задачах. Кожного разу, коли ви приймаєте рішення, яке залежить від певної умови, ви використовуєте розгалуження в реальному житті. Наприклад, якщо йде дощ, ви берете з собою парасольку, а якщо не йде — не берете. Програмування не відрізняється: якщо певна умова в коді істинна, виконується один набір інструкцій, а якщо ні — інший.
У повсякденних комп’ютерних програмах розгалуження допомагають вирішувати безліч завдань. Наприклад, в інтернет-магазинах вони дозволяють обробляти різні варіанти оплати, в іграх — змінювати події залежно від рішень гравця, в банківських системах — перевіряти баланс рахунку і вирішувати, чи дозволяти транзакцію.
Тож, як ви бачите, розуміння концепції розгалужень є не лише важливим у програмуванні, але й корисним для прийняття рішень у реальному житті.
Основні теоретичні відомості:
Розгалуження — це структура в програмуванні, що дозволяє програмі виконувати різні дії в залежності від умови. Розгалуження використовують для того, щоб програма могла реагувати на певні події чи дані. Основна ідея полягає в тому, щоб створити вибір: якщо умова виконується — одні дії, якщо ні — інші.
Розглянемо три основні типи операторів розгалуження, які використовуються в багатьох мовах програмування, зокрема в Python і Lazarus:
if — перевіряє умову та виконує певний блок коду, якщо умова є істинною.
if-else — перевіряє умову і виконує одну дію, якщо умова є істинною, а іншу — якщо хибною.
if-elif-else — дозволяє перевірити кілька умов і вибрати серед них ту, яка відповідає дійсності.
Ось простий приклад програми на мові Python з використанням розгалуження:
якщо користувачеві менше 18 років, програма виведе "Ви ще неповнолітні". Якщо вік від 18 до 59 років — "Ви доросла людина", а якщо більше 60 років — "Ви пенсіонер".
python
Копіювати код
age = int(input("Введіть ваш вік: "))
if age < 18:
print("Ви ще неповнолітні.")
elif age >= 18 and age < 60:
print("Ви доросла людина.")
else:
print("Ви пенсіонер.")
Тут ми бачимо приклад розгалуження: якщо користувачеві менше 18 років, програма виведе "Ви ще неповнолітні". Якщо вік від 18 до 59 років — "Ви доросла людина", а якщо більше 60 років — "Ви пенсіонер".
Проєкт "Мобілізація 2024.Виїзд за кордон" в пайтоні
age = int(input("Введіть ваш вік: "))
if age < 18 or age>= 60:
print("Ви не військовозобов'язаний, вас випускають за кордон")
elif age >= 18 and age < 25:
print("Ви призовник")
else:
print("Ви військовозобов'язаний вас не випускають за кордон")
Алгоритм у Lazarus:
Відкриваємо Lazarus і створюємо новий проєкт.
У коді на подію натискання кнопки прописуємо код для перевірки числа.
Запускаємо програму.
У середовищі Lazarus для роботи з розгалуженнями ми можемо використовувати подібну логіку. Наприклад:
pascal
Копіювати код
var
age: integer;
begin
age := StrToInt(InputBox('Введіть вік', 'Вік', ''));
if age < 18 then
ShowMessage('Ви ще неповнолітні.')
else if (age >= 18) and (age < 60) then
ShowMessage('Ви доросла людина.')
else
ShowMessage('Ви пенсіонер.');
end;
Тут, як і в прикладі з Python, програма виводить різні повідомлення залежно від віку користувача.
Лінійні проєкти — це такі програми, де всі інструкції виконуються послідовно, одна за одною. Наприклад, програма, яка виконує обчислення без перевірки умов:
python
Копіювати код
a = 5
b = 10
c = a + b
print(c) # Виведе: 15
Розгалужені проєкти — це програми, в яких залежно від введених даних або певних умов виконується різний код. Це дає змогу зробити програму більш динамічною та універсальною. Розглянемо приклад розгалуженого проєкту:
python
Копіювати код
number = int(input("Введіть число: "))
if number > 0:
print("Число додатне.")
elif number < 0:
print("Число від'ємне.")
else:
print("Це нуль.")
У цьому прикладі програма перевіряє, чи є введене число додатним, від'ємним або нулем, і виконує відповідний блок коду.
Прийняття рішень: Програмісти використовують розгалуження для того, щоб програми приймали рішення на основі введених даних або певних умов. Наприклад, банківська система може перевіряти, чи є достатньо грошей на рахунку перед тим, як дозволити транзакцію.
Ігри: В ігрових програмах розгалуження використовують для зміни поведінки персонажів або реакцій гри на дії гравця. Наприклад, якщо гравець здобуває певний предмет, програма може відкрити новий рівень.
Веброзробка: У вебзастосунках розгалуження часто використовують для перевірки прав користувача або обробки різних типів запитів на сервері. Наприклад, якщо користувач вводить неправильний пароль, програма може попросити його спробувати знову.
Системи безпеки: У системах безпеки використовують розгалуження для прийняття рішень щодо дій в різних ситуаціях, наприклад, увімкнення тривоги, якщо датчики зафіксували рух.
Розгалуження — це одна з найважливіших концепцій у програмуванні, яка дозволяє програмам приймати рішення залежно від умов. Без розгалужень програми не могли б бути такими динамічними й універсальними. Ми використовуємо їх у багатьох галузях життя, від банківських систем до ігор і вебдодатків.
На сьогоднішньому уроці ви дізнаєтеся більше про створення проєктів з розгалуженнями на прикладах мов Python та Pascal (Lazarus), а також спробуєте самостійно реалізувати кілька таких програм. Розуміння цього матеріалу допоможе вам не лише у навчанні, але й у майбутній роботі над власними програмами.
Тож, давайте розпочнемо!
Задача 1: Визначити, чи є число парним або непарним
Умова: Користувач вводить число. Програма повинна вивести, чи є це число парним або непарним.
Алгоритм:
Запросити користувача ввести число.
Перевірити, чи ділиться число на 2 без залишку.
Якщо так, вивести, що число парне; якщо ні, вивести, що число непарне.
Розв'язок у Python:
python
Копіювати код
# Запитуємо число
number = int(input("Введіть число: "))
# Перевіряємо, чи є число парним
if number % 2 == 0:
print("Число парне.")
else:
print("Число непарне.")
Розв'язок у Lazarus:
pascal
Копіювати код
var
number: integer;
begin
number := StrToInt(InputBox('Введіть число', 'Число', ''));
if number mod 2 = 0 then
ShowMessage('Число парне.')
else
ShowMessage('Число непарне.');
end;
Алгоритм у Lazarus:
Відкриваємо Lazarus і створюємо новий проєкт і зберігаємо в окремій паці .
Додаємо кнопку і поле для введення (TEdit).
У коді на подію натискання кнопки прописуємо код для перевірки числа.
Запускаємо програму.
Задача 2: Визначити, чи є користувач повнолітнім
Умова: Користувач вводить свій вік. Програма повинна вивести повідомлення, чи є він повнолітнім (18 років і більше).
Алгоритм:
Запросити користувача ввести вік.
Перевірити, чи дорівнює або більше вік 18.
Якщо так, вивести, що користувач повнолітній; якщо ні, вивести, що неповнолітній.
Розв'язок у Python:
python
Копіювати код
# Запитуємо вік
age = int(input("Введіть ваш вік: "))
# Перевіряємо, чи є користувач повнолітнім
if age >= 18:
print("Ви повнолітні.")
else:
print("Ви неповнолітні.")
Розв'язок у Lazarus:
pascal
Копіювати код
var
age: integer;
begin
age := StrToInt(InputBox('Введіть ваш вік', 'Вік', ''));
if age >= 18 then
ShowMessage('Ви повнолітні.')
else
ShowMessage('Ви неповнолітні.');
end;
Алгоритм у Lazarus:
Створюємо новий проєкт.
Додаємо компонент для введення віку (TEdit) і кнопку (TButton).
Додаємо код для перевірки віку на подію натискання кнопки.
Виводимо результат через ShowMessage.
Задача 3: Визначити найбільше з трьох чисел
Умова: Користувач вводить три числа. Програма повинна визначити і вивести найбільше з них.
Алгоритм:
Запросити користувача ввести три числа.
Використати розгалуження для перевірки, яке з чисел найбільше.
Вивести найбільше число.
Розв'язок у Python:
python
Копіювати код
# Запитуємо три числа
a = int(input("Введіть перше число: "))
b = int(input("Введіть друге число: "))
c = int(input("Введіть третє число: "))
# Визначаємо найбільше число
if a > b and a > c:
print("Найбільше число:", a)
elif b > a and b > c:
print("Найбільше число:", b)
else:
print("Найбільше число:", c)
Розв'язок у Lazarus:
pascal
Копіювати код
var
a, b, c: integer;
begin
a := StrToInt(InputBox('Введіть перше число', 'Число', ''));
b := StrToInt(InputBox('Введіть друге число', 'Число', ''));
c := StrToInt(InputBox('Введіть третє число', 'Число', ''));
if (a > b) and (a > c) then
ShowMessage('Найбільше число: ' + IntToStr(a))
else if (b > a) and (b > c) then
ShowMessage('Найбільше число: ' + IntToStr(b))
else
ShowMessage('Найбільше число: ' + IntToStr(c));
end;
Алгоритм у Lazarus:
Створюємо новий проєкт.
Додаємо три поля для введення чисел (TEdit) і кнопку (TButton).
Додаємо код для визначення найбільшого числа на подію натискання кнопки.
Виводимо результат через ShowMessage.
Ці три задачі демонструють різні способи використання розгалужень для перевірки умов і прийняття рішень у Python та Lazarus. Вони допоможуть учням зрозуміти, як розгалуження може використовуватися для побудови логічних структур в програмах.
У підручнику стор. 78 р.2.3
Що таке розгалуження в програмуванні?
a) Операція над числами
b) Математичний вираз
c) Оператор вибору напрямку виконання коду
d) Тип даних
Відповідь: c
Група 1
Як в Python записується умова для перевірки рівності двох значень?
a) a = b
b) a == b
c) a != b
d) a >= b
Відповідь: b
Група 3
Що таке оператор if?
a) Команда для введення даних
b) Оператор циклу
c) Оператор умовного виконання коду
d) Команда для виведення даних
Відповідь: c
Група 1
Який оператор використовується для альтернативної умови в Python?
a) else
b) elif
c) both
d) try
Відповідь: b
Група 1
Що станеться, якщо умова в if неправдива?
a) Виконається код у блоці if
b) Код не буде виконано
c) Виконається код у блоці else, якщо він є
d) Програма зупиниться
Відповідь: c
Група 1
Як називається функція введення даних у Python?
a) print()
b) input()
c) enter()
d) scan()
Відповідь: b
Група 3
Який тип даних повертає функція input() у Python?
a) int
b) float
c) str
d) bool
Відповідь: c
Група 1
У якій частині коду Lazarus можна перевіряти умови?
a) У формі
b) У процедурі події
c) У самому об'єкті
d) У бібліотеках
Відповідь: b
Група 3
Як виглядає оператор else у Lazarus?
a) IF condition THEN action ELSE another_action;
b) IF condition DO action ELSE;
c) IF condition GOTO action ELSE another_action;
d) CASE action ELSE;
Відповідь: a
Група 1
Що станеться, якщо жодна з умов в операторі if не виконується?
a) Програма зупиняється
b) Виконається блок else, якщо він є
c) Нічого не відбудеться
d) Програма видасть помилку
Відповідь: b
Група 1
Що таке вкладені умови (nested conditions)?
a) Оператор вибору
b) Умови, які містяться в середині інших умов
c) Цикл у програмуванні
d) Умови, які знаходяться поза циклом
Відповідь: b
Група 1
Що робить оператор elif в Python?
a) Перевіряє другу умову, якщо перша невірна
b) Завершує програму
c) Оголошує змінну
d) Викликає функцію
Відповідь: a
Група 1
Що таке блок else в Python?
a) Оператор введення
b) Команда для виведення даних
c) Частина оператора розгалуження, що виконується при невірній умові
d) Оператор завершення циклу
Відповідь: c
Група 1
Який синтаксис умовного оператора в Lazarus?
a) if condition: action
b) IF condition THEN action;
c) IF condition END
d) IF condition GOTO action;
Відповідь: b
Група 3
Як змінити тип введеного значення з текстового на ціле у Python?
a) int()
b) float()
c) str()
d) bool()
Відповідь: a
Група 3
Як у Lazarus визначити залишок від ділення?
a) a div b
b) a mod b
c) a % b
d) a // b
Відповідь: b
Група 3
Що є результатом операції a % 2 у Python для непарного числа?
a) 2
b) 0
c) 1
d) -1
Відповідь: c
Група 1
Який результат буде, якщо умовний оператор у Python містить логічну помилку?
a) Програма виконається без помилок
b) Програма видасть помилку під час виконання
c) Програма завершиться раніше
d) Програма продовжить працювати
Відповідь: b
Група 4
Що станеться, якщо оператор умови написаний неправильно у Lazarus?
a) Програма не запуститься
b) Виконається неправильний код
c) Програма завершиться помилкою
d) Програма продовжить виконуватися
Відповідь: a
Група 4
Чому важливо тестувати програми з умовами на правильність?
a) Щоб прискорити роботу програми
b) Для запобігання логічним помилкам
c) Для зменшення коду
d) Для збільшення пам'яті
Відповідь: b
Група 4
Що відбувається, коли умова if виконується неправильно?
a) Код блокується
b) Викликається функція помилки
c) Виводиться попередження
d) Програма припиняється
Відповідь: b
Група 4
Як захиститися від помилок під час роботи з умовними операторами?
a) Використовувати перевірки типу даних
b) Використовувати вкладені умови
c) Використовувати функції
d) Виконувати тестування та дебаг
Відповідь: d
Група 4
Яким є стандартний синтаксис оператора if у Lazarus?
a) IF умова THEN дія ELSE інша дія;
b) if умова then дія
c) IF умова THEN дія; END.
d) IF умова THEN END;
Відповідь: a
Група 1
Чому корисно використовувати оператор elif?
a) Для скорочення коду при наявності кількох умов
b) Для виведення даних
c) Для введення даних
d) Для керування файлами
Відповідь: a
Група 3
Чому потрібно обирати правильний тип даних для умов?
a) Для економії пам'яті
b) Для запобігання помилок
c) Для скорочення часу роботи
d) Для більшої читабельності коду
Відповідь: b
Група 4
Як називається процес перевірки наявності помилок у коді?
a) Дебагінг
b) Кодування
c) Проєктування
d) Виконання
Відповідь: a
Група 4
Який метод дозволяє протестувати всі можливі умови виконання коду?
a) Написання умов без else
b) Використання вкладених умов
c) Використання коду з помилками
d) Тестування та дебаг
Відповідь: d
Група 4
Що означає "відповідальне використання інформаційних технологій"?
a) Використання лише дозволених програм
b) Безпека та етичність в онлайн-середовищі
c) Створення нових програм
d) Придбання програмного забезпечення
Відповідь: b
Група 4
Яка роль розгалужень у програмуванні?
a) Вони дозволяють створювати цикли
b) Вони дозволяють програмі виконувати різні дії в залежності від умов
c) Вони допомагають вводити дані
d) Вони забезпечують швидкість роботи програми
Відповідь: b
Група 2
Що таке розгалуження з використанням вкладених операторів?
a) Оператор, що виконує повторення дій
b) Оператор, що дозволяє виконати кілька перевірок умов
c) Оператор, що забезпечує введення даних
d) Оператор, що змінює тип даних
Відповідь: b
Група 2
Група 1: Працює з інформацією, даними, моделями
Підходять питання: 1, 3, 4, 5, 7, 9, 12, 13, 17, 23.
Група 2: Створює інформаційні продукти
Підходять питання: 29, 30.
Група 3: Працює в цифровому середовищі
Підходять питання: 2, 6, 8, 14, 15, 16, 24.
Група 4: Безпечно та відповідально використовує інформаційні технології
Підходять питання: 18, 19, 20, 21, 22, 25, 26, 27, 28.
Алгоритм:
Користувач вводить число через поле введення TEdit1.
Натискає кнопку TButton1 для перевірки, чи є число парним чи непарним.
Програма виводить результат у TLabel1.
python
Копіювати код
# Програма для перевірки парності числа
number = int(input("Введіть число: "))
if number % 2 == 0:
print("Число парне")
else:
print("Число непарне")
Створюємо новий проект в Lazarus.
Додаємо на форму:
TEdit1 для введення числа.
TButton1 для виконання перевірки.
TLabel1 для виведення результату.
Код у Lazarus:
pascal
Копіювати код
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
procedure TForm1.Button1Click(Sender: TObject);
var
number: Integer;
begin
number := StrToInt(Edit1.Text); // Введення числа
if number mod 2 = 0 then
Label1.Caption := 'Число парне'
else
Label1.Caption := 'Число непарне';
end;
У Python використовується операція ділення за модулем (%) для перевірки парності числа.
У Lazarus так само використовується операція mod для перевірки залишку при діленні на 2.
Алгоритм:
Користувач вводить число через поле введення TEdit1.
Натискає кнопку TButton1 для перевірки, чи є число додатним або від'ємним.
Програма виводить результат у TLabel1.
python
Копіювати код
# Програма для визначення, чи є число додатним чи від'ємним
number = int(input("Введіть число: "))
if number > 0:
print("Число додатне")
elif number < 0:
print("Число від'ємне")
else:
print("Число нуль")
Створюємо новий проект в Lazarus.
Додаємо на форму:
TEdit1 для введення числа.
TButton1 для виконання перевірки.
TLabel1 для виведення результату.
Код у Lazarus:
pascal
Копіювати код
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
procedure TForm1.Button1Click(Sender: TObject);
var
number: Integer;
begin
number := StrToInt(Edit1.Text); // Введення числа
if number > 0 then
Label1.Caption := 'Число додатне'
else if number < 0 then
Label1.Caption := 'Число від''ємне'
else
Label1.Caption := 'Число нуль';
end;
У Python використовується кілька умов (if, elif, else) для визначення додатне, від'ємне чи нульове число.
У Lazarus аналогічно використовуються умови if, else if, і else.
Алгоритм:
Користувач вводить число через поле введення TEdit1.
Натискає кнопку TButton1 для перевірки, чи число кратне 5.
Програма виводить результат у TLabel1.
python
Копіювати код
# Програма для перевірки, чи число кратне 5
number = int(input("Введіть число: "))
if number % 5 == 0:
print("Число кратне 5")
else:
print("Число не кратне 5")
Створюємо новий проект в Lazarus.
Додаємо на форму:
TEdit1 для введення числа.
TButton1 для виконання перевірки.
TLabel1 для виведення результату.
Код у Lazarus:
pascal
Копіювати код
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
procedure TForm1.Button1Click(Sender: TObject);
var
number: Integer;
begin
number := StrToInt(Edit1.Text); // Введення числа
if number mod 5 = 0 then
Label1.Caption := 'Число кратне 5'
else
Label1.Caption := 'Число не кратне 5';
end;
У Python використовуємо оператор % для перевірки на кратність 5.
У Lazarus застосовуємо оператор mod для перевірки на кратність 5.
У Python використовуються стандартні умови розгалуження (if, elif, else) для вирішення задач.
У Lazarus використовуються аналогічні конструкції умов (if, else if, else) разом з відповідними компонентами форми для вводу та виводу даних.
Ці спрощені приклади дають зрозуміти основи роботи з розгалуженнями, дозволяючи працювати з різними типами перевірок.