Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

AP_RGZ_2015

.pdf
Скачиваний:
10
Добавлен:
07.02.2016
Размер:
1.26 Mб
Скачать

41

«<символ><число_повторень>». Наприклад, рядок «abbbcdef» перетворити на «ab3cdef». Передбачити можливість роботи з декількома рядками користувача за один запуск програми.

1.3.2.15 Завдання для варіанта № 15:

а) Відбувається шахова партія. Шахівниця має розмір 8x8. При цьому координати фігури задаються в шаховій нотації, тобто складаються з літери, що позначає номер стовпця (від a до h), та цифри, що позначає номер рядка (наприклад, «е2»).

Користувач задає з клавіатури позиції декількох фігур. Передбачити можливість введення даних про такі фігури: тура, слон, пішак. Тип фігури задається відповідно літерами: Т, С, П.

Після введення даних про кожну з фігур вивести на екран шахову дошку, позначаючи на ній відповідними літерами позиції заданих фігур, символом ‘*’ – позиції, на які може бути переміщено останню введену фігуру, а символом ‘.’ всі інші клітинки.

Передбачити ситуацію, коли позиція поточної фігури співпадає з фігурою, яка вже розташована на дошці. У такому випадку вивести повідомлення про конфлікт та запропонувати змінити позицію поточної фігури. Якщо користувач введе порожнє значення або повторить позицію, то внести зміни в масив.

б) Тлумачний словник представляє собою двомірний масив, у першому стовпчику якого знаходиться відповідне слово, а у другому – його тлумачення.

Користувач задає з клавіатури текст. Відредагувати даний текст, додавши у нього тлумачення кожного слова, яке представлене у словнику. Тлумачення наводити у дужках після відповідного слова.

Передбачити можливість розширення тлумачного словника користувачем шляхом введення нових слів та їх значення.

Програма повинна дозволяти користувачу ввести текст або доповнити словник. Вибір операції повинен виконуватись після введення кожного нового тлумачення в словник або виконання тлумачення рядка.

1.3.2.16 Завдання для варіанта № 16:

а) Масив A [N × M ] містить цілі числа та заповнюється випадковим чином значеннями з інтервалу [33; 126]. Користувач задає розмірність масиву з клавіатури. Сформувати рядок із заданого масиву, перетворивши кожне ціле число на символ, який має вказаний

42

код. Елементи в рядку розташовувати послідовно: елементи першого

рядка масиву, другого,…,

останнього.

f (x) = 0 та

 

б) Розв’язати квадратне рівняння

виконати

перевірку отриманого

рішення. Функція

f (x) задається

під час

роботи програми користувачем у вигляді рядка, що має формат axx + bx + c , включаючи числа (цілі і/або дійсні), арифметичні операції, змінну x та пробіли. Наприклад: «2 xx - 3x+4».

Передбачити можливість (за необхідності) розв’язання декількох рівнянь у процесі одного запуску програми.

1.3.2.17 Завдання для варіанта № 17:

а) Двомірний масив даних, заданий користувачем шляхом введення з клавіатури кожного з елементів (розмірність попередньо не задається), перетворити на одномірний масив, елементи якого утворюються шляхом читання елементів двомірного масиву за спіраллю, починаючи з лівого верхнього кута за годинниковою стрілкою:

б) Розробити програму, яка дозволяє транслітерувати символи, які є літерами української мови, символами, які є літерами англійської мови. Транслітерація кожної літери задається програмно.

Користувач вводить текст з клавіатури. Після цього необхідно виконати транслітерацію, залишивши всі інші символи в тексті без змін. Передбачити можливість транслітерації декількох рядків під час одного запуску програми.

1.3.2.18 Завдання для варіанта № 18:

а) Результати проведення футбольного турніру зведено у двомірний масив, який разом з кількістю команд задається користувачем. Елементи масиву представляють собою кількість м’ячів, забиту командою, що розташована у відповідному рядку, у ворота команди, що розташована у відповідному стовпці. Якщо перша команда забила у відповідній грі більше м’ячів за другу, то вона

43

отримує три очки, а її суперник – 0. Якщо м’ячів забито порівну, то обидві команди отримують по одному очку. Визначити турнірну таблицю. Наприклад, якщо

0 2 0

2 0 1

1 1 0,

то перша команда отримала 1 очко, друга – 2, третя – 4.

б) Користувач вводить текст програми мовою програмування С++ з клавіатури. Програма повинна дозволяти вилучати коментарі з тексту, виділяти бібліотеки, визначені за допомогою директиви #include, а також виділяти текст головної функції, виводячи його на екран без оголошення даної функції. Вибір конкретного режиму роботи (введення тексту, вилучення коментарів, виділення бібліотек, виділення тексту головної функції, вихід) повинен виконуватися користувачем.

1.3.2.19 Завдання для варіанта № 19:

а) Матрицю задано користувачем з клавіатури разом з кількістю її рядків N та стовпців M. Необхідно знайти елемент матриці, який має найбільше значення. Переставляючи рядки та стовпці місцями необхідним чином, перемістити найбільший елемент вліво вгору на задану користувачем за індексами позицію.

б) Користувач вводить рядок, який містить повне ім’я файлу (ім’я диску, список каталогів, ім’я файлу та розширення). Програмно задано набір можливих розширень. Перевірити, чи має файл доступне розширення. Виділити назву файлу з введеного рядка. Якщо файл має доступне розширення, то вивести повідомлення «Файл <назва> коректний». У протилежному випадку вивести повідомлення «Файл <назва> повинен мати допустиме розширення» та перелічити допустимі варіанти назви файлу разом з розширенням. Передбачити можливість повторного введення рядка користувачем.

1.3.2.20 Завдання для варіанта № 20:

а) Елемент двомірного масиву називають сідловою точкою, якщо він має значення, яке одночасно є найменшим у рядку та найбільшим у стовпці, де він розташований. Вивести на екран всі сідлові точки, які є у матриці NxN, заданій користувачем з клавіатури, зазначаючи їх значення, номери стовпця та рядка.

б) Користувач вводить речення. Виділити з нього всі слова, після чого запитати у користувача значення кожного зі знайдених

44

слів, утворивши таким чином тлумачний словник. Якщо у відповідь введено порожній рядок, то слово у тлумачний словник не вносити. Передбачити після завершення даного процесу виведення на екран всього сформованого тлумачного словника та можливість зміни значень деяких слів. У такому випадку запитати у користувача, значення якого слова він хоче змінити, вивести на екран його поточне значення та запитати нове.

1.3.2.21 Завдання для варіанта № 21:

а) Результати проведення футбольного турніру зведено у двомірний масив, який разом з кількістю команд задається користувачем. Елементи масиву представляють собою кількість очок, набрану командою, що розташована у відповідному рядку, під час гри з командою, що розташована у відповідному стовпці. Користувач послідовно (відповідно до розташування в масиві) вводить назви кожної команди, що бере участь у турнірі. Перевірити, чи співпадає заданий порядок команд з тим, які місця вони зайняли в результаті у турнірній таблиці, та вивести відповідне повідомлення. Якщо порядок не співпадає, то також вивести на екран таблицю, відкориговану таким чином, щоб принаймні команда, що фінішувала першою у турнірі, розташовувалась в таблиці результатів також першою.

б) Для заданого рядка у всіх словах, в яких зустрічаються тільки літери у верхньому (нижньому) регістрі, замінити регістр на нижній (верхній). Слова, в яких зустрічаються як літери у верхньому, так і у нижньому регістрі, перемістити в кінець речення. Словом вважати послідовність символів, яка включає тільки літери та дефіси. Передбачити два варіанти роботи програми: 1 – рядок задається значенням в програмі, 2 – рядок вводиться з клавіатури.

1.3.2.22 Завдання для варіанта № 22:

а) Матрицю задано користувачем з клавіатури разом з кількістю її рядків та стовпців. Знайти елемент матриці, який має найменше значення. Переставляючи рядки та стовпці місцями необхідним чином, перемістити найменший елемент вправо вниз на задану користувачем позицію.

б) Програма виконує редагування введеного користувачем рядка двома способами.

Перший спосіб дозволяє вилучити зайві пробіли та повторювані знаки пунктуації. Зайвими слід вважати декілька розташованих

45

поспіль пробілів, пробіли між словом та крапкою, комою, знаками питання і оклику.

Другий спосіб дозволяє перед лапками вставити в тексті зворотний слеш.

Вибір способу роботи залежить від користувача. Передбачити можливість роботи з декількома рядками користувача за один запуск програми.

1.3.2.23 Завдання для варіанта № 23:

а) Масив даних A розмірністю MxN задано користувачем з клавіатури разом зі значеннями параметрів M та N. Окрім того задано одномірний масив P розмірністю M. Сформувати двомірний масив B з масиву A, розташовуючи у ньому рядки масиву А у порядку, заданому масивом P, при цьому елементи у рядках перемістити на один вправо, тобто перший елемент повинен стати другим, другий – третім,…, останній – першим.

б) Словник складається з набору абревіатур і їх розшифрування та представляє собою двомірний масив, у першому стовпчику якого знаходиться відповідна абревіатура, а у другому – її розшифрування.

Користувач задає з клавіатури текст. Відредагувати даний текст, замінивши всі входження абревіатури у нього на її розшифрування. Передбачити можливість розширення набору абревіатур користувачем під час роботи програми.

Програма повинна дозволяти користувачу ввести текст або доповнити словник. Вибір режиму повинен виконуватись після введення кожної нової абревіатури в словник або виконання розшифрування.

1.3.2.24 Завдання для варіанта № 24:

а) Двомірний масив даних, заданий користувачем шляхом введення з клавіатури розмірності та кожного з елементів, перетворити на одномірний масив, елементи якого утворюються шляхом читання елементів двомірного масиву за діагоналями. Порядок читання елементів визначимо наступним масивом:

1

2

6

7

3

5

8

13

4

9

12

14

10

11

15

16

б) Введений користувачем текст містить теги мови HTML. Тег розташовується в тексті наступним чином: «тег» (наприклад, «head»,

46

«body»). Існують також теги, що закриваються («/тег»). Виділити з введеного тексту всі теги (окрім тих, що закриваються) та внести їх у словник. Перевірити, чи кожний з відкритих тегів у тексті закрито, та вивести відповідне повідомлення. Якщо в тексті присутній хоча б один незакритий тег, то вивести його назву та позицію на екран.

1.3.2.25 Завдання для варіанта № 25:

а) Відбувається шахова партія. Шахівниця має розмір 8x8. При цьому координати фігури задаються в шаховій нотації, тобто складаються з літери, що позначає номер стовпця (від a до h), та цифри, що позначає номер рядка (наприклад, «е2»).

Користувач задає з клавіатури позиції декількох фігур. Передбачити можливість введення даних про такі фігури: король, ферзь, слон. Тип фігури задається відповідно літерами: К, Ф, С.

Після введення даних про кожну з фігур вивести на екран шахову дошку, позначаючи на ній відповідними літерами позиції заданих фігур, символом ‘*’ – позиції, на які може бути переміщено останню введену фігуру, а символом ‘.’ всі інші клітинки.

Передбачити ситуацію, коли позиція поточної фігури співпадає з фігурою, яка вже розташована на дошці. У такому випадку вивести повідомлення про помилку та зміни в масив не вносити.

б) Користувач вводить рядок, який містить повне ім’я файлу (ім’я диску, список каталогів, ім’я файлу та розширення). Виділити з введеного рядка окремо ім’я файлу, розширення та ім’я першого каталогу. Вивести отримані дані на екран. Якщо файл розташовано в кореневому каталозі, то вивести символ ‘/’. Передбачити можливість повторного введення рядка користувачем.

1.3.2.26 Завдання для варіанта № 26:

а) Користувач задає з клавіатури кількість рядків і стовпців двомірної матриці та інтервал [a; b]. Програма заповнює матрицю заданих розмірів випадковим чином цілими числами з діапазону [-15; 50] та знаходить максимальне і мінімальне значення серед елементів масиву. Якщо отримані значення належать заданому інтервалу [a; b], то вивести масив на екран. Якщо ні, то виконати нормування значень елементів масиву, щоб вони знаходились в інтервалі [a; b].

б) Написати програму шифрування та дешифрування текстового повідомлення. Шифрування виконати наступним чином: розташувати спочатку всі символи, розташовані на парних позиціях, а потім у зворотному порядку всі символи, розташовані на непарних позиціях.

47

Реалізувати меню для вибору режиму роботи програми: шифрування, дешифрування та вихід. Передбачити можливість шифрування та дешифрування програмно заданого рядка, якщо користувачем задано порожній рядок.

1.3.2.27 Завдання для варіанта № 27:

а) Результати проведення футбольного турніру зведено у двомірний масив, який разом з кількістю команд задається користувачем. Елементи масиву представляють собою кількість м’ячів, забиту командою, що розташована у відповідному рядку, у ворота команди, що розташована у відповідному стовпці. Вивести на екран результативність кожної команди, зазначивши поряд з її назвою загальну кількість забитих м’ячів, пропущених, середню кількість забитих м’ячів у кожному матчі та кількість ігор даної команди, у яких різниця забитих та пропущених дорівнювала трьом або більше м’ячам на її користь.

б) Рядок складається з символів, серед яких зокрема можуть бути цифри. Послідовність цифр, відділену будь-якими іншими символами, слід вважати числами. Рядок задається користувачем з клавіатури.

Програма повинна дозволяти:

у заданому рядку вилучати всі цифри та виводити отриманий рядок на екран;

виводити на екран всі числа, які зустрічаються в рядку;

підраховувати кількість та обчислювати суму цифр у даному

рядку;

обчислювати суму чисел.

Вибір відповідної операції повинен залежати від користувача і бути представлений у вигляді меню.

1.3.2.28 Завдання для варіанта № 28:

а) Двомірний масив містить цілі числа та заповнюється випадковим чином значеннями з інтервалу [0; 127]. Користувач задає розмірність масиву з клавіатури. Сформувати рядок із заданого масиву, перетворивши кожне ціле число на символ, який має вказаний код. Елементи в рядку розташовувати в наступній послідовності: перші елементи послідовно кожного рядка масиву, другі,…, останні. Якщо утворений символ не належить до літер, цифр або розділових знаків, то пропустити його.

48

 

 

 

б) Розв’язати квадратне рівняння

f (x) = 0

та

виконати

перевірку отриманого рішення. Функція

f (x) задається

під час

роботи програми користувачем у вигляді

рядка,

що має формат

ax ^ 2 + bx + c , включаючи цілі числа, арифметичні операції, змінну x та пробіли. Наприклад: «-2x^2 + x-1». Передбачити, що деякі члени можуть бути пропущені (відповідний коефіцієнт дорівнює 0).

1.3.2.29 Завдання для варіанта № 29:

а) Елементи двомірного масиву є дійсними числами. Розмірність масиву та значення його елементів задано користувачем. Обчислити суми елементів головної та побічної діагоналей масиву. Визначити, чи є отримані суми взаємно простими, якщо їх абсолютні значення округлити до цілого.

б) Програма містить масив рядків, кожний з яких представляє собою запис про обліковий запис користувача, а кожне поле відділяється від іншого двокрапкою. Відомо, що перше поле зберігає логін, п’яте – прізвище та ім’я користувача, а шосте – пароль.

Запросити логін користувача. Якщо логін невідомий, то попросити ввести логін заново. Передбачити вихід з програми, якщо буде введено слово “bye”. Якщо логін знайдено в масиві, то вивести вітання з зазначенням ім’я (перше слово з відділених комами) та попросити ввести пароль. За результатами перевірки пароля вивести повідомлення про успішну авторизацію, або надати користувачу додаткову спробу. Передбачити не більше двох додаткових спроб.

1.3.2.30 Завдання для варіанта № 30:

а) Глядацький зал кінотеатру представлено двомірним масивом, розмірність якого задається користувачем з клавіатури. Інформація щодо проданих квитків зберігається у даному масиві, значення елементів якого дорівнюють 2, якщо квиток на дане місце продано, 1, якщо місце зарезервовано, та 0, якщо місце вільне. Масив заповнити програмно випадковим чином. Користувач вводить натуральне число, яке задає кількість квитків на місця, які повинні бути розташовані поспіль у одному ряді. Програма повинна визначити, чи можна знайти необхідну кількість вільних квитків за вказаної умови, та вивести відповідне повідомлення (вказуючи місця та ряд у випадку, якщо такі дії можна виконати), пропонуючи користувачу придбати їх. Якщо доступно декілька варіантів, то виводити декілька варіантів за кожним з доступних рядів, пропонуючи обрати ряд. Якщо користувач

49

погоджується придбати квитки, то потрібно позначити дані місця як зарезервовані.

б) Програма повинна дозволяти виконувати перевірку справедливості нерівностей. Нерівність задається у вигляді рядка, що може мати формат «<число><операція><число> <операція_порівняння><число><операція><число>» або «<число> <операція><число><операція_порівняння><число>». Рядок може містити натуральні числа, операції додавання, віднімання, множення та ділення, а також знаки: ‘>’, ‘<’, ‘>=’, ‘<=’. Нерівність вважати справедливою, якщо результат виконання арифметичної операції зліва від операції порівняння відповідно більше, менше, не менше або не більше результату арифметичної операції або значення справа від операції порівняння.

Передбачити можливість (за необхідності) перевірки декількох нерівностей у процесі одного запуску програми.

1.3.3Оформити звіт з роботи.

1.3.4Відповісти на контрольні запитання.

1.4 Зміст звіту

1.4.1Мета роботи.

1.4.2Завдання до роботи.

1.4.3Текст програм.

1.4.4Результати роботи програм.

1.4.5Висновки, що відображують результати виконання роботи та їх критичний аналіз.

1.5 Контрольні запитання

1.5.1Яка основна структура програми мовою С++?

1.5.2Для чого необхідна функція main?

1.5.3Як створити виконуваний код програми?

1.5.4Що таке змінна?

1.5.5Яким чином відбувається оголошення змінної?

1.5.6Що таке константа?

1.5.7Які типи даних вам відомі?

1.5.8Який розмір пам’яті відповідає відомим вам типам даних?

1.5.9Які існують модифікатори типів?

50

1.5.10Яким чином визначається порядок обчислення виразу?

1.5.11Наведіть операції за пріоритетом.

1.5.12Коли використовують оператори вибору та множинного

вибору?

1.5.13Яким чином можна використати умовний оператор if-

else?

1.5.14З чого складається умовний вираз?

1.5.15Яким чином можна використати оператор множинного вибору switch?

1.5.16Яким чином організувати введення та виведення даних?

1.5.17Як додати коментарі до програми?

1.5.18Наведіть основні математичні функції.

1.5.19Що таке IDE? Які існують сучасні IDE?

1.5.20Яким чином виконується зневадження в IDE?

1.5.21Для чого призначені та яким чином реалізуються алгоритми з циклічною структурою?

1.5.22Які існують види циклів?

1.5.23З яких складових побудований цикл у C++?

1.5.24Наведіть приклади задач, для розв’язання яких використовуються цикли.

1.5.25Наведіть блок-схему циклу з передумовою та поясніть принцип дії алгоритму.

1.5.26Наведіть блок-схему циклу з постумовою та поясніть принцип дії алгоритму.

1.5.27Наведіть блок-схему ітераційного циклу та поясніть принцип дії алгоритму.

1.5.28Який цикл мови C++ реалізує цикл с передумовою? Наведіть форму його запису.

1.5.29Який цикл мови C++ реалізує цикл с постумовою? Наведіть форму його запису.

1.5.30Який цикл мови C++ реалізує ітераційни цикл? Наведіть форму його запису.

1.5.31У яких випадках необхідно застосовувати цикл while?

1.5.32У яких випадках необхідно застосовувати цикл for?

1.5.33У яких випадках необхідно застосовувати цикл do-while?

1.5.34Чим відрізняється цикл while від циклу for?

1.5.35Якими способами можна реалізувати зчитування послідовності чисел деякої довжини з клавіатури?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]