Лабораторна робота № 10. Структури
Рекомендації до виконання лабораторної роботи
ü Структури використовуються для логічного об’єднання зв’язаних між собою даних різного типу.
ü Після опису структури ставиться крапка з комою.
ü Після створення ім’я структури є іменем нового структурованого типу, який можна застосовувати в програмі для опису об’єктів з однаковою внутрішньою будовою.
ü Для звернення до полів структури використовують операцію вибору «крапка» при зверненні через ім’я об’єкта структури і «->» при зверненні через вказівник.
ü Однотипні структури можна об’єднувати у масиви.
ü Структури одного типу можна присвоювати одна одній.
ü Ввід/вивід структур виконується поелементно.
Варіанти індивідуальних завдань
Варіант 10.1. Опишіть структуру з іменем Student, яка б містила наступні поля:
§ ПІБ;
§ Номер групи;
§ Успішність (середній бал).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти структур типу Student (3 бали);
- впорядкування записів у масиві за зменшенням середнього балу (+1 бал).
- виведення на дисплей ПІБ і номери груп для всіх студентів, середній бал яких більший за 4.0. Якщо таких студентів немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.2. Опишіть структуру з іменем Student, яка б містила наступні поля:
§ ПІБ;
§ Номер групи;
§ Успішність (масив з п’яти елементів).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти структур типу Student (3 бали);
- впорядкування записів у масиві за зростанням середнього балу (+1 бал).
- виведення на дисплей ПІБ і номерів груп для всіх студентів, які одержують стипендію. Якщо таких студентів немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.3. Опишіть структуру з іменем Student, яка б містила наступні поля:
§ ПІБ;
§ Номер групи;
§ Кількість пропусків.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти структур типу Student (3 бали);
- впорядкування записів у масиві за зменшенням номеру групи (+1 бал).
- виведення на дисплей ПІБ і номерів груп для всіх студентів, кількість пропусків яких більша за 20. Якщо таких студентів немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.4. Створіть структуру з іменем Student, яка б містила наступні поля:
§ ПІБ;
§ Номер групи;
§ Рік народження.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти структур типу Student (3 бали);
- впорядкування записів у масиві за зростанням номеру групи (+1 бал).
- виведення на дисплей ПІБ і номерів груп для всіх студентів одного року народження. Якщо таких студентів немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.5. Створіть структуру з іменем Aeroflot, яка б містила наступні поля:
§ Назву пункту призначення;
§ Номер рейсу;
§ Тип літака.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з п’яти елементів типу Aeroflot (3 бали);
- впорядкування записів у масиві за зростанням номеру рейсу (+1 бал).
- виведення на екран номерів рейсів і типів літаків, що вилітають у пункт призначення, назва якого вводиться з клавіатури (+1 бал).
Варіант 10.6. Створіть структуру з іменем Aeroflot, яка б містила наступні поля:
§ Назву пункту призначення;
§ Номер рейсу;
§ Тип літака.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з п’яти елементів типу Aeroflot (3 бали);
- впорядкування записів у масиві за спаданням номеру рейсу (+1 бал).
- виведення на екран пунктів призначення і номерів рейсів, які обслуговують літаки типу, введеного з клавіатури (+1 бал).
Варіант 10.7. Створіть структуру з іменем Worker, яка б містила наступні поля:
§ ПІБ робітника;
§ посада;
§ посадовий оклад;
§ рік прийняття на роботу.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти структур типу Worker (3 бали);
- впорядкування записів у масиві за зростанням посадового окладу (+1 бал).
- виведення на екран ПІБ робітників, стаж роботи яких перевищує значення введене з клавіатури. Якщо таких робітників немає – повідомити про це (+1 бал).
Варіант 10.8. Створіть структуру з іменем Train, яка б містила наступні поля:
§ Назву пункту призначення;
§ Номер потягу;
§ Час відправлення.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з восьми елементів типу Train (3 бали);
- впорядкування записів у масиві за зростанням номеру потягу (+1 бал).
- виведення на екран інформації про потяги, які відбувають до зазначеного часу. Якщо таких потягів немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.9. Створіть структуру з іменем Train, яка б містила наступні поля:
§ Назву пункту призначення;
§ Номер потягу;
§ Час відправлення (змінна дійсного типу, e.g. 18.30).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з восьми елементів типу Train (3 бали);
- впорядкування записів у масиві за зростанням часу відправлення потягів (+1 бал).
- виведення на екран інформації про потяги, які прямують до міста, назва якого вводиться з клавіатури (+1 бал). Якщо таких потягів немає – вивести відповідне повідомлення.
Варіант 10.10. Створіть структуру з іменем Zodiak, яка б містила наступні поля:
§ Прізвище та ім’я;
§ Знак Зодіаку;
§ Дата народження (масив з трьох чисел).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з восьми елементів типу Zodiak (3 бали);
- впорядкування записів у масиві за зростанням року народження (+1 бал).
- виведення на екран інформації про людину, прізвище якої вводиться з клавіатури. Якщо такої немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.11. Створіть структуру з іменем Zodiak, яка б містила наступні поля:
§ Прізвище і ім’я;
§ Знак Зодіаку;
§ Дата народження (масив з трьох чисел).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з восьми елементів типу Zodiak (3 бали);
- впорядкування записів у масиві за місяцем народження (+1 бал)
- виведення на екран інформації про людей, народжених у місяць, номер якого вводиться з клавіатури. Якщо таких немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.12. Створіть структуру з іменем Computer, яка б містила наступні поля:
§ Тип процесора;
§ Тактова частота процесора;
§ Обсяг жорсткого диску.
§ Ціна в у.о.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Computer (3 бали);
- впорядкування записів у масиві за зростанням ціни (+1 бал).
- виведення на екран даних про всі комп’ютери, що працюють на базі процесора, тип якого вводиться з клавіатури. Якщо таких немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.13. Створіть структуру з іменем Price, яка б містила наступні поля:
§ Назва товару;
§ Назва фірми-виробника;
§ Вартість товару в грн.
§ Розміри (масив з п’яти елементів, наприклад: size[5]={37, 38, 39, 40, 41}; ).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з восьми елементів типу Price (3 бали);
- впорядкування записів у масиві за спаданням вартості товарів (+1 бали).
- виведення на екран інформації про товар, назва і розмір якого вводиться з клавіатури. Якщо такого немає – вивести відповідне повідомлення (+1 бал).
Варіант 10.14. Створіть структуру з іменем Price, яка б містила наступні поля:
§ Назва товару;
§ Назва магазину, в якому продається товар;
§ Вартість товару в грн.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з восьми елементів типу Price (3 бали);
- виведення на екран даних про товари, вартість яких знаходиться в межах, введених з клавіатури. Якщо таких товарів немає – вивести відповідне повідомлення (+1 бал).
- для всіх товарів одного з магазинів організувати 20% знижку їх вартості (+1 бал).
Варіант 10.15. Створіть структуру з іменем Computer, яка б містила наступні поля:
§ Назву процесора;
§ Тактову частоту процесора;
§ Обсяг жорсткого диску;
§ Ціна в у.о.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Computer (3 бали);
- впорядкування записів в масиві за зростанням тактової частоти (+1 бал).
- виведення на екран даних про всі комп’ютери, які б влаштовували студента кафедри КСМ з точки зору ціни та потужності (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.16. Створіть структуру з іменем Abiturient, яка б містила наступні поля:
§ прізвище, ім’я, по-батькові;
§ рік народження;
§ оцінки за вступні іспити (3);
§ середній бал атестата.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Abiturient (3 бали);
- впорядкування записів у масиві за прізвищем абітурієнта (+1 бал);
- виведення на екран даних про всіх абітурієнтів, середній бал яких перевищує 4 (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.17. Створіть структуру Country (країна), яка б містила наступні поля:
§ назва;
§ столиця;
§ чисельність населення;
§ площа.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Country (3 бали);
- впорядкування записів у масиві за зростанням площі країни (+1 бал);
- виведення на екран даних про всі країни чисельність населення у яких не менше деякої заданої величини (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.18. Створіть структуру Restaurant, яка б містила наступні поля:
§ назва;
§ адреса;
§ номер телефону;
§ кількість посадочних місць.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Restaurant (3 бали);
- впорядкування записів у масиві за назвою (+1 бал).
- виведення на екран даних про всі ресторани, що знаходяться на деякій вулиці (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.19. Створіть структуру Book, яка б містила наступні поля:
§ назва;
§ автор(и);
§ видавництво;
§ рік видання.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Book (3 бали);
- впорядкування записів у масиві за автором (+1 бал);
- виведення на екран даних про всі книжки видавництва “Питер”(+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.20. Створіть структуру СD, яка б містила наступні поля:
§ назва диску;
§ тип інформації (наприклад, фільм, програмне забезпечення, гра, тощо);
§ обсяг;
§ ціна.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу CD (3 бали);
- впорядкування записів у масиві за назвою (+1 бал);
- виведення на екран даних про всі диски з фільмами (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.21. Створіть структуру MusicCD, яка б містила наступні поля:
§ назва;
§ виконавець;
§ формат;
§ тривалість.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу MusicCD (3 бали);
- впорядкування записів у масиві за виконавцем (+1 бал);
- виведення на екран даних про всі диски формату MP3 (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.22. Створіть структуру Footballteam", яка б містила наступні поля:
§ назва;
§ місто;
§ капітан;
§ кількість набраних балів.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Footballteam (3 бали);
- впорядкування записів у масиві за назвою (+1 бал);
- виведення на екран даних про всі команди, які набрали однакову кількість балів (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.23. Створіть структуру Auto, яка б містила наступні поля:
§ марка автомобіля;
§ ціна;
§ колір;
§ рік випуску.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Auto (3 бали);
- впорядкування записів у масиві за назвою (+1 бал);
- виведення на екран даних про всі автомобілі червоного кольору, які були випущені після 1998 року(+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.24. Створіть структуру Film, яка б містила наступні поля:
§ назва;
§ виконавець головної ролі;
§ рік випуску;
§ жанр (мелодрама, детектив, трилер, комедія тощо).
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Film (3 бали);
- впорядкування записів у масиві за роком випуску (+1 бал);
- виведення на екран даних про всі фільми, у яких зіграв однин і той самий актор (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.25. Створіть структуру SportClub, яка б містила наступні поля:
§ назва;
§ вид спорту (наприклад, бокс, аеробіка, плавання тощо);
§ кількість занять на тиждень;
§ оплата за місяць.
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу SportClub (3 бали);
- впорядкування записів у масиві за назвою (+1 бал);
- виведення на екран даних про всі спортивні клуби, вартість занять в яких на місяць не перевищує 60 грн. (+1 бал), та вирахувати вартість за окреме заняття.
Варіант 10.26. Створіть структуру Monitor (староста) , яка б містила наступні поля:
§ прізвище, ім’я по-батькові студента;
§ номер групи;
§ загальна кількість пропусків;
§ кількість пропусків з поважних причин;
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Monitor (3 бали);
- впорядкування записів у масиві за прізвищем (+1 бал).
- виведення на екран даних про всіх студентів певної групи, які без поважних причин пропустили 30 або більше годин занять (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.27. Створіть структуру State (Держава), яка б містила наступні поля:
§ назва;
§ державна мова;
§ грошова одиниця;
§ континент (наприклад, Європа, Азія тощо);
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу State (3 бали);
- впорядкування записів у масиві за назвою (+1 бал);
- виведення на екран даних про країни, що знаходяться на одному континенті, державна мова яких - однакова (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.28. Створіть структуру Enterprise (підприємство) , яка б містила наступні поля:
§ назва;
§ країна;
§ вид діяльності;
§ річний прибуток;
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Enterprise (3 бали);
- впорядкування записів у масиві за спаданням річного прибутку (+1 бал).
- виведення на екран даних про всі підприємства легкої промисловості України (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.29. Створіть структуру Appliance (побутова техніка) , яка б містила наступні поля:
§ назва продукції (наприклад, холодильник, фен, телевізор);
§ фірма-виробник;
§ потужність, яка споживається;
§ ціна;
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Appliance (3 бали);
- впорядкування записів у масиві за назвою (+1 бал);
- виведення на екран даних про всі товари певної фірми, вартість, яких не перевищує заданої суми. Вам надається кредит на рік. Чому дорівнює сума щомісячного внеску за цей товар.
Варіант 10.30. Створіть структуру Photo, по оформленню замовлень на друк фотографій, яка б містила наступні поля:
§ прізвище клієнта;
§ кількість фотографій на друк;
§ формат друку;
§ сума до сплати;
Напишіть програму, яка б виконувала наступні дії:
- введення з клавіатури даних в масив, що складається з десяти елементів типу Photo (3 бали);
- впорядкування записів у масиві за прізвищем клієнта (+1 бал);
- виведення на екран даних про замовлення, кількість фотографій у яких рівна або більша за 36. При цьому вартість замовлення зменшується на 10 %. Слід також врахувати формат друку фотографій, кожен з яких характеризується своєю ціною (+1 бал).