
- •Методичні вказівки
- •Загальні положення
- •1 Структура windows - додатків. Віконна процедура. Обробка повідомлень
- •1.1 Мета роботи
- •1.2 Вказівки з підготовки до виконання лабораторної роботи
- •1.4 Завдання на лабораторну роботу
- •1.5 Контрольні запитання і завдання
- •2 Контексти пристроїв. Вивід тексту
- •2.1 Мета роботи
- •2.2 Вказівки з підготовки до виконання лабораторної роботи
- •2.3 Суть роботи
- •2.4 Завдання на лабораторну роботу
- •2.5 Контрольні запитання і завдання
- •3 Графічний інтерфейс користувача (graphical user interface, gui)
- •3.1 Мета роботи
- •3.2 Вказівки з підготовки до виконання лабораторної роботи
- •3.3 Суть роботи
- •3.4 Завдання на лабораторну роботу
- •3.5 Контрольні запитання та завдання
- •4 Засоби введення інформації
- •4.1 Мета роботи
- •4.2 Вказівки з підготовки до виконання лабораторної роботи
- •4.3 Огляд теми роботи
- •4.4 Завдання на лабораторну роботу
- •Варіант 6
- •4.5 Контрольні запитання та завдання
- •5 Використання ресурсів
- •5.1 Мета роботи
- •5.2 Вказівки з підготовки до виконання лабораторної роботи
- •5.3 Суть роботи
- •5.4 Завдання на лабораторну роботу
- •Варіант 9
- •5.5 Контрольні запитання і завдання
- •6 Багатозадачність та багатопотоковість
- •6.1 Мета роботи
- •6.2 Вказівки з підготовки до виконання лабораторної роботи
- •6.3 Суть роботи
- •6.4 Завдання на лабораторну роботу
- •6.5 Контрольні запитання і завдання
- •7 Багатовіконний інтерфейс
- •7.1 Мета роботи
- •7.2 Вказівки з підготовки до виконання лабораторної роботи
- •7.3 Суть роботи
- •7.4 Завдання на лабораторну роботу
- •7.5 Контрольні запитання та завдання
- •8.4 Завдання на лабораторну роботу
- •8.5 Контрольні запитання і завдання
- •Список літератури
- •Методичні вказівки
6.4 Завдання на лабораторну роботу
Варіант 1
Написати програму, що породжує чотири потоки, кожному з яких виділяється четверта частина вікна додатка. Перший потік виводить у свою область зростаючу числову послідовність 0,1,2,…, другий - послідовність чисел Фібоначчі. Третій потік заповнює свою ділянку вікна прямокутниками випадкового розміру і кольору, четвертий потік фіксує в трьох пзмінних і виводить їх у своїй області вікна число запусків кожного з попередніх трьох потоків.
Варіант 2
Написати програму, що породжує потік з натиснення однієї з клавіш клавіатури. Кожному створеному в такий спосіб потокові відповідає коло у вікні додатки, що з'являється у випадковому місці вікна додатка і рухається або у вертикалі, або по горизонталі. При досягненні межі вікна, коло змінює напрямок свого прямування на протилежне.
Варіант 3
У програмі створити два потоки. Призначення одного з них - періодичне читання системного часу і заповнення глобальної структури (години, хвилини, секунди), другого - вивід даної структури на екран. За допомогою критичного розділу організувати роздільний доступ потоків до структури даних.
Варіант 4
Написати програму, що містить два потоки, кожний із яких управляє прямуванням одного з двох потоків. Перша куля рухається горизонтально, друга - вертикально. Швидкість куль різноманітна. При досягненні межі клієнтської області вікна, куля змінює напрямок прямування на протилежне. За допомогою об'єктів синхронізації (семафорів або подій) реалізувати алгоритм прямування куль без сутичок.
Варіант 5
Написати програму, що запускає новий потік при натисненні лівої клавіші миші. Потік починає виводити зростаючу числову послідовність у поточну позицію курсору миші. При натисненні лівої клавіші миші програма видаляє потік, координати котрого ближче усього до положення миші.
Варіант 6
Створити багатопотокову програму, що формує потоки трьох типів. Кожний із потоків породжується відповідним пунктом меню і захоплює відповідно 1,2,3 ресурсу (максимальні числа ресурсів за замовчанням - 8 і може змінюватися користувачем у вікні діалогу, що викликається через меню). Кількість, вид потоків, а також їхній стан виводиться на екран. Якщо число ресурсів не дозволяє працювати потокові, він знаходиться у стані очікування. Видалення потоків здійснюється через меню в порядку запуску (першим віддалиться потік, запущений першим).
Варіант 7
Написати програму, що дозволяє запускати процеси, використовуючи для цього вибрані на диску файли. Користувач може задавати ім'я файла, що запускається, і командного рядка. Програма стежить за усіма запущеними нею процесами і виводить за вимогою користувача таку інформацію: ім'я процесу, значення покажчика й ідентифікатора процесу, час виконання процесу.
Варіант 8
Написати програму, що читає з диска *. bmp файл і виводить його у вікно додатка. За допомогою потоку організувати поворот зображення на 90 градусів. Операцію можна перервати за допомогою діалогового вікна, що виникає на час виконання операції.
Варіант 9
Написати програму, що за натисненням миші створює потоки: за натисненням правої клавіші - потік, що робить вивід зростаючого ряду в позицію курсору, лівої - потік з убутним поруч. Потік вивантажується з пам'яті по закінченні рахунку. Число потоків обмежується користувачем через контекстне меню і знаходиться в діапазоні [4,8].