Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Пошук дублікатів файлів
1. Початковий рівень. Створити застосунок Windows Forms, який після натискання кнопки асинхронно обчислює хеш SHA-256 кожного файлу вибраної папки й показує в ListBox групи файлів з однаковим хешем; під час роботи кнопка вимкнена, а вікно не «зависає».
2. Базовий рівень. Створити застосунок Windows Forms для пошуку дублікатів у папці з підпапками, який спочатку групує файли за розміром, а хеші обчислює лише для файлів однакового розміру; ProgressBar показує перебіг, кнопка Cancel скасовує пошук, а рядок стану показує кількість груп і розмір місця, яке можна звільнити.
3. Високий рівень. Створити застосунок Windows Forms «Дублікати», який шукає однакові файли у вибраній папці за хешем SHA-256, обчислюючи хеші одночасно (не більше заданої кількості файлів, SemaphoreSlim), показує групи дублікатів у DataGridView, дає змогу позначити й видалити зайві копії з підтвердженням TaskDialog.ShowDialogAsync і зберігає звіт у CSV; недоступні файли потрапляють у журнал помилок.
Варіант 2. Генератор простих чисел
1. Початковий рівень. Створити застосунок Windows Forms, який знаходить усі прості числа в діапазоні від a до b (поля NumericUpDown) у Task.Run і виводить їх кількість та останні 20 чисел; годинник на формі продовжує оновлюватися під час обчислення.
2. Базовий рівень. Створити застосунок Windows Forms, який шукає прості числа в діапазоні до 100 000 000 з перебігом у ProgressBar (звіт не частіше ніж раз на 1 %), кнопкою Cancel, перевіркою a ≤ b і виведенням часу обчислення.
3. Високий рівень. Створити застосунок Windows Forms «Прості числа», який шукає прості числа в заданому діапазоні від a до b: ділить діапазон на частини й обробляє їх паралельно в кількох задачах (Task.WhenAll), порівнює час послідовного й паралельного варіантів у таблиці та асинхронно зберігає знайдені числа в текстовий файл через SaveFileDialog.
Варіант 3. Аналіз текстів книг
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно читає вибраний текстовий файл (File.ReadAllTextAsync) і показує кількість символів, слів і рядків.
2. Базовий рівень. Створити застосунок Windows Forms, який будує частотний словник вибраного файлу (слова без урахування регістру, без розділових знаків) у фоновій задачі й показує 20 найчастіших слів у DataGridView; про порожній файл і помилки читання повідомляється в MessageBox.
3. Високий рівень. Створити застосунок Windows Forms «Аналіз книг», який будує частотні словники слів кількох вибраних текстових файлів, обробляючи їх одночасно, додає результати (файл, кількість слів, найчастіші слова) в таблицю в порядку завершення (Task.WhenEach), показує спільний словник усіх книг, дозволяє скасувати аналіз і експортує словник у CSV.
Варіант 4. Імітація завантаження серій
1. Початковий рівень. Створити застосунок Windows Forms, який імітує завантаження п’яти серій (кожна – Task.Delay випадкової тривалості від 1 до 4 с) послідовно й показує в списку час завершення кожної.
2. Базовий рівень. Створити застосунок Windows Forms, який запускає імітоване завантаження п’яти серій (кожна – Task.Delay випадкової тривалості 1–4 с) одночасно (Task.WhenAll), показує окремий ProgressBar для кожної серії та загальний час, а кнопка Cancel скасовує всі завантаження одним токеном.
3. Високий рівень. Створити застосунок Windows Forms «Завантажувач серій», який імітує завантаження серій (Task.Delay випадкової тривалості) з обмеженням кількості одночасних завантажень, тайм-аутом на одну серію, випадковими помилками (20 %) і автоматичним повтором невдалих до трьох разів; таблиця показує стан, спроби й час кожної серії, а журнал зберігається у файл.
Варіант 5. Сортування великих масивів
1. Початковий рівень. Створити застосунок Windows Forms, який генерує масив із заданої кількості випадкових чисел (до 10 000 000) і сортує його в Task.Run, показуючи час сортування.
2. Базовий рівень. Створити застосунок Windows Forms, який генерує масив випадкових чисел заданого розміру й у фоновому режимі послідовно порівнює сортування вставками, швидке сортування та Array.Sort на однакових копіях масиву, заповнює таблицю часу в міру завершення і дозволяє скасувати порівняння.
3. Високий рівень. Створити застосунок Windows Forms «Порівняння сортувань», який у фоні вимірює час сортування вставками, швидкого сортування та Array.Sort на масивах випадкових чисел кількох розмірів, малює графік залежності часу від розміру (GDI+), оновлює його після кожного вимірювання, підтримує скасування й зберігає результати в CSV.
Варіант 6. Резервне копіювання папки
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно копіює всі файли вибраної папки в іншу папку (Stream.CopyToAsync) і показує кількість скопійованих файлів.
2. Базовий рівень. Створити застосунок Windows Forms для копіювання папки з підпапками з перебігом у байтах (ProgressBar і напис «скопійовано / усього МБ»), кнопкою Cancel, після якої частково скопійований файл видаляється, і перевіркою вільного місця.
3. Високий рівень. Створити застосунок Windows Forms «Резервна копія», який асинхронно копіює з вибраної папки в папку резервної копії лише нові та змінені файли (за розміром і датою), одночасно обробляє кілька файлів, показує поточну швидкість і залишок часу, веде журнал пропущених і помилкових файлів і запам’ятовує останні папки у файлі JSON.
Варіант 7. Обчислення числа π
1. Початковий рівень. Створити застосунок Windows Forms, який оцінює число π методом Монте-Карло за заданою кількістю випадкових точок у Task.Run і показує оцінку та похибку.
2. Базовий рівень. Створити застосунок Windows Forms, у якому обчислення π методом Монте-Карло триває до натискання Stop, а напис з поточною оцінкою й кількістю точок оновлюється кожні 100 мс через IProgress<T>.
3. Високий рівень. Створити застосунок Windows Forms «Число π», який оцінює π методом Монте-Карло в кількох задачах одночасно, малює точки всередині й поза чвертю кола (GDI+), будує графік збіжності оцінки, має паузу й продовження та зберігає підсумкову статистику у файл.
Варіант 8. Пошук у журналах
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно читає рядки вибраного файлу журналу (StreamReader.ReadLineAsync) і показує в ListBox рядки, що містять введене слово.
2. Базовий рівень. Створити застосунок Windows Forms для пошуку у вибраному файлі журналу за регулярним виразом, який повертає знайдені рядки через IAsyncEnumerable<T> і додає їх у список одразу, показує перебіг за розміром файлу, перевіряє регулярний вираз перед пошуком і скасовує пошук кнопкою.
3. Високий рівень. Створити застосунок Windows Forms «Аналізатор журналів», який шукає в усіх файлах *.log вибраної папки (рядки рррр-мм-дд гг:хх:сс [РІВЕНЬ] текст) одночасно, фільтрує рядки за рівнем (INFO, WARN, ERROR) і проміжком часу, показує результати в DataGridView з номером рядка та іменем файлу й експортує результати в текстовий файл.
Варіант 9. Конвертер CSV у JSON
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно читає вибраний CSV-файл із заголовком і записує його у файл JSON як масив об’єктів.
2. Базовий рівень. Створити застосунок Windows Forms, який перетворює всі CSV-файли папки в JSON по черзі з перебігом за кількістю файлів, пропускає рядки з неправильною кількістю полів і показує журнал помилок з номерами рядків.
3. Високий рівень. Створити застосунок Windows Forms «CSV → JSON», який перетворює CSV-файли із заголовком з вибраної папки на файли JSON (масиви об’єктів), обробляє файли паралельно з обмеженням кількості, дозволяє обрати роздільник і кодування, визначає типи значень (число, дата, рядок), скасовує пакетну обробку й показує підсумкову таблицю файлів.
Варіант 10. Гра «Життя» Конвея
1. Початковий рівень. Створити застосунок Windows Forms, який обчислює задану кількість поколінь гри «Життя» на полі 200 × 200 з випадковим заповненням у Task.Run і малює останнє покоління.
2. Базовий рівень. Створити застосунок Windows Forms, у якому покоління гри «Життя» обчислюються у фоні й показуються в циклі з PeriodicTimer, кнопки Start, Pause і Step керують симуляцією, а клацання мишею змінює стан клітинки на паузі.
3. Високий рівень. Створити застосунок Windows Forms «Життя», який підтримує поле до 2000 × 2000 з паралельним обчисленням поколінь, масштабування колесом миші, регульовану швидкість, завантаження та збереження шаблонів у текстовому форматі й показ кількості живих клітинок на графіку.
Варіант 11. Шифрування файлів
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно шифрує вибраний файл алгоритмом AES з ключем, отриманим із пароля (Rfc2898DeriveBytes.Pbkdf2), і записує результат у файл з розширенням .enc.
2. Базовий рівень. Створити застосунок Windows Forms для шифрування й розшифрування файлів AES з перебігом у байтах, кнопкою Cancel (незавершений вихідний файл видаляється) і перевіркою пароля: про неправильний пароль під час розшифрування повідомляється, а пошкоджений файл не зберігається.
3. Високий рівень. Створити застосунок Windows Forms «Сейф», який шифрує кілька файлів одночасно алгоритмом AES з ключем, отриманим із пароля, зберігає у файлі сіль, вектор ініціалізації та контрольний хеш, перевіряє цілісність після розшифрування, показує таблицю стану файлів і вимагає пароль не коротший за 8 символів з підтвердженням.
Варіант 12. Статистика метеостанцій
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно читає CSV-файл вимірювань однієї метеостанції (дата, температура) і показує мінімум, максимум і середнє значення.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно обробляє CSV-файли вимірювань кількох метеостанцій (дата, температура) одночасно й додає в таблицю рядок станції з мінімумом, максимумом і середнім значенням у порядку завершення (Task.WhenEach); некоректні рядки пропускаються й підраховуються, а помилка одного файлу не зупиняє інші.
3. Високий рівень. Створити застосунок Windows Forms «Метеостанції», який асинхронно читає CSV-файли вимірювань кількох станцій (дата, температура) і показує помісячну статистику кожної станції, графік середніх температур (GDI+), фільтр за роком, підтримує скасування обробки та експортує підсумкову таблицю у файл JSON.
Варіант 13. Генерація звітів продажів
1. Початковий рівень. Створити застосунок Windows Forms, який імітує формування звіту однієї філії (Task.Delay 3 с) і записує звіт у текстовий файл, не блокуючи інтерфейс.
2. Базовий рівень. Створити застосунок Windows Forms, який імітує формування звітів продажів десяти філій (Task.Delay 1–3 с, запис звіту в текстовий файл) одночасно, але не більше трьох водночас (SemaphoreSlim), показує стан кожної філії у списку («очікує», «формується», «готово») і загальний час.
3. Високий рівень. Створити застосунок Windows Forms «Звіти», який читає продажі філій з CSV-файлів (товар, кількість, ціна), обчислює підсумки за товарами, асинхронно формує звіти філій у текстові файли з обмеженням паралельності, дозволяє скасувати формування, повторно формує лише невдалі звіти й відкриває готовий звіт немодальною формою ShowAsync.
Варіант 14. Розв’язання судоку
1. Початковий рівень. Створити застосунок Windows Forms, у якому судоку 9 × 9 вводиться в DataGridView, а розв’язок пошуком з поверненням виконується в Task.Run і показується в таблиці.
2. Базовий рівень. Створити застосунок Windows Forms, у якому умова судоку 9 × 9 вводиться в DataGridView; застосунок перевіряє коректність умови, розв’язує її пошуком з поверненням у фоні з кнопкою Cancel і показує розв’язок, час розв’язання та кількість перебраних варіантів; про нерозв’язну умову повідомляється.
3. Високий рівень. Створити застосунок Windows Forms «Судоку», який відкриває умови з текстового файлу (рядок з 81 цифри, 0 – порожня клітинка), розв’язує всі умови файлу одночасно з обмеженням кількості задач, показує таблицю часу розв’язання, генерує нові умови заданої складності у фоні й зберігає розв’язки.
Варіант 15. Підрахунок рядків коду
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно підраховує кількість рядків у всіх файлах *.cs вибраної папки з підпапками й показує загальну кількість.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно підраховує для файлів вибраної папки проєкту з підпапками рядки коду, порожні рядки й коментарі, групує результати за розширеннями в DataGridView з підсумковим рядком і пропускає папки bin і obj; перебіг показується за кількістю файлів.
3. Високий рівень. Створити застосунок Windows Forms «Статистика коду», який підраховує рядки коду, порожні рядки й коментарі у файлах вибраної папки, обробляє файли одночасно, додає результати поступово через IAsyncEnumerable<T>, показує 10 найбільших файлів, підтримує скасування, зберігає звіт у CSV і має параметр виключення папок за шаблоном.
Варіант 16. Мініатюри зображень
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно завантажує зображення вибраної папки й показує їх мініатюри розміром 100 × 100 у FlowLayoutPanel.
2. Базовий рівень. Створити застосунок Windows Forms, який створює у фоні мініатюри 100 × 100 зображень вибраної папки та додає їх у FlowLayoutPanel по одній, щойно мініатюру готово; пошкоджені файли позначаються написом, а кнопка Cancel зупиняє завантаження.
3. Високий рівень. Створити застосунок Windows Forms «Переглядач фото», який створює мініатюри зображень вибраної папки кількома задачами одночасно, кешує їх у папці застосунку, відкриває повне зображення подвійним клацанням у немодальній формі й скасовує завантаження попередньої папки під час вибору нової.
Варіант 17. Симуляція черги банку
1. Початковий рівень. Створити застосунок Windows Forms, який моделює прихід клієнтів у банк кожні 1–3 с і обслуговування одним касиром 2–4 с (Task.Delay) і показує довжину черги.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно моделює чергу в банку: клієнти приходять кожні 1–3 с, заданою кількістю касирів обслуговуються 2–4 с (Task.Delay); стан (довжина черги, зайняті каси) оновлюється в циклі з PeriodicTimer, а після зупинки показується середній і максимальний час очікування.
3. Високий рівень. Створити застосунок Windows Forms «Банк», який моделює чергу клієнтів (прихід і обслуговування випадкової тривалості) і кілька касирів окремими задачами зі спільною чергою, дозволяє змінювати швидкість моделювання, малює графік довжини черги й зберігає журнал подій у файл.
Варіант 18. Архіватор
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно стискає вибраний файл у формат GZip (GZipStream, CopyToAsync) і показує розмір до та після стискання.
2. Базовий рівень. Створити застосунок Windows Forms для стискання й розпаковування файлів GZip з перебігом у байтах і кнопкою Cancel, після якої незавершений архів видаляється; відсоток стискання показується в рядку стану.
3. Високий рівень. Створити застосунок Windows Forms «Архіватор», який асинхронно стискає кілька вибраних файлів у формат GZip одночасно в окремі архіви з обмеженням кількості задач, порівнює рівні стискання за часом і розміром у таблиці та перевіряє архіви розпаковуванням у пам’ять.
Варіант 19. Перевірка орфографії
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно завантажує словник (текстовий файл, одне слово в рядку) і показує слова введеного тексту, яких немає в словнику.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно завантажує словник (текстовий файл, одне слово в рядку), перевіряє орфографію вибраного документа у фоні, показує невідомі слова з кількістю входжень і номерами рядків і дозволяє додати слово до користувацького словника, що зберігається у файл.
3. Високий рівень. Створити застосунок Windows Forms «Орфографія», який перевіряє кілька текстових документів одночасно за словником з файлу (одне слово в рядку), пропонує для невідомих слів до трьох найближчих слів словника (відстань Левенштейна, обчислення у Task.Run), підтримує скасування та експортує звіт.
Варіант 20. Таймер кухаря
1. Початковий рівень. Створити застосунок Windows Forms, який запускає асинхронний таймер приготування страви на задану кількість хвилин і секунд і показує MessageBox після завершення.
2. Базовий рівень. Створити застосунок Windows Forms з кількома незалежними таймерами страв (назва, час), кожен з яких виконується окремим асинхронним методом з PeriodicTimer, показує залишок часу і має власну кнопку Cancel.
3. Високий рівень. Створити застосунок Windows Forms «Кухня», у якому рецепт з кроками та тривалостями завантажується з JSON, таймери кроків запускаються послідовно або паралельно згідно з рецептом, підтримується пауза, а сповіщення показуються через TaskDialog.ShowDialogAsync.
Варіант 21. Факторіали BigInteger
1. Початковий рівень. Створити застосунок Windows Forms, який обчислює n! для n до 50 000 типом BigInteger у Task.Run і показує кількість цифр результату та час обчислення.
2. Базовий рівень. Створити застосунок Windows Forms, який обчислює у фоні n! для введеного n типом BigInteger з перебігом за кількістю виконаних множень, кнопкою Cancel і асинхронним збереженням повного числа в текстовий файл.
3. Високий рівень. Створити застосунок Windows Forms «Великі числа», який обчислює n! для введеного n типом BigInteger послідовно й паралельно (множення частин діапазону в окремих задачах), порівнює час, обчислює суму цифр результату й зберігає звіт; неправильне n позначається ErrorProvider.
Варіант 22. Інтеграл функції
1. Початковий рівень. Створити застосунок Windows Forms, який обчислює визначений інтеграл sin(x) на відрізку [a; b] методом прямокутників з мільйонами розбиттів у Task.Run.
2. Базовий рівень. Створити застосунок Windows Forms, який обчислює визначений інтеграл вибраної функції (sin x, Task.WhenAll) і показує в таблиці значення, час і похибку відносно точного значення.
3. Високий рівень. Створити застосунок Windows Forms «Інтеграли», який обчислює визначений інтеграл вибраної функції на відрізку [a; b] методами прямокутників, трапецій і Сімпсона у фоні, подвоює кількість розбиттів, доки не досягнуто заданої точності або тайм-ауту, показує перебіг кожного методу, малює графік функції й підінтегральної області та зберігає результати в CSV.
Варіант 23. Злиття відсортованих файлів
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно зливає два текстові файли з відсортованими числами в один відсортований файл.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно зливає довільну кількість текстових файлів з відсортованими числами в один відсортований файл з перебігом за прочитаними рядками, перевіряє впорядкованість вхідних даних і скасовує злиття кнопкою.
3. Високий рівень. Створити застосунок Windows Forms «Зовнішнє сортування», який ділить великий файл чисел на частини, сортує частини паралельно в окремих файлах, зливає їх, показує етапи і перебіг кожного етапу та видаляє тимчасові файли після завершення чи скасування.
Варіант 24. Моніторинг папки
1. Початковий рівень. Створити застосунок Windows Forms, який за допомогою FileSystemWatcher показує в списку назви нових файлів у вибраній папці та асинхронно підраховує їх розмір.
2. Базовий рівень. Створити застосунок Windows Forms, який стежить за вибраною папкою (FileSystemWatcher) і асинхронно обробляє нові текстові файли (підрахунок рядків), чекає, доки файл перестане записуватися, повторюючи спробу відкрити його через Task.Delay, і показує результати в таблиці.
3. Високий рівень. Створити застосунок Windows Forms «Вхідна папка», який стежить за вибраною папкою (FileSystemWatcher), ставить нові файли в чергу, асинхронно обробляє їх (підрахунок рядків) не більше заданої кількості одночасно, переміщує оброблені файли в папку done, а помилкові – в failed, веде журнал і коректно зупиняє обробку під час закриття форми.
Варіант 25. Генератор тестових даних
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно генерує CSV-файл із заданою кількістю записів (ім’я, вік, місто) і показує час генерації.
2. Базовий рівень. Створити застосунок Windows Forms для асинхронної генерації мільйона випадкових записів (ім’я, вік, місто) у CSV-файл порціями по 10 000 з перебігом, кнопкою Cancel і перевіркою параметрів (кількість записів, діапазон віку).
3. Високий рівень. Створити застосунок Windows Forms «Тестові дані», який генерує дані в CSV або JSON за схемою полів, заданою в таблиці (тип, діапазон, список значень), пише кілька файлів одночасно та перевіряє згенеровані файли повторним асинхронним читанням.
Варіант 26. Шахові задачі
1. Початковий рівень. Створити застосунок Windows Forms, який у Task.Run підраховує кількість способів розставити n ферзів на дошці n × n (n від 4 до 14) і показує час обчислення.
2. Базовий рівень. Створити застосунок Windows Forms, який шукає маршрут коня, що обходить усі клітинки дошки n × n (n від 5 до 8), у фоновій задачі з кнопкою Cancel і тайм-аутом, і малює знайдений маршрут.
3. Високий рівень. Створити застосунок Windows Forms «Ферзі», який шукає розстановки n ферзів на дошці n × n, розподіляючи перебір за першим рядком між кількома задачами, показує перебіг кожної задачі, малює кілька знайдених розстановок, підтримує скасування й зберігає розв’язки у файл.
Варіант 27. Пошук маршруту
1. Початковий рівень. Створити застосунок Windows Forms, який генерує випадковий граф із заданою кількістю вершин і знаходить найкоротший шлях алгоритмом Дейкстри в Task.Run.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно завантажує граф з файлу (ребро в рядку: початок, кінець, вага), перевіряє формат і знаходить найкоротший шлях між вибраними вершинами з кнопкою Cancel для великих графів.
3. Високий рівень. Створити застосунок Windows Forms «Маршрути», який асинхронно завантажує граф з файлу (ребро в рядку: початок, кінець, вага), шукає найкоротші шляхи з кількох початкових вершин одночасно, малює граф і знайдений маршрут (GDI+), порівнює час Дейкстри і пошуку в ширину для невагового графа та зберігає маршрути у файл.
Варіант 28. Статистика оцінок
1. Початковий рівень. Створити застосунок Windows Forms, який асинхронно читає CSV-файл оцінок групи (прізвище, предмет, бал) і показує середній бал групи.
2. Базовий рівень. Створити застосунок Windows Forms, який асинхронно обробляє CSV-файли оцінок кількох груп (прізвище, предмет, бал) і повертає результати через IAsyncEnumerable<T>, додаючи рядок групи із середнім балом у таблицю, щойно її оброблено; некоректні бали (поза 0–100) підраховуються як помилки.
3. Високий рівень. Створити застосунок Windows Forms «Успішність», який асинхронно обробляє CSV-файли оцінок усіх груп (прізвище, предмет, бал) одночасно, будує рейтинг студентів і гістограму балів (GDI+), фільтрує за предметом, дозволяє скасувати обробку та зберігає рейтинг у файл JSON.
Варіант 29. Перевірка посилань у документах
1. Початковий рівень. Створити застосунок Windows Forms, який знаходить у вибраному текстовому файлі адреси https://… регулярним виразом й імітує перевірку кожної (Task.Delay, випадковий результат), показуючи стан у списку.
2. Базовий рівень. Створити застосунок Windows Forms, який знаходить у вибраному текстовому файлі адреси https://… й імітовано перевіряє їх одночасно (Task.Delay випадкової тривалості, випадковий результат) з тайм-аутом на кожну перевірку (WaitAsync), показує стани «OK», «помилка», «тайм-аут» у таблиці та загальний час перевірки.
3. Високий рівень. Створити застосунок Windows Forms «Посилання», який знаходить адреси https://… у кількох вибраних документах й імітовано перевіряє їх (Task.Delay, випадковий результат) з обмеженням паралельності, для кожної адреси використовує найшвидшу з двох спроб (Task.WhenAny), скасовує решту й зберігає звіт про недоступні посилання.
Варіант 30. Фрактал Жюліа
1. Початковий рівень. Створити застосунок Windows Forms, який малює множину Жюліа для заданого параметра c у Task.Run у зображення Bitmap і показує його в PictureBox.
2. Базовий рівень. Створити застосунок Windows Forms, у якому фрактал Жюліа малюється горизонтальними смугами, кожна з яких з’являється на екрані, щойно її обчислено; зміна c повзунками скасовує малювання попереднього кадру.
3. Високий рівень. Створити застосунок Windows Forms «Жюліа», який малює фрактал Жюліа для параметра c, обчислюючи горизонтальні смуги паралельно (Parallel.ForEachAsync), підтримує наближення мишею, анімацію параметра c без накладання кадрів і збереження зображення у PNG з вибраною роздільністю.
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань.
- Визначити, які операції завдання є операціями введення-виведення, а які – обчисленнями; спланувати форму, елементи керування та стани кнопок під час операції.
- Створити у Visual Studio 2026 проєкт Windows Forms App (.NET 10); винести тривалі операції в окремі класи з асинхронними методами, що приймають
IProgress<T>іCancellationToken. - Реалізувати обробники подій з
async/await: вимкнення кнопок, перебіг, скасування, тайм-аути, обробку винятків; переконатися, що в коді немає.Result,.Wait()іasync voidпоза обробниками подій. - Зібрати проєкт без попереджень (зокрема CS4014 і WFO2001) і перевірити, що під час операції вікно перетягується й перемальовується, а скасування та помилкові дані обробляються коректно; за потреби переглянути задачі у вікнах Tasks і Parallel Stacks.
- Продемонструвати роботу застосунку викладачеві, пояснити програмний код і відповісти на контрольні питання.