Завершення 2-го семестру передбачає оцінювання за групою результатів ГР1 — «Проведення досліджень та опрацювання даних». У розрізі програмування це означає здатність учня не просто написати код, а проаналізувати вхідні дані, побудувати логічну модель та отримати обґрунтований результат.
У цій статті ми розберемо створення комплексного алгоритму на прикладі проєкту «Smart Travel — Розумний помічник подорожей».
Що таке комплексний алгоритм?
Комплексний алгоритм — це послідовність дій, що включає декілька структур керування одночасно:
• Розгалуження (вкладені умови if-elif-else).
• Цикли (для повторюваних дій або перебору даних).
• Опрацювання винятків (try-except) для захисту програми від некоректного введення.
• Перетворення типів (з тексту у числа для математичних розрахунків).
Технічне завдання проєкту «Smart Travel»
Мета дослідження: Створити програму, яка на основі введеного бюджету та тривалості подорожі проводить аналіз та рекомендує категорію готелю та додаткові активності.
Етапи опрацювання даних (ГР1):
1. Пошук та збір: Користувач вводить суму грошей та кількість днів.
2. Аналіз: Програма розраховує добовий бюджет.
3. Висновки: На основі логічних операторів (and, or) видається персоналізована рекомендація.
Реалізація проєкту на Python
Нижче наведено приклад коду, який відповідає критеріям Високого рівня оцінювання ГР1.
import tkinter as tk
from tkinter import messagebox
def process_trip_data():
try:
# 1. Збір даних (Input)
total_budget = float(entry_budget.get())
trip_days = int(entry_days.get())
# 2. Валідація та дослідження (Research)
if total_budget <= 0 or trip_days <= 0:
messagebox.showwarning("Помилка", "Введіть додатні числа!")
return
daily_limit = total_budget / trip_days
# 3. Комплексний алгоритм прийняття рішень (Logic)
if daily_limit >= 150:
category = "Преміум-відпустка (5* готелі)"
suggestion = "Можна замовити VIP-трансфер."
elif daily_limit >= 50:
category = "Стандарт-тур (3-4* готелі)"
suggestion = "Вистачить на групові екскурсії."
else:
category = "Економ-подорож (хостели)"
suggestion = "Рекомендуємо безкоштовні музеї."
# Додаткова комплексна умова
if total_budget > 1000 and trip_days <= 3:
category = "Luxury Weekend"
suggestion = "Найкращий час для польоту на гелікоптері!"
# 4. Виведення результатів опрацювання даних (Output)
messagebox.showinfo("Результат дослідження",
f"Ваш ліміт на день: {daily_limit:.2f}$\n"
f"Категорія: {category}\n"
f"Порада: {suggestion}")
except ValueError:
messagebox.showerror("Критична помилка", "Будь ласка, введіть числові значення!")
# Графічний інтерфейс
root = tk.Tk()
root.title("Аналізатор подорожей ГР1")
root.geometry("300x250")
tk.Label(root, text="Ваш загальний бюджет ($):").pack(pady=5)
entry_budget = tk.Entry(root)
entry_budget.pack()
tk.Label(root, text="Кількість днів подорожі:").pack(pady=5)
entry_days = tk.Entry(root)
entry_days.pack()
tk.Button(root, text="Опрацювати дані", command=process_trip_data, bg="#2ecc71").pack(pady=20)
root.mainloop()
Критерії оцінювання за Групою Результатів 1 (ГР1)
При перевірці цієї практичної роботи вчитель звертає увагу на такі аспекти:
| Рівень | Опис результату |
| Високий | Учень використовує try-except, будує складні умови з and/or, правильно перетворює типи даних та виводить розгорнутий висновок. |
| Достатній | Алгоритм працює правильно, але відсутня перевірка на помилки (валідація). Висновки прості. |
| Середній | Програма виконує лише лінійні обчислення без глибокого аналізу умов. |
| Низький | Створено лише графічну оболонку без логічної частини опрацювання даних. |
Висновок
Розробка комплексних алгоритмів — це фінальний етап вивчення основ програмування у 2-му семестрі. Вміння структурувати дані та передбачати поведінку програми за різних умов є ключовим для отримання високого балу за ГР1.
Успіхів у виконанні підсумкової роботи!