Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2222222222222.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
521.07 Кб
Скачать
  1. Файлові типи. Операції з файлами. Файли прямого та послідовного доступу. Створення, читання та модифікація файлів.

Поняття файла

Файлова структура служить для збереження у зовнішній пам 'яті різноманітної інформації і організації швидкого доступу до неї.

"Файл " це сукупність байт, яка розміщена на диску (магнітному, оптичному...), має власне ім'я і приймається як єдине ціле."Ім 'я файла" складається з назви і типу файла..

"Назва файла" у Windows може мати до 255 англійських, російських і українських (крім і, є, ї, г) літер і арабських цифр, а також майже всі розділові і спеціальні знаки (_ 5 # & @ 1 % () {} ' ~ Л), крім / \: * ? " о |.

"Тип файла" (в MS DOS "Розширення") — до 3 і більше символів за тими ж вимогами.

За допомогою назви вказується призначення файла, за допомогою розширення встановлюється тип файла.

Серед типових розширень, наприклад, такі:

.txt — текстові файли; .doc — текстові документи Word;

.bat — командні файли; .xls — табличні документи Excel;

.com, .exe — програми; .bmp — графічні документи Paint;

Файлові змінні

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

Одна і та ж змінна може бути зв’язана із різними файлами, але не одночасно.

В залежності від способу структурування даних в Pascal відрізняють три види файлів і файлових змінних:

1.Типізовані. 2. Текстові. 3. Безтипові.

Типізовані файли містять структури даних однакового типу: скалярні типи або складені.

Наприклад

Файл дійсних чисел є послідовністю елементів із шести байт, що відповідають дійсним числам.

Файл цілих чисел – послідовність двобайтових чисел.

Файл записів – послідовність структур, що відповідають певному комбінованому типу. Наприклад 321 байт.

Текстові файли можна вважати файлами ASCII-форматами. Елементами текстових файлів є рядки (послідовності символів: букв, цифр, знаків та пропусків). Такий файл можна створювати та редагувати за допомогою текстового редактора. Розмежовувачем між елементами файлу є пропуск. Уведення кожного рядка закінчується натисканням на клавішу вводу. Для перевірки чи є символи у рядку використовують функцію

eoln <ім’я файлу>, яка приймає значення TRUE, якщо знайдено кінець рядка.

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

Перед використанням операції над файлом, він повинен бути відкритим.

Після завершення операції із файлом для звільнення для файлової змінної його потрібно закрити.

  1. Модульне програмування в системі тр. Класифікація модулів. Загальна структура модуля користувача. Використання модулів.

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

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

Всі модулі, що використовуються однією програмою або іншими модулями повинні бути оголошені

USES <ім'я модуля>;

Як вже відмічалося модуль подібний до Pascal-програми, але є певні відмінності. В модулях виділяють чотири розділи:

  1. Заголовок.

UNIT <ім'я модуля>;

На відмінну від програм, заголовок модуля є обов’язковим. Ім'я модуля повинно співпадати з іменем відповідного *.pas-файлу, що містить текст модуля (8 букв).

  1. Інтерфейс на частина.

ІNTERFACE

В розділі інтерфейс оголошуються всі компоненти модуля, структура яких і самі вони мають бути „видимими” зовнішнім програмам, що використовують цей модуль.

В інтерфейсі можуть оголошуватися: uses- специфікація всіх модулів, що використовуються даним модулем; константи; типи; мітки; змінні; заголовки підпрограм. Всі перелічені компоненти будуть доступними, тобто „видимими” іншим програмам.

  1. Розділ реалізації. В реалізації описуються всі компоненти мови, які мають бути невидимі зовні.

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

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

Модуль Crt містить ряд програм, які представляють можливість програмам, які працюють під DOS, ефективно управляти такими характеристиками персонального комп’ютера, як режим екрану, розширені коди клавіатури, кольору, вікна і звукові сигнали

Щоб використовувати модуль Crt, його ім'я потрібно вказати в операторі USES вашої програми:

Uses CRT;

ЗМІННІ МОДУЛЯ CRT. В модулі Crt визначений ряд констант і змінних, які призначені для управління екраном, клавіатурою, кольором та ін.

ПРОЦЕДУРИ І ФУНКЦІЇ МОДУЛЯ CRT

В модулі Crt реалізовані наступні процедури і функції: AssignCRT– зв’язує текстовий файл з логічним пристроєм Crt; ClrEOL– видаляє всі символи,

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

Модуль Dos містить ряд підпрограм для роботи з файлами і доступ до засобів операційної системи. Не одна з програм модуля Dos не визначена в стандартному Pascal, тому вони поміщені в окремий модуль.

Щоб використовувати підпрограми, які знаходяться в модулі Dos, його ім'я необхідно вказати в операторі USES на початку програми:

USES Dos;

Процедури і функції модуля Dos можна уявно розбити на наступні групи:

  1. Функції управління операційним середовищем.

  1. Процедури управління процесами.

  1. Процедури обслуговування переривань.

  1. Процедури роботи з датою і часом.

  1. Процедури і функції перевірки стану диску.

  1. Процедури і функції роботи з файлами.

  1. Процедури і функції різного призначення.

ФУНКЦІЇ УПРАВЛІННЯ ОПЕРАЦІЙНИМ СЕРЕДОВИЩЕМ

Програма, написана на мові Pascal 7.0 має можливість отримувати від MS-DOS інформацію про оточення (environment). Кожний опис в області оточення представляє собою рядок виду:

Ім'я = Значення

Ім'я – це ім'я змінної, Значення – текстовий рядок.

Для того щоб встановити змінну оточення, використовується команда операційної системи SET, наприклад:

SET COMSPEC=C:\DOS\COMMAND.COM;

ПРОЦЕДУРИ УПРАВЛІННЯ ПРОЦЕСАМИ

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

Exec (Path, CmLine: STRING);

Параметр Path – це повний чи скорочений шлях до командного файлу і його ім'я, а CmLine – параметр, в якому можна передати викликаній програмі командний рядок.

ПРОЦЕДУРИ ОБСЛУГОВУВАННЯ ПЕРЕРИВАНЬ

Не дивлячись на те, що Турбо Паскаль має великий набір інструментальних засобів для використання можливостей MS-DOS, в багатьох випадках виникає необхідність прямого звертання до функцій MS-DOS для використання деяких специфічних засобів операційної системи , для організації обміну інформацією в оперативній пам'яті. Для більш повного використання можливостей MS-DOS в модулі DOS знаходиться дві процедури: Intr і MsDos.

В процедурі

Intr (IntNo: BYTE; VAR Regs: REGISTERS);

яка виконує задане програмне переривання, IntNo – номер програмного переривання; REGISTERS являється типом запису

Процедура MsDos (VAR Regs: REGISTERS); виконує виклик функції DOS.

ПРОЦЕДУРИ РОБОТИ З ДАТОЮ І ЧАСОМ

Для доступу до системної дати використовують процедури GetDate і SetDate.

Вид та тип файла визначається типом файлової змінної, що представляє файл.

Для роботи із файлами використовуються наступні встановлюючи та завершальні процедури.

Процедура зв’язування певної файлової змінної із конкретним файлом на диску

ASSIGN (<файлова змінна>,’<ім'я файла>’);

Файлова змінна по замовлюванню вважається безтиповою.

Якщо файл із вказаним іменем відсутній у поточному каталозі, то цей файл буде створений.

Тип фактичної файлової змінної, що використовується в процедурі assign означає вид і тип файлу.

Процедура відкриття файлу для читання

RESET(<файлова змінна>);

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

Процедура відкривання файлу для запису

REWRITE(<файлова змінна>);

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

Процедура закривання файлу

CLOSE(<файлова змінна>);

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

Закриття файлу при запису призводить до фізичного запису файлу на диск.

Після закриття файлова змінна звільняється і може бути використана для зв’язування для інших файлів. Закритий файл можна знову відкрити в новому режимі.

Процедура примусового очищення внутрішнього буфера обміну

FLUSH (<файлова змінна>) Здійснює скидання у файл останніх записуваних даних, але не закриває файл. При використанні flush можна перевідкрити файл для читання без його закривання після режимузапису;

Процедура додавання даних

APPEND(<файлова змінна>);

На відміну від звичайних файлів у текстовий файл можна додавати дані. Цю процедуру тоді використовують замість процедури REWRITE.

Для того, щоб знайти необхідний елемент файлу, необхідно послідовно переглянути всі попередні. Це називається послідовним доступом до файлу.

Окрім файлів послідовного доступу можна створювати і опрацьовувати файли прямого доступу. Відмінність така: перед використанням команд READ чи WRITE слід забезпечити доступ до k-го елемента файлу за допомогою команди: Seek (<назва файлу,k>).

tail). Елемент, що додається до черги, опиняється в її хвості. Елемент, що видаляється з черги, знаходиться в її голові. Така черга повністю аналогічна звичній "базарній" черзі, в якій хто перший встав в неї, той першим буде обслуженим (але, на відміну від реальної черги, імовірність пройти поза чергою виключена)

Основні операції з чергою

англ. enqueue — "поставити в чергу". Операція додавання елемента в "хвіст" черги. При цьому довжина черги збільшується на одиницю. Якщо відбувається намагання додати елемент у вже заповнену чергу, відбувається її переповнення (англ. queue overflow).

англ. dequeue — "отримання з черги". Операція, яка повертає елемент з голови та видаляє його з черги, таким чином встановлюючи голову на наступний за видаленим елемент та зменшуючи довжину на одиницю. При намаганні видалити елемент з пустої черги, виникає ситуація "незаповнення" (англ. queue underflow).

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

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

Відома формула "Програма = Алгоритми + Структури даних" дуже точно виражає необхідність відповідального ставлення до такого підбору. Тому іноді навіть не обраний алгоритм для обробки масиву даних визначає вибір тої чи іншої структури даних для їх збереження, а навпаки.

Елементарні структури даних Масив ,словник, лінійний список ( Стек ,черга ,дек (двобічна черга), зв'язаний список)

Бінарне дерево, одна з найпростіших деревовидних структур даних.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]