📝 Практичне завдання: "Аналіз температури за тиждень"
Умова: Ти — метеоролог-початківець. У тебе є дані про температуру повітря вдень протягом одного тижня (7 днів). Тобі потрібно написати програму на Python, яка:
Знаходить найвищу температуру тижня (максимум).
Знаходить найнижчу температуру тижня (мінімум).
Виводить ці значення на екран.
💡 Як працює алгоритм (логіка)
Уяви, що перед тобою лежить ряд карток із числами сорочкою вгору.
Ми беремо першу картку і кажемо: «Припустимо, це і є наше найбільше число».
Відкриваємо наступну. Якщо число на ній більше за наше «найбільше», ми забуваємо старе і запам’ятовуємо нове.
Повторюємо це до кінця ряду.
✅ Розв’язок завдання
Ось код, який можна скопіювати та вставити прямо у Google Colab:
Варіант 1. «Цифровий слід: Що про мене знає Google?» (Практичне)
Мета: Дослідити, яку інформацію збирають корпорації та як її обмежити.
Завдання: 1. Скористатися сервісом Google Takeout (або розділом "Мої дії") та проаналізувати свою історію геолокації за останній місяць.
2. Подивитися, які рекламні інтереси приписав учню алгоритм (Ads Settings).
3. Скласти «карту ризиків»: що може дізнатися про тебе зловмисник, маючи доступ до цих даних.
Результат: Чек-лист «Як почистити свій цифровий слід».
Варіант 2. «Штучний інтелект vs Реальність: Детектор фейків» (Трендове)
Мета: Навчитися розрізняти згенерований контент від справжнього.
Завдання: 1. Використати нейромережі для створення реалістичного фейку про якийсь закон фізики
2. Провести експеримент: показати зображення іншим учням/вчителям і перевірити, чи повірять вони.
3. Розробити алгоритм «5 ознак Deepfake», на які варто звертати увагу.
Результат: Презентація з прикладами «ідеальної брехні» та методами її викриття.
Варіант 3. «Анатомія фішингу: Як нас ловлять на гачок» (Соціальне)
Мета: Дослідити психологічні прийоми маніпуляції в мережі.
Завдання: 1. Знайти (або змоделювати) приклади фішингових повідомлень у Telegram чи Instagram (наприклад, про "виплати допомоги" або "голосування у конкурсі").
2. Проаналізувати, на які «тригери» тиснуть шахраї: терміновість, страх, жадоба чи цікавість.
3. Створити інтерактивну гру-квіз (наприклад, на Wordwall чи Kahoot) «Шахрай чи Друг?».
Результат: Короткий відеоролик (TikTok/Reels) з розбором реальної схеми шахрайства.
Варіант 4. «Мій пароль — фортеця чи картковий будинок?» (Технічне)
Мета: Наочно продемонструвати швидкість зламу простих паролів.
Завдання: 1. Використати онлайн-сервіси (наприклад, How Secure Is My Password) для перевірки різних комбінацій.
2. Провести опитування серед однокласників (анонімно!): як часто вони змінюють паролі та чи використовують 2FA (двофакторну автентифікацію).
3. Дослідити, як працюють менеджери паролів.
Результат: Порівняльна таблиця: скільки часу потрібно на брутфорс (злам) пароля з 6 та 12 символів.
Покроковий план виконання для учнів:
Етап
Що робити
1. Гіпотеза
Припустити, наприклад, що більшість людей не відрізнять фейк від правди.
2. Збір даних
Опитування, скриншоти, тестування сервісів.
3. Аналіз
Чому результати саме такі? Які головні вразливості?
4. Висновок
Конкретна порада: як стати безпечнішим у мережі вже сьогодні.
Уяви, що тобі потрібно записати оцінки 30 учнів класу. Можна створити 30 окремих змінних (a1, a2, a3...), але це незручно. Набагато простіше використати масив.
Масив — це іменована група однотипних елементів, що зберігаються в пам'яті комп'ютера один за одним.
Як це працює (на простих прикладах):
Масив як потяг: Кожен вагон — це окремий елемент. У вагоні лежить якесь значення (число, текст), а на самому вагоні написаний його номер.
Масив як готель: Назва готелю — це назва масиву. Номери кімнат — це індекси, а люди, що там живуть — це значення.
Основні характеристики:
Ім’я: У всього масиву одна спільна назва (наприклад, marks або names).
Індекс (номер): Це порядковий номер елемента в масиві. Важливо: у більшості мов програмування (Python, C++, Java) нумерація починається з 0, а не з 1.
Значення: Те, що саме зберігається в конкретній «комірці» масиву.
Зміна значень елементів масиву — це база програмування. Це як перекладати речі в коробках або змінювати цінники в магазині. Оскільки ти просив на «ти», давай розберемо три прості, але реальні задачі, які допоможуть закріпити цю тему.
Ми будемо використовувати мову Python, бо вона найпопулярніша у 9 класі, але логіка однакова для всіх мов.
Задача 1. Акція в магазині (Зменшення значень)
Умова: Маємо масив цін на товари. Сьогодні чорна п'ятниця, і на всі товари діє знижка 50%. Потрібно оновити ціни в масиві.
Код:
Python
prices = [100, 250, 40, 500, 120]
# Проходимо по кожному індексу масиву
for i in range(len(prices)):
prices[i] = prices[i] / 2 # Змінюємо значення: ділимо на 2
print("Нові ціни зі знижкою:", prices)
Задача 2. Калібрування датчика (Збільшення значень)
Умова: Термометр показує температуру в кімнаті, але він збився і показує на 2 градуси менше, ніж є насправді. Потрібно додати 2 до кожного вимірювання в масиві.
Код:
Python
temps = [18, 19, 21, 17, 20]
for i in range(len(temps)):
temps[i] = temps[i] + 2 # Збільшуємо кожен елемент на 2
print("Коректні показники температури:", temps)
Задача 3. Обнулення помилок (Заміна за умовою)
Умова: В масиві зберігаються результати тестів. Якщо значення від’ємне (це помилка системи), його треба замінити на 0.
Код:
Python
results = [85, -5, 92, -10, 78]
for i in range(len(results)):
if results[i] < 0:
results[i] = 0 # Замінюємо тільки ті значення, що менше нуля
print("Очищені результати:", results)
Що важливо запам'ятати:
Індекс (i) — це «адреса» елемента в масиві. Щоб змінити значення, ми звертаємось до нього саме через індекс: масив[i] = нове_значення.
Цикл for — ідеальний інструмент для перебору всіх елементів масиву по черзі.
Умова if — дозволяє змінювати не всі елементи, а тільки ті, що нам потрібні.
Для розв'язання обох задач нам потрібно переглянути кожен елемент масиву. Це робиться за допомогою циклу (зазвичай for). В середині циклу ми перевіряємо умову (за допомогою if).
Ключові змінні:
Для суми: створюємо змінну (наприклад, S), якій спочатку присвоюємо 0.
Для кількості: створюємо змінну-лічильник (наприклад, K), якій також спочатку присвоюємо 0.
2. Алгоритм знаходження суми
Ми «пробігаємо» масивом і, якщо елемент нам підходить, додаємо його значення до загальної скарбнички.
Логіка (псевдокод):
Надати S = 0.
Для кожного елемента A[i] у масиві:
Якщо A[i] задовольняє умову (наприклад, A[i] > 0):
Збільшити S на значення елемента: S = S + A[i].
Вивести S.
3. Алгоритм знаходження кількості
Тут нас не цікавить, наскільки велике число в елементі. Нам важливо лише те, що він "існує" і підходить під умову. Кожен такий елемент додає до лічильника одиницю.
Логіка (псевдокод):
Надати K = 0.
Для кожного елемента A[i] у масиві:
Якщо A[i] задовольняє умову:
Збільшити K на одиницю: K = K + 1.
Вивести K.
4. Практичне завдання (Python)
Умова: Маємо список оцінок учня за семестр: [8, 12, 5, 10, 11, 4, 9]. Потрібно знайти:
Суму оцінок, які вищі за 9 балів.
Кількість таких оцінок.
Розв'язок:
Python
# Наш масив (список)
grades = [8, 12, 5, 10, 11, 4, 9]
# Початкові значення
total_sum = 0
count = 0
# Цикл для перебору елементів
for x in grades:
if x > 9: # Умова: оцінка вища за 9
total_sum += x # Додаємо саме число до суми
count += 1 # Додаємо 1 до лічильника
# Вивід результатів
print("Сума оцінок (>9):", total_sum)
print("Кількість оцінок (>9):", count)
Результат роботи програми:
Сума оцінок (>9): 33 (це 12 + 10 + 11) Кількість оцінок (>9): 3
Що важливо пам'ятати:
Обнулення: Якщо ти забудеш на початку присвоїти змінним 0, програма може видати помилку або додати результат до старого значення, що залишилося в пам'яті.
Умова: Умова в if може бути будь-якою: парні числа (x % 2 == 0), від'ємні (x < 0) або числа в діапазоні.
Ось три прості практичні задачі на тему одновимірних масивів (списків у Python), які ти можеш легко скопіювати та перевірити в Google Colab.
У Python ролі масивів виконують списки (lists).
Задача 1: Обчислення суми та середньої ваги
Умова: Маємо список, що містить вагу 5 учнів. Потрібно знайти загальну вагу всієї групи та їхню середню вагу.
Python
# Створюємо масив (список) із вагою учнів
weights = [54.5, 60.2, 48.0, 72.1, 55.4]
# Знаходимо суму за допомогою вбудованої функції sum()
total_weight = sum(weights)
# Обчислюємо середнє арифметичне
average_weight = total_weight / len(weights)
print(f"Загальна вага: {total_weight} кг")
print(f"Середня вага: {average_weight:.2f} кг")
Задача 2: Пошук максимального та мінімального значення
Умова: Програма отримує дані про температуру повітря за тиждень (7 днів). Потрібно визначити найвищу та найнижчу температуру.
Python
# Масив температур за тиждень
temperatures = [12, 15, 14, 18, 20, 19, 17]
# Використовуємо функції max() та min()
max_t = max(temperatures)
min_t = min(temperatures)
print(f"Найтепліший день: {max_t}°C")
print(f"Найхолодніший день: {min_t}°C")
Задача 3: Фільтрація списку (Оцінки)
Умова: Є список оцінок учня. Потрібно створити новий список, у який потраплять лише "високі" оцінки (від 10 до 12 балів), та вивести їхню кількість.
Python
# Список оцінок
grades = [7, 10, 12, 8, 11, 6, 9, 12]
# Створюємо порожній список для високих оцінок
high_grades = []
# Проходимо циклом по масиву
for g in grades:
if g >= 10:
high_grades.append(g)
print(f"Високі оцінки: {high_grades}")
print(f"Кількість високих оцінок: {len(high_grades)}")
10 запитань (відкритого типу), які допоможуть учням 9 класу глибше проаналізувати тему одновимірних масивів та зрозуміти логіку їх використання:
Поясни своїми словами, що таке одновимірний масив. Чим він принципово відрізняється від звичайної змінної, яку ми використовували раніше?
Наведи 3 приклади наборів даних із повсякденного життя, які було б зручно зберігати у вигляді масиву. Обґрунтуй свій вибір.
Чому при роботі з великою кількістю даних (наприклад, 1000 значень) використання масивів є ефективнішим, ніж створення окремих змінних для кожного значення?
З яких двох частин складається ім’я елемента масиву? Напиши приклад того, як звернутися до п'ятого елемента масиву з назвою Temper.
Що таке індекс елемента масиву? Яким типом чисел він завжди має бути виражений?
У відео згадувалося, що в Python індексація може починатися з 0, а в інших середовищах — з 1. Як ця різниця впливає на написання циклу для обробки 10 елементів?
Для чого при обчисленні суми елементів масиву ми маємо обов'язково надати змінній-суматору початкове значення 0 перед початком циклу?
Опиши алгоритм знаходження середнього арифметичного значень масиву. Які кроки потрібно виконати програмі?
Чи можуть елементи одного масиву одночасно містити і текст, і числа? Поясни, виходячи з визначення масиву як «впорядкованого набору однотипних даних».
Спробуй спрогнозувати: які ще операції, окрім знаходження суми, можна виконувати з масивами за допомогою циклів? (Наприклад, пошук чогось або порівняння).