# 4. Домашнє завдання (написання програми) > **Джерело завдання.** Формулювання взято **з методичних матеріалів курсу**. > Готового коду тут **немає** — це індивідуальне завдання; техніку обчислень > показано на інших даних у [2method.md](2method.md) та [3classroom.md](3classroom.md). ## Постановка Написати програмний додаток (**мову додатку студент обирає самостійно**). Додаток отримує на вхід файл **CSV** зі значеннями експерименту. Значення вважати **дискретними**. Дивлячись на фактичні дані експерименту, програма виводить **математичне сподівання, дисперсію та середньоквадратичне відхилення вибірки**, що присутня у файлі. ## Вхід і вихід - **Вхід:** шлях до файлу CSV зі значеннями (числа; можлива наявність заголовка та кількох стовпців — тоді потрібний стовпець задають параметром чи запитом). - **Вихід:** щонайменше три числа — вибіркове середнє $\bar{x}$, дисперсія та СКВ. Формат виводу (консоль/файл) — на розсуд студента; числа округлюйте розумно (напр., 4 значущі цифри). ## Рівні складності Оцінка відповідає найвищому **повністю й правильно** виконаному рівню. ### Базовий рівень — 60–74 балів 1. Прочитати значення з файлу CSV (один стовпець чисел). 2. Обчислити й вивести: - вибіркове середнє $\bar{x} = \frac{1}{n}\sum x_i$; - дисперсію (зміщену) $s_n^2 = \frac{1}{n}\sum (x_i - \bar{x})^2$; - СКВ $\sigma_n = \sqrt{s_n^2}$. 3. Формули реалізувати **самостійно** (не викликати готову `var`/`std` як основне обчислення). ### Середній рівень — 75–89 балів Додатково до базового: 4. Вивести **обидві** версії дисперсії та СКВ — зміщену ($/n$) і незміщену ($/(n-1)$) — з поясненням, коли яку застосовувати. 5. Побудувати й вивести **частотний ряд** (варіаційний ряд): для кожного унікального значення — його частоту $f_j$ та відносну частоту $p_j = f_j/n$. 6. Коректно опрацьовувати файл із **заголовком** і **кількома стовпцями** (вибір стовпця). ### Високий рівень — 90–100 балів Додатково до середнього: 7. Обчислення реалізувати «за один прохід» через накопичення $n$, $\sum x$, $\sum x^2$ (обчислювально стійка схема) і **порівняти** результат зі стандартною бібліотечною функцією (як перевірку). 8. Вивести простий **текстовий стовпчиковий графік** (гістограму) частотного ряду. 9. Передбачити **перевірку коректності** вводу (порожній файл, нечислові значення, пропуски) з інформативним повідомленням. ## Що здавати - Вихідний код програми (з коротким `README`: як запустити, який формат входу). - Приклад запуску на **тестовому** файлі. Обов'язково перевірте програму на даних [Задачі 3](3classroom.md) — очікувано $\bar{x} = 10$, $s_n^2 = 2$, $s^2 = 2.5$. - Оформлення звіту — за [5report.md](5report.md); перелік запитань до захисту — у [6questions.md](6questions.md).