- •Обчислювальна техніка та алгоритмічні мови Методичні вказівки до лабораторних робіт
- •Загальні відомості
- •Структура програми
- •Типи даних
- •Умовний оператор if-else
- •Оператор вибору switch
- •Оператори циклу
- •Алгоритм обчислення ряду
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота 3. «Функції. Форматне введення-виведення даних»(2 год.)
- •Теоретичні відомості
- •Ступеневі ряди
- •Форматне виведення даних в с
- •Форматне введення в с
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота 4.«Одновимірні масиви.Покажчики. Рядки»(4 год.)
- •Теоретичні відомості Масиви й покажчики
- •Записи «покажчик-зсув» і «покажчик-індекс»
- •Рядки як одновимірні масиви
- •Передача рядка у функцію
- •Введення/виведення символів і рядків
- •Бібліотечні функції для роботи з символами та рядками
- •Постановка задачі
- •Варіанти
- •Передача масиву у функцію
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота6. «Динамічні одновимірні масиви»(2 год.)
- •Теоретичні відомості Динамічні масиви
- •Видалення елемента із масиву
- •Вставка елемента в масив
- •Перестановка двох елементів
- •Циклічна перестановка елементів
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Лабораторна робота7. "Структури: складені типи даних"(2 год.)
- •Теоретичні відомості
- •Постановка задачі
- •Варіанти
- •Методичні вказівки
- •Література
Методичні вказівки
При складанні програми використовуються динамічні масиви.
Всі відсутні параметри й режими роботи програми задаються користувачем.
Після виконання кожного пункту завдання організувати виведення масиву.
Зміст звіту
Звіт з виконаної роботи включає наступні розділи:титульний лист, постановка задачі, варіант завдання, текст програми, скріншот з результатами роботи програми, висновки.
Лабораторна робота7. "Структури: складені типи даних"(2 год.)
Ціль роботи: Освоєння прийомів роботи із структурами й складання програм, що дозволяють уводити дані в структуру й виводити їх на екран, змінювати й обробляти дані, записані в структуру.
Теоретичні відомості
Структури – це складені типи даних, які побудовані з використанням інших типів. Наприклад,
struct person {
char name[100];
int age; };
де struct – службове слово; person – ім'я (ідентифікатор, тег) структури; name і age – два елементи, що становлять структуру (масив змінних char і ціле число). Оголошення структури повинне закінчуватися крапкою з комою.
Змінні структури оголошуються так само, як змінні інших типів, наприклад,
person fath, ladies[5], *Pfath;
тут ladies[5] – масив структур, *Pfath – покажчик на структуру типу person.
Доступ до елементів структури здійснюється операцією . (крапка) для імені структури й -> (стрілка) – для покажчика на структуру, наприклад:
fath.age=12;
ladies[3].age=27;
cout<<fath.name;
cout<< ladies[3].age;
cout<<Pfath->name;
Вираз Pfath->name еквівалентний виразу (*Pfath).name, що розіменовує покажчик і робить доступним елемент через операцію «крапка».
Після визначення структури можна оголосити масив структур. Наприклад, щоб оголосити масив з 30 елементів типу name_struct, досить записати:
name_struct elem[30];
Для одержання доступу до конкретного елемента масиву структур потрібно проіндексувати ім'я структури.
Постановка задачі
Скласти програму, що створює масив структур і дозволяє вводити дані в масив, виводити дані на екран і виконувати інші дії. Управління структурами повинне здійснюватися за допомогою меню. У меню присутні опції:
– введення дани,
– виведення даних,
– вихід із програми,
а також додаткові опції, зазначені у варіанті завдання (див. наступний розділ).
Варіанти
№ |
Структура (поля) |
Додаткові опції меню (наступні операції) |
1 |
"Абітурієнт" (прізвище, ім'я, рік народження, оцінки вступних іспитів (5 ісп.)) |
- Пошук за прізвищем ( –> введення прізвища –> виведення даних по абітурієнту, а також середнього бала й результату «прийнято/не прийнято») |
2 |
"Абітурієнт" (прізвище, ім'я, рік народження, оцінки вступних іспитів (3 ісп.)) |
- Пошук за роком народження (–> введення року –> виведення знайдених записів) |
3 |
"Абітурієнт" (прізвище, ім'я, рік народження, оцінки вступних іспитів (3 ісп.)) |
- Зміна даних (–> введення прізвища –> введення нових даних) |
4 |
"Абітурієнт" (прізвище, ім'я, рік народження, оцінки вступних іспитів (3 ісп.)) |
- Фільтрація за роком народження (–> введення року –> виведення знайдених записів) |
5 |
"Студент" (прізвище, ім'я, номер групи, середній бал сесії) |
(–>виведення даних) |
6 |
"Студент" (прізвище, ім'я, номер групи, оцінки іспитів) |
(–>виведення даних) |
7 |
"Студент" (прізвище, ім'я, номер групи, середній бал сесії) |
(–>виведення прізвищ і номерів груп) |
8 |
"Студент" (прізвище, ім'я, номер групи, оцінки іспитів) |
- Студенти з оцінками 4 і 5 (–>виведення прізвищ і номерів груп, а також кількості таких студентів) |
9 |
"Студент" (прізвище, ім'я, номер групи, оцінки іспитів) |
- Студенти з оцінками 2 (–> виведення прізвищ) - Кількість «двієчників» у кожній групі |
10 |
"Співробітник" (прізвище, ініціали, посада, стаж роботи, оклад) |
- Додати співробітника |
11 |
"Співробітник" (прізвище, ініціали, посада, стаж роботи, оклад) |
- Співробітники зі стажем більше…(–>введення числа із клавіатури –> виведення прізвищ співробітників) |
12 |
"Співробітник" (прізвище, ініціали, посада, стаж роботи, оклад) |
- Виведення даних (поля структури, а також виплачена сума: оклад за винятком податку 20%) - Змінити дані (-> запит на введення прізвища -> введення нових даних) |
13 |
"Співробітник" (прізвище, ініціали, посада, стаж роботи, оклад) |
- Співробітники з окладом в інтервалі… (–>введення границь діапазону –> виведення прізвищ співробітників) |
14 |
"Поїзд" (пункт призначення, номер поїзда, час відправлення) |
- Поїзда після…(–>введення часу –> виведення поїздів, що відправляються пізніше уведеного часу) |
15 |
"Поїзд" (пункт призначення, номер поїзда, час відправлення) |
- Пункт призначення …(–> введення назви пункту –> виведення інформації про поїзди в даний пункт) |
16 |
"Поїзд" (пункт призначення, номер поїзда, час відправлення) |
- Номер поїзда …(–> введення номера поїзда –> виведення інформації про поїзд) |
17 |
"Поїзд" (пункт призначення, номер поїзда, час відправлення) |
- Зміна в розкладі (–> введення номера поїзда –> введення нового часу відправлення) |
18 |
"Поїзд" (пункт призначення, номер поїзда, час відправлення) |
- Зміна в розкладі (–> введення номера поїзда –> введення нового пункту призначення) |
19 |
"Блокнот" (прізвище, ім'я, телефон, день народження) |
- Пошук телефону (–> введення прізвища –> виведення номера телефону) |
20 |
"Блокнот" (прізвище, ім'я, телефон, день народження) |
- У кого сьогодні день народження? (–> введення поточної дати –> виведення прізвищ персон із зазначеною датою народження) |
21 |
"Блокнот" (прізвище, ім'я, телефон, день народження) |
- Змінити номер телефону (–> введення прізвища –> введення нового номера) |
22 |
"Накладна" (назва товару, ціна, кількість, вартість) |
- Введення даних (товар, ціна, кількість) - Виведення даних (товар, ціна, кількість, вартість) - Загальна сума |
23 |
"Накладна" (назва товару, ціна, кількість, вартість) |
- Введення даних (товар, ціна, кількість) - Виведення даних (товар, ціна, кількість, вартість) - Додати товар |
24 |
"Накладна" (назва товару, ціна, кількість, вартість) |
- Введення даних (товар, ціна, кількість) - Виведення даних (товар, ціна, кількість, вартість) - Внести зміни ((-> введення назви товару -> введення нових дані) |
