
Використання структур у програмах
Використання структур у програмах практичні уроки з програмування С++
1. Повторимо, що таке структура (struct
)
📌 Структура (struct
) — це спеціальний тип даних у C++, який дозволяє зберігати кілька змінних різних типів в одному об’єкті.
🔹 Приклад структури для збереження даних про студента:
#include <iostream>
using namespace std;
struct Student {
string name;
int age;
double averageGrade;
};
int main() {
Student student1 = {"Андрій", 16, 9.5};
cout << "Ім'я: " << student1.name << endl;
cout << "Вік: " << student1.age << endl;
cout << "Середній бал: " << student1.averageGrade << endl;
return 0;
}
✅ Що тут відбувається?
- Ми створили структуру
Student
з трьома полями. - Оголосили змінну
student1
і записали в неї дані. - Вивели значення кожного поля на екран.
2. Передача структур у функції
Структуру можна передавати у функцію двома способами:
- Передача за значенням – створюється копія структури.
- Передача за посиланням (
&
) – змінює оригінальний об’єкт.
🔹 Передача структури за значенням
#include <iostream>
using namespace std;
struct Student {
string name;
int age;
double averageGrade;
};
// Функція отримує копію структури
void printStudent(Student s) {
cout << "Ім'я: " << s.name << ", Вік: " << s.age << ", Бал: " << s.averageGrade << endl;
}
int main() {
Student student1 = {"Оля", 15, 8.7};
printStudent(student1); // Передаємо копію структури
return 0;
}
✅ Результат:
Ім'я: Оля, Вік: 15, Бал: 8.7
📌 Недолік: Якщо структура велика, копіювання займає багато пам’яті.
🔹 Передача структури за посиланням (&
)
#include <iostream>
using namespace std;
struct Student {
string name;
int age;
double averageGrade;
};
// Функція змінює структуру
void changeStudent(Student &s) {
s.age += 1; // Збільшуємо вік
}
int main() {
Student student1 = {"Максим", 14, 8.5};
cout << "До зміни: " << student1.age << " років" << endl;
changeStudent(student1); // Передаємо за посиланням
cout << "Після зміни: " << student1.age << " років" << endl;
return 0;
}
✅ Результат:
До зміни: 14 років
Після зміни: 15 років
📌 Перевага: Передача за посиланням економить пам’ять і дозволяє змінювати оригінальний об’єкт.
3. Масив структур
Якщо потрібно зберігати дані про кілька об’єктів (наприклад, студентів), можна використовувати масив структур.
🔹 Приклад програми з масивом структур:
#include <iostream>
using namespace std;
struct Student {
string name;
int age;
double averageGrade;
};
int main() {
Student students[3]; // Масив з 3 студентів
// Введення даних
for (int i = 0; i < 3; i++) {
cout << "Введіть ім'я студента " << i + 1 << ": ";
cin >> students[i].name;
cout << "Введіть вік: ";
cin >> students[i].age;
cout << "Введіть середній бал: ";
cin >> students[i].averageGrade;
}
// Виведення даних
cout << "\nСписок студентів:\n";
for (int i = 0; i < 3; i++) {
cout << students[i].name << " - " << students[i].age << " років, середній бал: " << students[i].averageGrade << endl;
}
return 0;
}
✅ Програма запитує у користувача дані про 3 студентів і виводить їх.
4. Використання структур у складних програмах
Структура всередині структури
Структури можна вкладати одна в одну.
🔹 Приклад:
#include <iostream>
using namespace std;
struct Address {
string city;
string street;
int houseNumber;
};
struct Person {
string name;
int age;
Address address; // Використовуємо структуру Address
};
int main() {
Person person1 = {"Олег", 17, {"Київ", "Шевченка", 10}};
cout << "Ім'я: " << person1.name << endl;
cout << "Вік: " << person1.age << endl;
cout << "Адреса: " << person1.address.city << ", вул. " << person1.address.street << ", буд. " << person1.address.houseNumber << endl;
return 0;
}
✅ Результат:
Ім'я: Олег
Вік: 17
Адреса: Київ, вул. Шевченка, буд. 10
5. Практичні завдання
Завдання 1:
Створи програму, яка зберігає дані про автомобіль (марка, рік випуску, ціна) та виводить їх на екран.
Завдання 2:
Напиши програму, яка приймає від користувача інформацію про 5 товарів (назва, ціна, кількість) і виводить список товарів.
Завдання 3:
Розроби програму, яка запитує у користувача 3 книги (назва, автор, рік видання) та показує список книг.
📝 Підсумок уроку
✅ Структури дозволяють групувати дані різних типів.
✅ Структури можна передавати у функції за значенням або за посиланням.
✅ Масив структур дозволяє зберігати дані про кілька об’єктів.
✅ Структури можна вкладати одна в одну.
🚀 Наступний урок: Робота з файлами у C++. Використання структур у програмах практичні уроки з програмування С++