Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Ч2(программирование).doc
Скачиваний:
51
Добавлен:
01.03.2016
Размер:
1.49 Mб
Скачать
      1. Масивиструктур

Із структур однакового тегу може бути створений масив, точно так само як з даних інших типів. Наприклад, якщо ми хочемо мати результати атестації для всіх студентів, можна створити масив, що містить дані про кожного студента у вигляді структури і частково його проініціалізувати:

#define FIO_SIZE 15

#define GR_SIZE 7

#define AR_SIZE 30

struct stud {char fio[FIO_SIZE];

char gr[GR_SIZE];

float srBall;

int nzd;

};

stud ar[AR_SIZE]={

{"Чуб П.П.","КС051", 4.55, 0},

{"Гай А.Л.","КС052", 1.55, 3},

{"Кит А.В.","КС051", 2.45, 1},

{"Кiт С.В.","КС052", 1.25, 3},

{"Бут К.Л.","КС052", 4.65, 0}

};

int size=5;

При зверненні до елементу масиву структур також використовуються індекси та квадратні дужки. При цьому слід враховувати, що елементом масиву є структура і, тому, квадратні дужки ставляться після імені масиву, а потім, через крапку, записується ім'я поля.

Наприклад, вище наведений масив можна доповнити ще однією структурою.

ar[size].fio =’Петренко А,П,’;

ar[size].gr = ‘КС041’;

ar[size].srBall = ‘3.2’;

ar[size].nzd = 1;

Якщо полем структури є масив, то у зверненні до елементу масиву квадратні дужки вже будуть після імені поля. Так, наприклад, якщо ми хочемо у вищенаведеному масиві структур змінити прізвище студента «Гай» на «Гак», то слід написати так:

ar[1].fio[2] = 'к';

      1. Введення-виведення структур

При організації вводу-виводу варто мати на увазі, що безпосередньо структуру ввести або вивести, без використання спеціально написаних процедур, не можна. Можна вводити або виводити окремі поля структури, або елементи полів, якщо поля є теж структурами.

Введення і виведення структур схоже на введення та виведення матриць, але різниця тут у тому, що стовпчики можуть мати різні типи, і доступ до елементів різних стовпців проводиться не за індексом, а за назвою.

      1. Сортування масивів структур

Сортування масиву структур проводиться так само, як і сортування масиву чисел, тобто структури порівнюються і, якщо необхідно, переставляються. Єдина проблема тут полягає в тому, що способів порівняння записів, а, отже, і варіантів сортування, може бути багато, і кожен з них може знадобитися. Так для масиву, розглянутого в попередньому прикладі, записи можна сортувати за прізвищем студента або за середнім балом, за кількістю незадовільних оцінок і т.д. Більш того, можливі і складніші випадки сортування, наприклад, по групі, а в межах однієї групи на прізвище студента. У такій ситуації доводиться для кожного варіанту сортування писати функції сортування, які будуть відрізнятися тільки способом порівняння структур.

Створення проекту «Результати атестації»

У цьому проекті ми будемо працювати з масивом, що містить результати атестації студентів. Кожен елемент масиву буде зберігати запис, полями якої будуть прізвище студента з ініціалами, найменування групи, в якій навчається студент, середній бал і кількість незадовільних оцінок у студента.

Потрібно забезпечити введення потрібної кількості даних до масиву структур, сортування масиву за різними правилами та виведення результатів обробки масиву.

У проекті буде реалізовано такі процедури обробки даних.

  • комплексне сортування по групі + прізвище студента.

  • комплексне сортування за кількістю незадовільних оцінок ↓ + та середньому балу ↑.

  • вибірка студентів, які мають середній бал вище заданого.

  • підрахунок загального числа студентів, що мають більш 2-х незадовільних оцінок.

Даний проект може слугувати прикладом того, як виконати завдання для самостійної роботи.