Вихідні дані, результати й проміжні величини. Вихідними даними є текстовий файл розміром не більше 500 рядків, а також мінімальна й максимальна ціни телефону

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

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

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

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

Const n_items = 3; {кількість пунктів меню}

l_dbase = 500; {максимальний розмір бази телефонів}

l_model = 20; {максимальна довжина найменування моделі телефонів}

type Tel = record {тип одного запису в базі телефонів}

model: string[l_model];

weight, price: real;

end;

Tbase = array[1..l_dbase] of Tel; {тип бази телефонів}


Опис процедур і функцій

Читання бази з файлу:

Procelure ReadFile (var base: Tbase; var n: word);

Підпрограма повинна повертати в визиваючу програму те, що вона прочитала: базу і її фактичну довжину (кількість записів).

Ініціалізація меню:

Procelure InitMenu (ActivColor, InactivColor: word);

Параметрами є кольори активного й неактивного пунктів.

Вивод бази на екран:

Procelure ShowBase (const base: Tbase; n: word);

Вивод інформації про моделі, що попадають у заданий діапазон цін:

Procelure ShowSelected (const base: Tbase; n: word);

У ці дві процедури передаються база і її фактична довжина.

Вивод пункту меню:

Procelure DrawItem (item, color: word);

Передаються параметри пункту меню й колір, яким його варто вивести.

Уведення критеріїв відбору:

Procelure Query (var StartPice, EndPrise: real);

Із процедури передаються уведені користувачем критерії

Формування вибірки:

Procelure Select (StartPice, EndPrise: real; const base: Tbase; n: word;

Var selectedbase: Tbase; var m: vord);

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


Висновки

У процесі виконання завдання по практиці були освоєні навички роботи зі структурою даних "запис" у мові програмування Pascal. Навчився правильно описувати тип record, ыныцыалызувати змінні типу record, виводити на екран змінні типу record; вирішувати завдання на використання записів. Вивчив роботу з текстовими файлами. Одержав навички роботи з такими процедурами уведення - висновку для файлів як Assign - присвоєння ім'я зовнішнього файлу файлової змінної, Close - закриття відкритого файлу, Read - зчитує одне або більше значень із файлу в одну лив, Rewrite- створює й відкриває новий файл.

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

 

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: