AP_RGZ_2015
.pdf71
температурним режимом (охолодження, обігрів тощо), температурою повітря. Відповідні дані містяться у файлі. Шлях до файлу задається користувачем під час роботи програми. Файл може заповнюватися програмно шляхом додавання даних або внесення змін до вже існуючих у ньому даних.
Робота програми має бути реалізована за допомогою меню та складатися з декількох файлів, у кожному з яких розміщено частину функцій програми. Програма повинна дозволяти:
–вивести інформацію про всі заплановані режими з зазначенням кількості хвилин, що залишились до вмикання кондиціонера (у відповідності з даним показником виводити дані);
–вивести інформацію про всі заплановані режими за вказаною
датою;
–визначити кількість запланованих включень кондиціонера на наступний місяць в заданому користувачем режимі;
–визначити останнє включення кондиціонера, заплановане на поточний день;
–впорядкувати інформацію за датою включення та вивести отримані дані у файли, в якості імен яких використовуються дати включення, а вмістом є інформація про всі включення, що виконані або мають бути виконані у зазначену дату.
2.3.2.7 Завдання для варіанта № 7:
а) У текстовому файлі містяться дроби, записані у форматі «чисельник/знаменник». Користувач з клавіатури задає число N та ім’я текстового файлу. Знайти у даному файлі всі правильні нескоротні дроби, знаменники яких не більше N, та вивести їх на екран. Визначити всі можливі правильні нескоротні дроби, знаменники яких менше N і які не зустрічаються в даному текстовому файлі, та вивести їх у текстовий файл, ім’я якого сформовано з ім’я першого файлу додаванням текстового постфіксу «_comp». Визначити всі функції, необхідні для оптимального функціонування програми (зокрема перевірки, чи є дріб правильним та нескоротним).
б) У текстовому файлі зберігається перелік книг у бібліотеці: назва, автор, кількість наявних екземплярів, видавництво, жанр, рік видання. У другому файлі зберігається інформація про видачу книг: дата видачі, дата повернення, назва книги, автор, прізвище та ім’я читача. Шлях до файлів задається користувачем з клавіатури.
72
Програма складається з декількох файлів. У першому має бути реалізовано роботу головної функції та виклик всіх інших функцій. У другому файлі повинні міститись функції, які забезпечують виконання наступних дій:
–визначення популярності кожного літературного жанру та виведення даних, відсортованих за популярністю;
–виведення інформації про книги, які читачі найактивніше замовляли протягом заданого періоду часу;
–визначення читачів, які не повертали книги вчасно, та для кожного читача кількість випадків, за якими відсортувати дані, і вивести їх у другий файл;
–виведення інформації про кожного автора, книги якого наявні
вбібліотеці, разом з кількістю наявних екземплярів книг кожного автора та кількістю замовлень його книг. Дані відсортувати в алфавітному порядку за прізвищем автора.
Роботу з програмою реалізувати за допомогою меню. Заповнення файлу новими даними реалізовувати також за допомогою меню.
2.3.2.8 Завдання для варіанта № 8:
а) У файлі міститься матриця, кожний елемент якої інтерпретується як значення інтенсивності пікселя деякого зображення. Необхідно знайти градієнт цього зображення. Для елементу масиву mas[i][j] градієнт можна оцінити наступним чином:
Градієнт (похідна) по горизонталі:
+1 +2 +1 |
a[i -1][ j -1] |
a[i -1][ j] a[i -1][ j +1] |
|
|||||||
|
0 |
|
|
|
a[i][ j] |
a[i][ j +1] |
|
|
||
Gx [i][ j] = |
0 0 Ä a[i][ j -1] |
= |
||||||||
|
-1 |
|
|
|
a[i +1][ j] |
a[i +1][ j +1] |
|
|
||
|
-2 -1 |
a[i +1][ j -1] |
|
|
||||||
= a[i −1][ j −1] + 2a[i −1][ j] + a[i −1][ j + 1] − a[i + 1][ j −1] − |
|
|
||||||||
-2a[i +1][ j] - a[i +1][ j +1]. |
|
|
|
|
||||||
Градієнт (похідна) по горизонталі: |
|
|
|
|
||||||
+1 |
0 |
-1 |
a[i -1][ j -1] |
a[i -1][ j] |
a[i -1][ j +1] |
|
||||
|
+2 |
0 |
- 2 |
|
|
a[i][ j] |
a[i][ j +1] |
|
= |
|
Gy [i][ j] = |
|
Ä a[i][ j -1] |
|
|||||||
|
+1 |
0 |
-1 |
|
|
|
|
|
|
|
|
|
a[i +1][ j -1] |
a[i +1][ j] a[i +1][ j +1] |
|
||||||
= a[i −1][ j −1] + 2a[i][ j −1] + a[i + 1][ j −1] − a[i −1][ j + 1] −
-2a[i][ j +1] - a[i +1][ j +1].
73
Тоді градієнт для кожного елементу [i, j] становить:
G[i][ j] = 
(Gx [i][ j])2 + (Gy [i][ j])2 .
Перевірити розроблений алгоритм для матриці невеликого розміру (наприклад, 10 на 10) та великої матриці (наприклад, 2000 на 2000). Значення елементів матриці можуть бути вибрані випадковим чином з проміжку 1...255 або задані у відповідному файлі, шлях до якого визначається користувачем з командного рядка під час запуску програми.
Всі функції, необхідні для забезпечення даної функціональності, виділити у окремий файл та виконувати їх виклик з іншого файлу, де міститься головна функція програми.
б) Дані про будівництво в місті розміщені у файлі та включають назву будівельної компанії, назву об’єкту будівництва, адресу будівництва, площу будівництва, дату початку будівництва, заплановану дату завершення будівництва, стан (будується, здано, заморожено тощо).
Програма повинна забезпечувати виконання наступних дій:
–виведення інформації про всі об’єкти будівництва з зазначенням запланованої кількості днів будівництва, розташовуючи їх за алфавітним порядком адрес будівництва;
–виведення всіх назв об’єктів, що ще не збудовані;
–виведення всіх об’єктів, завершення будівництва яких планується на вказану дату (дата задається роком та порядковим номером кварталу).
Передбачити можливість формувати файл з даними програмно,
атакож змінювати дані про існуючі у файлі об’єкти.
2.3.2.9 Завдання для варіанта № 9:
а) Знайти всі варіанти розміщення восьми ферзів на шаховій дошці таким чином, щоб ніякі дві фігури не розміщувались на одній діагоналі, горизонталі або вертикалі. Враховувати не тільки головні діагоналі. Всі варіанти вивести на екран послідовно з відповідним схематичним позначенням. Передбачити створення необхідних функцій.
б) Таблиця результатів футбольного чемпіонату представлена у файлі, на початку якого міститься кількість команд в чемпіонаті, після чого розташований двомірний масив з кількістю рядків та стовпців, рівною кількості команд. Всі елементи даного масиву, розташовані на
74
головній діагоналі, дорівнюють нулю, а кожний елемент, що головній діагоналі не належить, дорівнює 3, 1 або 0 (виграш, нічия або програш відповідно).
У окремому файлі містяться назви команд та міста, які вони представляють. Адреси файлів задаються користувачем під час роботи програми.
Вся інша функціональність програми має бути реалізована у вигляді меню. Головна функція програми міститься у окремому файлі, звідки виконується виклик всіх інших функцій з другого файлу. Програма має забезпечувати виконання наступних дій:
–визначення команд, що мають більше перемог ніч програшів;
–визначення команд, які пройшли чемпіонат без програшів;
–визначення команди, яка стала чемпіоном;
–визначення того, чи розташовані команди у відповідності з місцями, які вони зайняли. У випадку негативної відповіді знайти першу команду, результати якої порушують справедливість даного твердження (за рівної кількості очок місця обираються довільним чином);
–визначення турнірної таблиці.
Програма також повинна дозволяти заповнювати файл даними та змінювати дані в ньому.
2.3.2.10 Завдання для варіанта № 10:
а) У бінарному файлі містяться цілі числа у десятковому вигляді. Перетворити кожне число у двійкову форму. Виконати шифрування даних таким чином, щоб кожні вісім двійкових символів перетворювались на літеру латинського алфавіту. Таблиця відповідності кодів літерам міститься у другому файлі. Результат шифрування вивести у третій файл. Передбачити також функцію для виконання дешифрування. Імена файлів передаються програмі з командного рядка під час запуску.
б) Інформація про торги міститься у файлі та представлена датою, тікером цінних паперів (коротка назва), типом угоди (open, high, low, close), ціною відповідної угоди. У другому файлі міститься інформація про кожний цінний папір: тікер, назва підприємства, галузь, адреса. Адреси файлів задаються з клавіатури під час роботи програми.
75
Головна функція програми та функції завантаження даних з файлу і виведення даних у файл містяться у першому файлі програми,
ау другому – набір функцій, які виконують наступні дії:
–визначення для кожного цінного паперу зміни у відсотках до закриття попереднього торгового дня;
–виведення даних про зміну вартості цінних паперів протягом заданого користувачем періоду часу з зазначенням тікера, галузі та зміни вартості. Дані виводити, групуючи їх за тікерами, а потім сортуючи за датами;
–виведення інформації за цінними паперами заданого користувачем емітента: емітент (назва підприємства), адреса, галузь підприємства, останні ціни угод та інформація про зміну ціни протягом останнього місяця (відсортувати за датами);
–визначення кількості цінних паперів, торги якими відбувались протягом заданого дня.
Робота користувача з програмою реалізована у вигляді меню. Через меню виконується додавання даних у файл. Зчитування даних виконувати на початку роботи програми.
2.3.2.11 Завдання для варіанта № 11:
а) Задано прямокутне поле, розмір якого задається користувачем. Робот розташовується у лівому верхньому куті. Робот вміє переміщатися тільки вправо та вниз. Визначити кількість способів, якими робот може переміститися в точку з заданими координатами. Вивести на екран кількість способів та шлях для кожного способу (наприклад, одиницями позначити рух робота, а всі інші клітинки – нулями).
б) У першому файлі зберігається інформація про розклад занять у осінньому семестрі: день тижня, пара, дисципліна. У другому файлі зберігається інформація про назви дисциплін у даному семестрі та кількість годин. У третьому файлі послідовно для кожної дисципліни приведені теми кожного заняття. Якщо зустрічається порожній рядок, то вважається, що тема аналогічна попередньому заняттю. Адреси файлів задаються під час виклику за допомогою командного рядка.
Програма повинна надавати меню для виконання наступних функцій, реалізація яких виділена в окремий файл програми:
–утворення списку проведених занять за семестр з виведенням результатів у файл out, вказуючи дату заняття, назву дисципліни та тему заняття;
76
–визначення дисциплін та тем занять за вказану дату (виводити за парами по порядку);
–вилучення з файлу out занять за вказану дату;
–пошук занять за вказаною дисципліною протягом тижня. 2.3.2.12 Завдання для варіанта № 12:
а) У файлі міститься інформація про телефони абонентів,
кожний запис складається з прізвища абонента, дати підключення, номеру телефону. Визначити функції, які дозволять виводити інформацію про номер телефону за заданим прізвищем абонента, визначати кількість підключених телефонів з заданого користувачем року, а також зчитувати дані з файлу та заповнювати файл. Ім’я файлу задається користувачем з клавіатури.
б) У файлі міститься інформація зі статистикою відвідування сайту протягом тижня. Кожний запис містить ip-адресу, час та день тижня. Ім’я файлу задається з командного рядка під час запуску.
Реалізувати окремий файл програми, який містить функції, що дозволяють виконувати наступні дії:
–ввести дані з файлу та вивести у файл;
–утворити другий файл, який містить перелік ip-адрес без повторень, відсортованих за порядком підключення до сайту протягом тижня, та для кожного з них кількість відвідувань протягом тижня і найбільш популярний день тижня;
–визначити загальну кількість підключень до сайту протягом кожної доби та найбільш популярний період часу протягом доби довжиною в одну годину для всього сайту.
У другому файлі розташовується головна функція, з якої виконується виклик необхідних функцій з першого модуля. Роботу з програмою реалізувати за допомогою меню.
2.3.2.13 Завдання для варіанта № 13:
а) У першому текстовому файлі зберігається k матриць з n рядків та n+1 стовпців кожна, що є коефіцієнтами лінійних рівнянь (останній стовпець містить вільні члени). Значення k та n задані на початку файлу. Коефіцієнти, вільні члени та рішення є дійсними числами. У другому файлі зберігається k векторів, що є результатами розв’язання відповідних систем лінійних алгебраїчних рівнянь з матрицями з першого файлу. Вивести покомпонентно кожну систему рівнянь та результат її роз’язання, виконавши попередню перевірку (результат представити відповідним повідомленням, якщо рішення
77
невірні). Виділити всі необхідні функції. Імена файлів задаються користувачем з клавіатури.
б) Дані, що зберігаються інтернет-провайдером, включають логін користувача, дату та час підключення, дату та час завершення підключення, обсяг завантаженої інформації (Кб), обсяг надісланої інформації (Кб). Відповідні дані зберігаються у файлі. Шлях до файлу задається з командного рядка під час запуску програми.
Багатофайлова програма повинна містити файл, в якому набір функцій визначає виконання наступних функціональних вимог:
–вивести інформацію про тривалість кожного підключення та загальний обсяг трафіку (завантажений та надісланий, Мб) за датами сеансів;
–вивести інформацію про десять підключень протягом заданого користувачем інтервалу часу з найбільшим обсягом загального трафіку (Мб);
–вивести інформацію про загальний обсяг завантажених та надісланих даних (окремо) для заданого користувача за кожний місяць;
–обчислити середню тривалість підключення для кожного користувача та визначити максимальну, мінімальну та середню таку тривалість.
Всі функції викликаються програмою з іншого файлу за допомогою меню.
2.3.2.14 Завдання для варіанта № 14:
а) Текстовий файл, ім’я якого задається користувачем з клавіатури, містить перелік повних адрес файлів (ім’я диску, список каталогів, ім’я файлу та розширення). Виділити з кожної адреси ім’я файлу, розширення та адресу першого каталогу. Перевірити для кожного файлу, чи існує він. Вивести у текстовий файл, ім’я якого формується з імені початкового файлу додаванням постфіксу «srt», перелік файлів, які існують на диску, згрупувавши їх за форматами та відсортувавши в алфавітному порядку за іменем файлів. Імена файлів виводити у форматі «/<перший каталог>/…/< ім’я файлу>», сортуючи за розширенням та шляхом.
Програма повинна бути багатофайловою. У першому файлі реалізується головна функція, з якої виконується виклик всіх необхідних функцій з інших файлів, що забезпечують відповідну функціональність.
78
б) Інформація про технічну підтримку інтернет-провайдера містить дату звернення, прізвище абонента та ім’я, телефон клієнта, прізвище та ім’я консультанта, характер несправності, адресу клієнта, стан заявки (вирішено, ведуться роботи тощо).
Реалізувати функції, які дозволяють виконати наступні дії:
–вивести інформацію про всі невирішені заявки, зазначаючи зокрема порядковий номер дня тижня (групувати за днем тижня, сортувати за номером телефону клієнта);
–визначити кількість поданих заявок та відсоток остаточно вирішених з них протягом кожного місяця з заданого періоду;
–впорядкувати інформацію за датою заявки та сформувати файли, у кожному з яких знаходяться заявки з відповідним станом;
–змінювати стан заявки або деталізувати деякі інші параметри відповідної заявки з відповідним відображенням у файлі.
Вибір дій повинен виконуватись за допомогою меню. Ім’я файлу з даними задається з командного рядка під час запуску.
2.3.2.15 Завдання для варіанта № 15:
а) Розробити програму, яка виділяє всі слова, що зустрічаються
втекстовому файлі, обчислює кількість входжень кожного слова. Регістр при цьому не враховувати, тобто слово «слово», розташоване на початку речення («Слово») та в середині («слово»), є одним і тим самим словом. Ім’я файлу задається користувачем з клавіатури. Відсортувати перелік слів з файлу в алфавітному порядку та вивести даний перелік на екран з зазначенням кількості входження кожного слова. Передбачити можливість вилучення обраного користувачем слова з файлу. Якщо заданого слова у файлі немає, вивести відповідне повідомлення. Для роботи передбачити меню та виділити необхідні функції.
б) Інформація про всіх клієнтів банка включає номер рахунку, прізвище, ім’я та по батькові, поточну суму на рахунку та міститься у файлі. У другому файлі міститься інформація про всі проведені фінансові операції: дата, номер рахунку, тип (внесення, зняття), сума.
Реалізувати багатофайлову програму, в якій у окремий файл будуть винесені програмні функції, що реалізують наступну функціональність:
–виведення інформації про рахунок за номером або прізвищем клієнта (якщо рахунків декілька, дозволити користувачу обрати необхідний; сортувати за ім’ям);
79
–виведення всіх операцій, які проводились для вказаного номеру рахунку;
–внесення нових операцій або змінення існуючих з одночасним зміненням коштів на рахунку.
Роботу з програмою реалізувати у вигляді меню. Імена файлів передаються через командний рядок під час запуску.
2.3.2.16 Завдання для варіанта № 16:
а) Файл містить перелік файлів. У кожному файлі міститься текст. Файли можуть бути великого розміру (зчитування виконувати послідовно).
Користувач формує запит. Визначити частоту, з якою зустрічається кожне слово у кожному файлі. Визначити частоту входжень всього запиту у кожний файл (кількість входжень / (кількість входжень + 1)).
Визначити релевантність кожного тексту запиту, розраховуючи
їїяк суму розглянутих вище частот, помножену на програмно задані коефіцієнти. Вивести назви файлів та їх перший рядок у порядку зменшення релевантності. Кількість файлів, дані про які виводяться на екран, задається користувачем.
Всі функції, необхідні для вказаних дій виділити у окремий файл. Оброблення дій користувача виконувати за допомогою іншого файлу програми. Адреса вхідного файлу передається з командного рядка під час запуску. Передбачити також файл за замовчанням.
б) У Appstore формується перелік користувачів, що оформили попереднє замовлення на купівлю iPhone 7. Перелік включає номер замовлення, прізвище, ім’я, AppleID, номер кредитної картки, дату замовлення. Даний перелік представлено у вигляді файлу. Вилучити всі повторні замовлення користувачів з файлу.
Існує також файл з попередніми замовленнями iPhone6. Визначити, хто з користувачів представлений у обох замовленнях. Сформувати третій файл, у який вивести дані про таких користувачів.
Адреси файлів задаються користувачем з клавіатури. 2.3.2.17 Завдання для варіанта № 17:
а) Дано два текстові файли, імена яких задаються з клавіатури. Перший файл містить довільний текст. Другий файл містить пари слів, перше з яких є замінним словом z1, а друге слово z2 використовується для заміни. Пари слів відділені комами. Однак, враховуючи, можливість наявності помилок у тексті, деякі замінні слова
80
представлені набором слів Z, кожне з яких має бути замінено на слово для заміни z2. Виконати заміни в тексті першого файлу за допомогою пар слів з другого файлу та вивести текст, який буде отримано, у файл, ім’я якого задається програмно. Створити меню, яке дозволяє виконувати наступні дії: замінити будь-яке слово з набору Z на слово z2, замінити тільки перше слово z1 з набору Z на слово z2, записати отриманий текст у файл.
б) У файлі зберігається інформація про вступну компанію в університеті, що містить наступні дані: прізвище, ім’я, по батькові, дата народження, середній бал документа про освіту, бали сертифікатів зовнішнього незалежного оцінювання (масив з трьох чисел), додаткові бали, наявність оригіналів документів, спеціальність. У другому файлі містяться дані про кількість місць на кожній спеціальності. Адреси файлів передаються в програму під час запуску з командного рядка.
Програмні функції, які будуть реалізовувати наступну функціональність, винести в окремий файл програми:
–визначення абітурієнтів, які потрапили в прохідну частину списку за заданою спеціальністю (у випадку рівної кількості балів віддати перевагу абітурієнтам, які подали оригінали документів);
–визначення співвідношення кількості поданих оригіналів документів на кожну спеціальність та кількості місць на даній спеціальності, відсортувавши за даним показником;
–пошук абітурієнтів за прізвищем та ім’ям;
–визначення кількості студентів, які б не пройшли на задану спеціальність у випадку підрахування загальної кількості балів, але б пройшли у випадку врахування тільки балів сертифікатів зовнішнього незалежного оцінювання.
Роботу користувача з програмою реалізувати у вигляді меню. 2.3.2.18 Завдання для варіанта № 18:
а) Користувач задає перелік файлів з клавіатури та систему переміщення даних (кожному файлу за порядком номер встановлено у відповідність файл, з яким має бути виконано обмін даними,
наприклад: 1 – 3, 2 – 4, 3 – 1, 4 – 5, 5 – 2). Для всього процесу обміну даними між файлами дозволяється використовувати тільки один допоміжний файл. Визначити функцію для виконання переміщення. З файлами працювати поелементно (функції копіювання або перейменування файлів використовувати заборонено).
