Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Майер АИ-102 ПЕЧАТЬ.doc
Скачиваний:
1
Добавлен:
18.07.2019
Размер:
232.45 Кб
Скачать

зміст

Вступ 4

1 Основний розділ 5

1.1 Варіант завдання 5

ТЕОРЕТИЧНІ ВІДОМОСТІ 6

1.2.1 Динамічні структури даних. Циклічна черга. 6

2 ПРОГРАМНА РЕАЛІЗАЦІЯ ПРОЕКТУ 9

2.1 Вибір, уявлення і опис структур даних 9

2.2.1 Визначення елемента циклічною чергою 9

2.2.2 Функції та процедури, що працюють з циклічною чергою 9

2.2.3.Опис функцій та процедур 10

1. int Main() – функція робить можливим використання всіх функції програми. Вона виводить на екран головне меню та в залежності від активного ключа викликає одну з функцій меню. 10

4. void correct(gidmetsl *que) - функція, що виконує коригування елементу циклічної черги. 10

3 ІНСТРУКЦІЯ КОРИСТУВАЧА 11

Висновки 18

Перелік посилань 19

Додаток Текст програми……………………………………………………………20

Вступ

Наш час увійде в історію людства як період становлення інформаційного суспільства, в якому інформація відіграє роль одного з основних ресурсів. Інформація сьогодні розглядається фахівцями як фактор, під впливом якого змінюються форми економічної діяльності, види й типи підприємств та установ, і навіть - соціальні стосунки у суспільстві.

Організація управління в наші дні неможлива без застосування комп`ютерних технологій. Практично всі працівники в установах, організаціях, на підприємствах і фірмах використовують в своїй діяльності комп`ютерну техніку.

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

Сьогодні комп`ютер став засобом створення, редагування документів, систематизації, пошуку, зберігання і передачі інформації. Комп`ютер зробив такі ж зміни в офісній роботі, як поява телефону і друкарської машинки століттям раніше.

Впровадження комп`ютерів створює нові якісні можливості для документаційного забезпечення, дозволяє поставити діловодство на сучасний рівень науково-технічного прогресу, кардинально підвищити продуктивність і якість праці. Зараз комп’ютерні технології широко використовуються для створення БД. Це значно спрощую та заощаджує час.

1 Основний розділ

1.1 Варіант завдання

Необхідно створити циклічну чергу.

Мова програмування – С

Реалізувати чергу для зберігання і операцій з даними вигляду:

  1. дата;

  2. температура повітря;

  3. температура води;

  4. атмосферний тиск.

Програма повинна забезпечувати:

  1. формування даних у вигляді черги;

  2. додавання елементу в кінець черги;

  3. видалення елементу з початку черги;

  4. корегування елементів;

  5. сортування всієї структури за полем «температура повітря»;

  6. виведення списку елементів із температурою води менше заданої;

  7. виведення дати з максимальною температурою води та повітря;

  8. виведення списку елементів із атмосферний тиском вище 760 мм.рт.ст.;

  9. запис в файл;

  10. зчитування з файлу;

  11. виведення всіх даних.

ТЕОРЕТИЧНІ ВІДОМОСТІ

1.2.1 Динамічні структури даних. Циклічна черга.

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

З динамічних структур в програмах частіше за все використовуються лінійні списки, стеки, черги, деки і бінарні дерева. Вони розрізняються способами зв'язку окремих елементів і допустимими операціями. Динамічна структура, на відміну від масиву або запису, може займати несуміжні ділянки оперативної пам'яті.

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

Динамічні структури - структури даних, розмір яких (об'єм пам'яті, що вони займають) може змінюватись у процесі виконання програми.      Для організації таких структур використовуються динамічні змінні, які створюються та знищуються в процесі виконання програми.    Характеризуються:      1. Ці змінні явно не описуються, до них неможливо звернутись за допомогою ідентифікатора.     2. Пам'ять для цих змінних не виділяється під час формування коду програми. Вона виділяється у спеціальній області оперативної пам'яті - heap-області (динамічній пам'яті) - тільки під час виконання програми (звідки і назва - динамічні змінні).      3. Доступ до таких змінних виконується за допомогою покажчиків (чи посилань), які стають активними після визначення динамічного об'єкту та містять адресу у вигляді <сегмент>:<зміщення> Покажчики можуть містити будь-яку адресу: статичних даних, фрагменту коду програми, стеку і т.і.).    Тип покажчик      Type <ідентифікатор>=^<базовий тип>; <базовий тип> - визначає тип елементів, на які буде вказувати покажчик      Тип покажчик - визначає множину значень дискретних змінних визначенного типу, на які може посилатись відповідний покажчик.     Опис базового типу не обов'язково повинен передувати опису покажчика, але повинен міститись у тому ж розділі описування типів.   З вернутись до динамічних змінних можна тільки через покажчик (а не через ідентифікатор):      Структури, побудовані на базі покажчиків:     1. Масиви покажчиків     2. Лінійні та циклічні однозв'язані списки, стек, черга,дек     3. Лінійні двозв'язані списки     4. Дерева

Черга - Це інформаційна структура, в якій для додавання елементів доступний тільки один кінець, званий хвостом, а для видалення - другий, званий головою. В англомовній літературі для позначення черг досить часто використовується абревіатура FIFO (first-in-first-out - перший увійшов - перший вийшов). Черга по суті односпрямований список, тільки додавання і виключення елементів відбувається на кінцях списку.

Така черга називається простою чергою. Однак така черга має деякі недоліки, а саме: фіксований розмір, який не можна змінити в процесі роботи з чергою, можливість втрати даних при переповненні черги, оскільки не

можна продовжувати запис даних до заповненої черги, поки не будуть прочитані всі елементи. Лише після того, як буде прочитаний останній елемент черги, до неї можна знов записувати дані, починаючи з першого елементу. Цього можна уникнути, створюючи, в разі необхідності, нові черги в динамічному режимі. Але при такому підході не досить ефективно використовується пам’ять. Можна розробити безрозмірну чергу на основі списку. Деяким компромісним варіантом, що покращує використання пам’яті і, при цьому, досить просто реалізується є використання циклічних черг.

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

2 ПРОГРАМНА РЕАЛІЗАЦІЯ ПРОЕКТУ

2.1 Вибір, уявлення і опис структур даних

2.2.1 Визначення елемента циклічною чергою

Елемент черги – це структура типу gidmetsl;

Опис елементу :

struct gidmetsl

{float WaterTemperature;

float AirTemperature;

int data;

float AtmospherePressure;

gidmetsl *right;

};

2.2.2 Функції та процедури, що працюють з циклічною чергою

З чергою працюють наступні функції та процедури:

  1. gidmetsl* add(gidmetsl* que);

  2. void insert(gidmetsl* ptr);

  3. void show(gidmetsl* que);

  4. void show_info(gidmetsl* ptr);

  5. gidmetsl *del(gidmetsl *que);

  6. void readf();

  7. void writef(gidmetsl *que);

  8. void correct(gidmetsl *que);

  9. void WaterList(gidmetsl *que);

  10. void PressureList(gidmetsl *que);

  11. void MAX(gidmetsl *que, int choice);

  12. void Sorting_Real(gidmetsl *ptr);