
- •Теоретичні відомості загальні поняття
- •Struct { список визначень }
- •Об'єднання (суміші)
- •Int vozrast;
- •Int telefon; } inform;
- •Поля бітів
- •Змінні із змінною структурою
- •Int type; /* ознака компоненту */
- •Int no_children;
- •Порядок виконання роботи
- •Приклад виконання завдання
- •1. Розробка алгоритму розв’язку.
- •2. Визначення змінних програми
- •Int cnt; /* кількість ченців */
- •3. Розробка тексту програми
- •4. Відлагодження програми
- •5. Результати роботи програми
- •Варіанти завдань
Int no_children;
} marriage_info;
/* розлучений */
char date_divorced[8];
} marital_info;
} health_record;
enum marital_status { SINGLE, /* неодружений */
MARRIGO, /* одружений */
DIVOREED /* розлучений */
} ;
Звертатися до компонентів структури можна за допомогою посилань:
helth_record.neme,
helth_record.ins,
helth_record.marriage_info.marriage_date .
Порядок виконання роботи
В процесі самостійної роботи:
Вибрати варіант для індивідуального завдання з таблиці N відповідно до свого номера по підгрупі.
Написати програму для свого індивідуального завдання.
Написати звіт по лабораторній роботі.
В навчальній лабораторії:
Здати допуск по лабораторній роботі викладачу.
Ввести свою програму в ПК.
Відлагодити програму і одержати контрольні результати.
Порівняти одержані результати з результатами трасування.
Зміст звіту
Звіт по лабораторній роботі повинен містити:
Титульний лист.
Варіант індивідуального завдання.
Текст програми.
Трасування роботи програми.
Приклад виконання завдання
1. Розробка алгоритму розв’язку.
Алгоритм розв’язку, приведений на малюнку є типовим алгоритмом обробки масиву, елементами якого є описи монастирів.
Алгоритм починається з введення значень елементів цього масиву. Введення відбувається в циклі з лічильником n, який змінюється від 0 до 9 (блок 2), але як ми побачимо нижче, вихід з циклу може відбутися і до того, як лічильник досягне останнього значення. У кожній ітерації циклу виводиться запрошення (блок 3) і вводяться значення складових частин опису монастиря (блоки 4, 6, 7, 8). Але зразу ж після введення першої складової - назви - перевіряється її значення (блок 5). Якщо введена назва "***", то подальшого введення не відбувається, а відразу виконується вихід з циклу. У будь-якому випадку після виходу в змінній n залишається кількість введених елементів. Таким чином, програма може обробляти масив з 10 або менше елементів - скільки їх було введено. Ознакою кінця введення є назва "***".
Далі друкуємо заголовок таблиці (блок 9) і в циклі (блоки 10, 11) - рядки таблиці з даними. Оскільки параметр цього циклу змінюється від 0 до n-1, буде надруковано n рядків.
Наступний складний цикл реалізує сортування таблиці по алгоритму простої обмінної вибірки. Сортування виконується за допомогою вкладеного циклу (блок 12). У першій ітерації зовнішнього циклу виконується пошук елементу масиву з мінімальним значенням поля name. Для цього спочатку мінімальним елементом вважається перший елемент (блок 13). Потім в циклі (блок 14) переглядається решта елементів масиву, і кожен порівнюється з мінімальним (блок 15). Якщо поле name чергового елементу менше, ніж мінімального, то тепер цей елемент вважається мінімальним (блок 16). Індекс мінімального елементу записується в змінну m. Після виходу з внутрішнього циклу, якщо знайдений мінімальний елемент не перший (блок 17), то він міняється місцями з першим (блок 18). Таким чином, мінімальний елемент масиву стає на своє місце. У наступній ітерації зовнішнього циклу виконується пошук мінімуму серед елементів масиву, починаючи з другого, в третій - починаючи з третього і т.д. Після виходу із зовнішнього циклу масив виявляється відсортованим.
Виведення відсортованого масиву (блоки 19 - 21) відбувається точно так, як і початкового масиву (блоки 9 - 11).