Зміст і структура програми
Алгоритм програми виконаний на мові Сі. Програма складається з п'яти функцій:
main( ), my_sorty(), print_sorted_items( ), sort_list( ), cmp( )
Головна функція main () відображає інтерфейс, виробляє читання з файлу бази даних "base.bd", зчитує в пам'ять введені дані, викликає інші вищеперелічені функції.
Для обробки інформації в БД використовуються наступні функції:
my_sorty () - Дозволяє вибрати параметри сортування та передати їх для безпосередньо сортування та виведення отриманих даних;
print_sorted_items () - Викликає і передає функції сортування данних, порівнює значення сортованої дати з виведеної на друк і виводить результат у файл;
sort_list () - Функція сортування;
cmp ()-Функція вибору параметрів сортування, року випуску, обсягу пам'яті, об'єм жорсткого диска.
Для зберігання інформації створено структуру hardware_info зі
наступними полями:
cpu_type - Тип процесора
year - Рік випуску
mem - Об'єм пам'яті
hdd - Об'єм HDD
item - показник на структуру
* next - показник на наступний елемент структури
* t - показник на опрацьований елемент структуру
* head - показник на перший елемент структури
* p - показник елементу об'єднаного списку, використовується при сортуванні
* q - показник елементу об'єднаного списку, використовується при сортуванні
* e - показник елементу об'єднаного списку, використовується при сортуванні
* tail - показник елементу об'єднаного списку, використовується при сортуванні
* list – показник підсумковий елементу об'єднаного списку, використовується при сортуванні
Функція main( )
Дана функція є основною функцією програми. З цієї функції
починається виконання всієї програми.
Функція main () оголошує використовувані змінні і показники, виконує читання і запис у файл динних, виділяє пам'ять для елементів структури, і відповідає за інтерфейс завантаження і введення даних.
Функція my_sorty.
Функція my_sorty () - Дозволяє вибрати параметри сортування та передати їх для безпосередньо сортування та виведення отриманих даних.
Передає параметри функції виведення даних print_sorted_items
Функція print_sorted_items.
Функція print_sorted_items () - виконує функцію введення даних, викликає і передає дані у функцію сортування даних, порівнює значення сортованої дати з виведеною на друк і виводить результат у файл.
Функция sort_list.
Функція sort_list () - функція сортування, сортує нашу структуру, визначаючи параметри сортування викликаючи підфункцію cmp. Сортування проводиться методом злиття - алгоритм сортування, який впорядковує списки (або інші структури даних, доступ до елементів яких можна отримувати тільки послідовно, наприклад - потоки) в певному порядку.
Приклад сортування злиттям. Спочатку ділимо список на шматочки (по 1 елементу), потім порівнюємо кожен елемент з сусіднім, сортуємо і об'єднуємо в загальну структуру. У підсумку, всі елементи відсортовані і об'єднані разом.
Описані наступні показники:
* P - показник елементу об'єднаного списку, використовуваний при сортуванні, в початковому стані вказує на несортоване стек
* Q – показник елемент об'єднаного списку, використовуваний при сортування, як наступний елемент для сортування
* E - показник елемент об'єднаного списку, використовуваний при сортуванні, як допоміжний елемент (temp)
* Tail - показник на об'єднаний список, використовуваний при сортуванні
* List - показник на підсумковий список, використовуваний при сортуванні
Описані наступні змінні:
Nmerges - підрахунок числа злиттів - сортувань;
Psize - умовний розмір-кількість елементів p;
Qsize - умовний розмір-кількість елементів p;
Insize - умовна кількість необхідних злиттів-сортувань, за замовчуванням дорівнює одній, і збільшується при необхідності.
