Поділіться своєю думкою про онлайн уроки інформатики. Пройдіть анонімне опитування на головній сторінці сайту
# Користувач вводить погоду
погода = input("Яка зараз погода (дощ або сонце)? ")
# Зовнішній блок умови
if погода:
print("Ідемо на вулицю.")
# Вкладений блок умови
if погода == "сонце":
print("Взяти зонтик, буде ясно.")
elif погода == "дощ":
print("Взяти парасольку, буде дощ.")
else:
print("Без погодних умов не визначимо, що робити.")
Інструкція та приклад на мові Lazarus для вкладених розгалужень:
Інструкція:
Створення проекту:
Відкрийте середовище розробки Lazarus.
Створіть новий проект або відкрийте існуючий.
Додавання вікна:
Додайте компонент "TForm" на головну форму проекту.
Додавання елементів управління:
Додайте елементи управління (наприклад, кнопки та поля вводу), які будуть використовуватися для введення умов.
Написання коду:
Відкрийте вкладку "Code" і напишіть код в обраних подіях, наприклад, події OnClick для кнопок.
Використовуйте оператори if, else if та else для створення вкладених розгалужень.
Приклад:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ButtonCheckWeather: TButton;
EditWeather: TEdit;
LabelResult: TLabel;
procedure ButtonCheckWeatherClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.ButtonCheckWeatherClick(Sender: TObject);
var
WeatherCondition: string;
begin
WeatherCondition := EditWeather.Text;
if WeatherCondition = 'Дощить' then
LabelResult.Caption := 'Візьміть парасольку!'
else if WeatherCondition = 'Сонячно' then
LabelResult.Caption := 'Насолоджуйтесь погодою!'
else if WeatherCondition = 'Сніжно' then
LabelResult.Caption := 'Одягніться тепліше!'
else
LabelResult.Caption := 'Невідома погода. Перевірте чи правильно введено погоду.';
end;
end.
У цьому прикладі ми створюємо простий додаток для перевірки погоди. Користувач вводить умови погоди у поле вводу (EditWeather), натискає кнопку (ButtonCheckWeather), і програма виводить пораду залежно від умови.
Завдання зі с.163 Морзе 2016. Підручник прикріплено https://cutt.ly/sNBGs4L
ДЗ. Переглянути відео за посиланням. https://www.youtube.com/watch?v=ON3EDzWzfik https://www.youtube.com/watch?v=l7h-qBHBAmk
Тест на тему "Вкладені розгалуження":
Що таке вкладене розгалуження в програмуванні?
a) Такий тип розгалуження не існує.
b) Розгалуження всередині іншого розгалуження.
c) Розгалуження без умов.
Правильна відповідь: b) Розгалуження всередині іншого розгалуження.
Яким чином вкладені розгалуження допомагають в програмуванні?
a) Вони завжди роблять код складнішим.
b) Вони дозволяють визначити різні сценарії виконання коду.
c) Вони не мають жодного впливу на логіку програми.
Правильна відповідь: b) Вони дозволяють визначити різні сценарії виконання коду.
Що означає ключове слово elif в Python?
a) Це скорочення від "елегантний інструкційний лінгвіст".
b) Воно використовується для вказівки нового вкладеного розгалуження.
c) Воно поєднує умови в одному розгалуженні.
Правильна відповідь: c) Воно поєднує умови в одному розгалуженні.
Як можна уникнути зайвого вкладеного розгалуження?
a) Завжди використовуйте if-else без elif.
b) Зменште кількість умов і перевірок.
c) Використовуйте тільки вкладені розгалуження.
Правильна відповідь: b) Зменште кількість умов і перевірок.
Що робить внутрішнє розгалуження умови вкладеним?
a) Зробить код більш зрозумілим.
b) Зробить код більш складним.
c) Не матиме впливу на код.
Правильна відповідь: b) Зробить код більш складним.
Які переваги вкладених розгалужень?
a) Зроблють код завжди простим і зрозумілим.
b) Дозволяють враховувати багато різних умов.
c) Не мають переваг.
Правильна відповідь: b) Дозволяють враховувати багато різних умов.
Як правильно реалізувати вкладене розгалуження в мові програмування Python?
a) За допомогою switch-case конструкції.
b) Використовуючи тільки if-else конструкції.
c) Використовуючи if-elif-else конструкції.
Правильна відповідь: c) Використовуючи if-elif-else конструкції.
Яким чином можна полегшити розуміння вкладеного розгалуження?
a) Додавання якнайбільше вкладених умов.
b) Дотримання принципу "одна функція - одна умова".
c) Використання тільки одного вкладеного розгалуження.
Правильна відповідь: b) Дотримання принципу "одна функція - одна умова".
Що станеться, якщо жодна з умов вкладеного розгалуження не виконається?
a) Програма видасть помилку.
b) Виконається код блоку else.
c) Програма завершиться без дій.
Правильна відповідь: c) Програма завершиться без дій.
Коли краще використовувати вкладені розгалуження?
a) Тільки якщо умов дуже багато.
b) Тільки якщо умови прості.
c) Залежить від складності умов та логіки програми.
Правильна відповідь: c) Залежить від складності умов та логіки програми.
Практична робота
Опис
Напишемо програму, яка оцінює успішність студента на основі його середнього балу. Якщо середній бал більше ніж 90 — "Відмінно", між 75 і 90 — "Добре", між 60 і 75 — "Задовільно", менше 60 — "Незадовільно".
Розв'язок на Python
python
average_grade = float(input("Введіть середній бал студента: "))
if average_grade > 90:
print("Оцінка: Відмінно")
else:
if average_grade >= 75:
print("Оцінка: Добре")
else:
if average_grade >= 60:
print("Оцінка: Задовільно")
else:
print("Оцінка: Незадовільно")
Розв'язок на Lazarus
Створення проекту:
Відкрийте Lazarus і створіть новий проект (File → New → Application).
Додайте елементи на форму: TEdit (для вводу середнього балу), TButton (для обчислення оцінки), TLabel (для відображення результату).
Налаштування елементів форми:
TEdit: Name = EditGrade
TButton: Name = ButtonEvaluate, Caption = "Оцінити"
TLabel: Name = LabelResult, Caption = ""
Обробка подій:
Двічі клацніть на кнопку, щоб створити обробник події OnClick.
Код обробника події:
pascal
procedure TForm1.ButtonEvaluateClick(Sender: TObject);
var
averageGrade: Double;
begin
averageGrade := StrToFloat(EditGrade.Text);
if averageGrade > 90 then
LabelResult.Caption := 'Оцінка: Відмінно'
else if averageGrade >= 75 then
LabelResult.Caption := 'Оцінка: Добре'
else if averageGrade >= 60 then
LabelResult.Caption := 'Оцінка: Задовільно'
else
LabelResult.Caption := 'Оцінка: Незадовільно';
end;
Опис
Програма запитує номер місяця (1-12) і виводить, до якого сезону належить цей місяць.
Розв'язок на Python
python
month = int(input("Введіть номер місяця (1-12): "))
if month < 1 or month > 12:
print("Некоректний номер місяця!")
else:
if month in [12, 1, 2]:
print("Сезон: Зима")
elif month in [3, 4, 5]:
print("Сезон: Весна")
elif month in [6, 7, 8]:
print("Сезон: Літо")
else:
print("Сезон: Осінь")
Розв'язок на Lazarus
Створення проекту:
Створіть новий проект.
Додайте TEdit, TButton, TLabel.
Налаштування елементів:
TEdit: Name = EditMonth
TButton: Name = ButtonDetermineSeason, Caption = "Визначити сезон"
TLabel: Name = LabelSeason, Caption = ""
Обробка подій:
Двічі клацніть на кнопку, щоб створити обробник події OnClick.
Код обробника події:
pascal
procedure TForm1.ButtonDetermineSeasonClick(Sender: TObject);
var
month: Integer;
begin
month := StrToInt(EditMonth.Text);
if (month < 1) or (month > 12) then
LabelSeason.Caption := 'Некоректний номер місяця!'
else begin
if month in [12, 1, 2] then
LabelSeason.Caption := 'Сезон: Зима'
else if month in [3, 4, 5] then
LabelSeason.Caption := 'Сезон: Весна'
else if month in [6, 7, 8] then
LabelSeason.Caption := 'Сезон: Літо'
else
LabelSeason.Caption := 'Сезон: Осінь';
end;
end;
Опис
Програма перевіряє, чи є введене число парним чи непарним, і виводить повідомлення, чи воно є негативним, нулем або додатним.
Розв'язок на Python
python
number = int(input("Введіть число: "))
if number % 2 == 0:
parity = "парне"
else:
parity = "непарне"
if number < 0:
range_status = "негативне"
elif number == 0:
range_status = "нуль"
else:
range_status = "додатне"
print(f"Число {number} є {parity} і {range_status}.")
Розв'язок на Lazarus
Створення проекту:
Створіть новий проект.
Додайте TEdit, TButton, TLabel.
Налаштування елементів:
TEdit: Name = EditNumber
TButton: Name = ButtonCheckNumber, Caption = "Перевірити число"
TLabel: Name = LabelResult, Caption = ""
Обробка подій:
Двічі клацніть на кнопку, щоб створити обробник події OnClick.
Код обробника події:
pascal
procedure TForm1.ButtonCheckNumberClick(Sender: TObject);
var
number: Integer;
parity, rangeStatus: String;
begin
number := StrToInt(EditNumber.Text);
if number mod 2 = 0 then
parity := 'парне'
else
parity := 'непарне';
if number < 0 then
rangeStatus := 'негативне'
else if number = 0 then
rangeStatus := 'нуль'
else
rangeStatus := 'додатне';
LabelResult.Caption := Format('Число %d є %s і %s.', [number, parity, rangeStatus]);
end;
Ці приклади демонструють, як працювати з вкладеними розгалуженнями в Python і Lazarus. Якщо у тебе є питання або знадобиться більше інформації, не соромся запитувати!