Що таке структура (struct)?

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

Структура (struct) в С++ практичні індивідуальні заняття з програмування

1. Що таке структура (struct)?

📌 Структура (struct) — це спеціальний тип даних, який дозволяє об’єднати кілька змінних різних типів в один об’єкт.

Навіщо потрібні структури?

  • Зручно групувати дані (наприклад, інформацію про студента: ім’я, вік, середній бал).
  • Легше працювати з великими об’єктами (наприклад, даними про автомобіль або гравця в грі).

2. Оголошення структури

🔹 Синтаксис:

struct Назва_структури {
    тип змінна1;
    тип змінна2;
    ...
};

📌 Приклад: Створимо структуру для зберігання даних про студента:

#include <iostream>
using namespace std;

// Оголошуємо структуру Student
struct Student {
    string name;
    int age;
    double averageGrade;
};

int main() {
    // Створюємо змінну типу Student
    Student student1 = {"Андрій", 16, 9.5};

    // Виводимо дані
    cout << "Ім'я: " << student1.name << endl;
    cout << "Вік: " << student1.age << endl;
    cout << "Середній бал: " << student1.averageGrade << endl;

    return 0;
}

Результат:

Ім'я: Андрій  
Вік: 16  
Середній бал: 9.5  

📌 Що тут відбувається?

  • Ми створили структуру Student, яка має три поля: name (рядок), age (ціле число), averageGrade (число з плаваючою комою).
  • Оголосили змінну student1 і записали в неї дані.
  • Вивели значення кожного поля на екран.

3. Доступ до полів структури

Якщо у нас є структура, ми можемо отримати доступ до її полів через оператор . (крапка).

cout << "Ім'я студента: " << student1.name << endl;
student1.age = 17;  // Змінюємо значення

4. Введення даних у структуру

Якщо ми хочемо, щоб користувач ввів дані вручну, можемо зробити це через cin:

#include <iostream>
using namespace std;

struct Student {
    string name;
    int age;
    double averageGrade;
};

int main() {
    Student student1;

    // Введення даних
    cout << "Введіть ім'я студента: ";
    cin >> student1.name;
    cout << "Введіть вік студента: ";
    cin >> student1.age;
    cout << "Введіть середній бал студента: ";
    cin >> student1.averageGrade;

    // Виведення даних
    cout << "Ім'я: " << student1.name << ", Вік: " << student1.age << ", Середній бал: " << student1.averageGrade << endl;

    return 0;
}

Приклад введення:

Введіть ім'я студента: Олег  
Введіть вік студента: 15  
Введіть середній бал студента: 8.7  

Результат:

Ім'я: Олег, Вік: 15, Середній бал: 8.7  

📌 Зверни увагу! Якщо ти використовуєш cin >> name;, програма зчитує тільки одне слово. Якщо потрібно ввести повне ім’я, використовуй getline(cin, student1.name);.

5. Масив структур

Якщо потрібно зберігати дані для кількох студентів, можна використовувати масив структур:

#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 студентів і виведе її.

6. Структура як аргумент функції

Структуру можна передавати у функції, щоб працювати з даними.

#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 = {"Марія", 17, 9.8};
    printStudent(student1);  // Виклик функції

    return 0;
}

Результат:

Ім'я: Марія, Вік: 17, Середній бал: 9.8  

📌 Функція printStudent() приймає структуру Student і виводить її поля.

7. Практичні завдання

Завдання 1:

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

Завдання 2:

Напиши програму, яка приймає від користувача інформацію про 5 товарів (назва, ціна, кількість) і виводить список товарів.

Завдання 3:

Розроби програму, яка запитує у користувача 3 книги (назва, автор, рік видання) та показує список книг.

📝 Підсумок уроку

Структура (struct) дозволяє зберігати дані різних типів в одному об’єкті.
✅ Поля структури доступні через . (крапку).
✅ Структури можна використовувати в масивах та передавати у функції.

🚀 Наступний урок: Робота з файлами у C++. Структура (struct) в С++ практичні індивідуальні заняття з програмування

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