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

ОП_РГЗ_2014

.pdf
Скачиваний:
3
Добавлен:
07.02.2016
Размер:
239.78 Кб
Скачать

Міністерство освіти і науки України Запорізький національний технічний університет

МЕТОДИЧНІ ВКАЗІВКИ

до виконання розрахунково-графічних завдань

здисципліни

Основи програмування”

для студентів напряму підготовки 6.050103 “ Програмна інженерія” (денної форми навчання) Частина 1

2014

2

Методичні вказівки до виконання розрахунково-графічних завдань з дисципліни “ Основи програмування” для студентів напряму підготовки 6.050103 “ Програмна інженерія” ( денної форми навчання). Частина 1 / В. М. Льовкін. – Запоріжжя: ЗНТУ, 2014. – 25 с.

Автор: Валерій Миколайович Льовкін, к.т.н., доцент

Рецензент: А. О. Олійник, к.т.н., доцент

Відповідальний за випуск: В. І. Дубровін, к.т.н., професор

Затверджено на засіданні кафедри програмних засобів

Протокол № 1 від “20” серпня 2014 р.

 

3

 

 

ЗМІСТ

 

Вступ ...........................................................................................................

4

1 Розрахунково-графічне завдання №1 Робота з основними

5

типами даних.............................................................................................

1.1

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

5

1.2

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

5

1.3

Зміст звіту............................................................................................

22

1.4

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

22

Література................................................................................................

24

4

ВСТУП

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

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

Для одержання заліку з кожної роботи студент здає викладачу цілком оформлений звіт, а також демонструє на екрані комп’ютера результати виконання роботи.

Звіт має містити:

титульний аркуш (на ньому вказують назву міністерства, назву університету, назву кафедри, номер, вид i тему роботи, виконавця та особу, що приймає звіт, рік);

тему та мету роботи;

завдання до роботи;

лаконічний опис теоретичних відомостей;

результати виконання роботи;

змістовний аналіз отриманих результатів та висновки.

Звіт виконують на білому папері формату A4 (210 x 297 мм). Текст розміщують тільки з однієї сторони листа. Поля сторінки з усіх боків – 20 мм. Аркуші скріплюють за допомогою канцелярських скріпок або вміщують у канцелярський файл.

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

5

1РОЗРАХУНКОВО-ГРАФІЧНЕ ЗАВДАННЯ №1 РОБОТА З ОСНОВНИМИ ТИПАМИ ДАНИХ

1.1 Мета роботи

Закріпити знання і навички, необхідні для програмування з використанням лінійних алгоритмів, алгоритмів з розгалуженою структурою, алгоритмів з циклічною структурою, масивів і покажчиків, рядків на практиці в процесі розроблення програм мовою програмування С++ для розв’язання комплексних завдань.

1.2 Завдання до роботи

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

1.2.2Роз’язати за допомогою програм мовою С++ завдання відповідно до варіанту.

1.2.2.1 Завдання для варіанта № 1:

a) Ввести дані про результати роботи магазинів за рік. Кількість магазинів задається користувачем з клавіатури. Дані про результати роботи представляють сумарну вартість проданих товарів у даному магазині за кожним з 12 місяців за рік і є дійсним числом. Передбачити, що сумарна вартість не може бути від’ємною. Якщо введено від’ємне значення, то запитати користувача заново. Якщо від’ємне значення введено повторно, то зберегти абсолютне значення. Округлити введене значення до сотих, якщо дробова частина даного числа містить більше двох цифр.

За результатами роботи отриманий масив вивести на екран, для вирівнювання стовпчиків використати табуляцію (символ ‘\t’).

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

6

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

“manager”.

Повторювати даний набір дій, поки користувач не вибере вихід

зменю.

1.2.2.2Завдання для варіанта № 2:

a) Результати проведення футбольного турніру зведено у двомірний масив, який разом з кількістю команд задається користувачем. Елементи масиву представляють собою кількість очок, набрану командою, що розташована у відповідному рядку, під час гри з командою, що розташована у відповідному стовпці. Користувач послідовно (відповідно до розташування в масиві) вводить назви кожної команди, що бере участь у турнірі. Відомо, що порядок їх введення також співпадає з місцями, які вони зайняли у турнірній таблиці. Однак вже після введення результатів виявилось, що було пропущено одну з команд. Запитати користувача про назву команди, результати її ігор з кожною з команд (за перемогу надається 3 очки, за нічию – 1, за програш – 0). Вивести на екран нову таблицю результатів, в яку включено пропущену команду у відповідності з її розташуванням у турнірній таблиці.

б) Користувач вказує кількість рядків, після чого послідовно їх вводить. Кожний рядок складається з одного або більше арифметичних виразів виду «число арифметична_операція число;», включаючи тільки пробіли, цифри, символи арифметичних операцій та крапки з комами. Вирази відділені одне від одного крапками з комою. Арифметичні операції включають: додавання (+), віднімання (-), множення (*), ділення (/). Розглядаються тільки натуральні числа. Обчислити значення кожного виразу та вивести їх такими самими рядками («число арифметична_операція число = результат;»).

1.2.2.3 Завдання для варіанта № 3:

7

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

б) Відомо, що у заданому тексті можуть зустрічатися дужки, а всередині однієї пари дужок інших дужок немає.

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

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

1.2.2.4 Завдання для варіанта № 4:

а) Масив A [N × M ] містить дійсні числа та задається користувачем з клавіатури разом з розмірністю. Користувач задає ціле число k. Необхідно обчислити суму елементів a[i][ j] таких, що для них виконується умова i + j = k . Якщо таке рішення не може бути знайдено, то вивести на екран відповідне повідомлення.

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

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

Дії з шифрування та дешифрування виконувати над останнім введеним користувачем повідомленням.

1.2.2.5 Завдання для варіанта № 5:

8

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

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

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

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

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

Розробити програму, яка дозволяє перетворити символи англійської розкладки на символи української розкладки та навпаки (напри-

клад, “vfvf” на “ мама”).

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

1.2.2.6 Завдання для варіанта № 6:

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

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

9

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

Передбачити вилучення з цілої частини зайвих нулів. Зайвими вважати нулі, розташовані на початку числа (0010 перетворити на 10).

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

1.2.2.7 Завдання для варіанта № 7:

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

б) Розв’язати біквадратне рівняння f (x) = 0 та виконати перевірку отриманого рішення. Функція f (x) задається під час роботи про-

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

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

1.2.2.8 Завдання для варіанта № 8:

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

10

б) Паліндромом вважається будь-який набір символів, симетричний відносно своєї середини.

Рядок задається користувачем з клавіатури або програмно (якщо користувач ввів порожній рядок).

Даний рядок перетворити на паліндром двома способами, дозволивши користувачу вибрати один з них:

довжина утвореного рядка, який є паліндромом, повинна бути мінімальною;

вивести на екран всі паліндроми, які можна утворити з даного

рядка.

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

1.2.2.9 Завдання для варіанта № 9:

а) Шахівниця розглядається у вигляді квадратного символьного масиву розміром 8x8. З клавіатури вводяться натуральні числа v1 та g1, що позначають номери вертикалі (за рахунком зліва направо) та горизонталі (за рахунком знизу вгору) для поля, на якому стоїть біла шахова фігура, та числа v2 та g2, що позначають відповідні координати другої, чорно фігури. Визначити поля, на які може піти перша фігура таким чином, щоб не потрапити під удар другої. Передбачити можливість введення даних про такі фігури: тура, ферзь, кінь. Тип фігури задається користувачем відповідно літерами: Т, Ф, К.

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

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

б) Користувач вводить текст програми мовою програмування С++ з клавіатури. Програма повинна дозволяти виділяти цикли з заданого тексту (for, while, do while), виводячи їх повністю (разом з тілом циклу).

1.2.2.10 Завдання для варіанта № 10:

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