Використання структур у програмах

Прокрутити вниз

Використання структур у програмах практичні уроки з програмування С++

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++. Використання структур у програмах практичні уроки з програмування С++

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert