- •Інформація та інформаційні процеси Поняття інформації.
- •Одиниці вимірювання інформації.
- •Подання інформації та типи комп'ютерів.
- •Способи пересилання інформації.
- •Будова комп'ютера
- •Пристрої введення-виведення інформації.
- •Процесор
- •Принципи функціонування комп'ютера Фізичні принципи
- •Поняття про середовища програмування
- •Програмний принцип
- •Загальна характеристика мови паскаль
- •Поняття інтегрованого середовища
- •Команда New
- •Команда Open
- •Основи алгоритмізації Алгоритми та їх властивості
- •Блок-схеми
- •Загальна характеристика Паскаль-програми
- •Структура Паскаль-програми
- •Елементи мови Паскаль
- •Прості типи даних
- •Стандартні типи даних
- •Дійсний тип
- •Логічний тип
- •Символьний тип
- •Конструйовані типи
- •Перелічуваний тип
- •Оператори надання значень змінним Оператор присвоєння
- •Уведення-виведення
- •Порядок виконання операцій
- •Складений оператор
- •Стиль запису програми
- •Структури керування
- •Структура послідовного виконання
- •Структура розгалуження
- •Умовний оператор
- •Оператор варіанта
- •Оператор безумовного переходу
- •Структура повторення
- •Цикл з параметром
- •Цикл з передумовою
- •Цикл з післяумовою
- •Ітераційні цикли
- •Обчислення суми знакозмінного ряду із заданою точністю
- •Процедури і функції
- •Процедури з параметрами. Параметри-значення
- •Одномірні масиви
- •Поняття масиву. Одномірний масив та його опис в програмі
- •Обчислення скалярного добутку двох векторів
- •Знаходження найбільшого (найменшого) значень серед елементів масиву
- •Обчислення суми та добутку елементів масиву
- •Перетворення масиву по заданому закону
- •Впорядкування одномірних масивів
- •Впорядкування шляхом вибору
- •Впорядкування обмінами
- •Впорядкування вставками
- •Зливання впорядкованих масивів
- •Двомірні масиви Поняття двомірного масиву та його опис у програмі
- •Ввід та вивід значень елементів двомірного масиву Ввід значень елементів двомірного масиву
- •Вивід значень елементів двомірного масиву a[m,n]
- •Рядковий тип (string)
- •Комбіновані типи Організація комбінованих типів у Паскалі
- •Оператор приєднання
- •Множинні типи Організація множин
- •Файлові типи Організація файлів
- •Підготовчі та завершальні операції
- •Операції уведення-виведення
- •Стандартні файли input і output
- •Модулі Модуль і його структура
- •Стандартні модулі
- •Наближене знаходження коренів рівнянь Дослідження рівняння. Відокремлення коренів
- •Метод поділу проміжку пополам
- •Метод хорд
- •Метод дотичних
- •Чисельне інтегрування
- •Квадратурні формули прямокутників
- •Загальні формули прямокутників
- •Квадратурна формула трапецій
- •Практичні оцінки точності квадратурних формул. Вибір кроку інтегрування
- •Список літератури
Файлові типи Організація файлів
Характерною особливістю всіх розглянутих типів є наявність у них скінченної, наперед визначеної кількості компонентів. Для масивів вона залежить від максимального значення кожного індексу, для записів - від кількості полів запису та їхнього типу. Якщо кількість компонентів певного типу відома, то програма, що використовує дані, має змогу зарезервувати потрібний обсяг пам'яті ще перед виконанням програми - щоб зберігати ці дані.
Однак є багато задач, коли кількість компонентів певного типу (будь-якого з відомих уже нам) наперед визначити неможливо, то її визначають у процесі виконання програми. Для роботи з такими даними в мові Паскаль передбачено файловий тип, що є послідовністю компонентів конкретного типу і не-визначеної наперед довжини.
Окремо розглянемо файли послідовного доступу. Послідовний доступ дає змогу рухатися по файлу тільки поступово, починаючи з першого компонента. У цьому випадку завжди доступним є тільки наступний елемент. Якщо ж треба повернутися до якогось із попередніх елементів, то потрібно починати знову спочатку.
Файловий тип - це єдиний засіб зв 'язку програми із зовнішнім середовищем. Тільки через файли в мові Паскаль можна передавати в програму вхідні дані й одержувати з програми результати.
Робота з файлами
Загальний вигляд опису файлового типу такий:
<Ім'я типу>=file of <Тип_компонентів>;
Як тип компонентів може бути задания або ім'я будь-якого типу Паскаля, крім файлового або такого, що містить у собі файловий. Наприклад, не можна оголосити файловим типом набір даних, компонентами якого є записи, що містять одне або декілька полів файлового типу.
Приклад опису файлового типу такий:
type
vect=array [1..10] of char;
F=file of vect;
Тут F описаний як файл, компонентами якого є масиви десяти символів. Цей же файл можна ввести і в розділі опису змінних:
var
FL: file of vect;
у випадку, коли тип vect визначений. Якщо цей тип не визначений, то
var
FL: file of array [1 ..10] of char;
За допомогою двох останніх описів уводять файлову змінну (коротше - файл) FL, компонентами якої є символьні 10-еле-ментні масиви.
Зазначимо, що Турбо Паскаль допускає використання так званих безтипових файлів, для яких тип компонентів не визначений (такі файли описані далі).
Із значеннями файлового типу не можна виконувати жодних арифметичних чи логічних операцій, навіть присвоєння чи порівняння (на відміну від змінних комбінованого типу, з якими виконують операції присвоєння значень змінних одного і того ж комбінованого типу).
Над файлами передбачені тільки операції з компонентами файлів. Множина операцій визначена типом компонентів. Однак передбачено цілу низку операцій над файлами у вигляді стандартних процедур, зокрема у Турбо Паскалі.
Підготовчі та завершальні операції
Операції цієї групи виконують за допомогою процедур Assign, Close, Flush, Reset, Rewrite.
a) ASSIGN - призначена для налаштування зв'язку між фізичним файлом на магнітному носії і файловою змінною. Звертання до процедури таке:
ASSIGN (<ім'я_файлової_змінної>, '<зовнішнє_ім'я_файлу>')
Ім'я фізичного файлу будують за правилами MS-DOS, тобто воно може містити ім'я диска, ланцюг каталогів і повне ім'я файлу (з розширенням). Імена поточного диска чи каталогу можна не зазначати. Ім'я фізичного файлу - це рядок символів, тому його беруть у лапки (апострофи). Наприклад:
Assign(f, 'E:\dani\fl.dat')
У результаті виконання цієї процедури файлова змінна f буде пов'язана з дисковим файлом fl.dat у каталозі dani на диску Е.
Другий параметр процедури Assign може містити позначення "псевдофайлу", тобто файлу, пов'язаного з конкретним фізичним пристроєм:
'CON' - консоль: у випадку виведення інформація надходить на дисплей, у випадку введення - з клавіатури;
'LPT1', 'LPT2', 'LPT3' - пристрої друкування (може бути одночасно до трьох);
'PRN' - синонім 'LPT1';
'СОМ1', 'COM2' - послідовні комунікаційні порти, залежить від пристроїв, які приєднані;
'AUX' - синонім 'СОМГ;
'NUL' - фіктивний пристрій, для виведення в "нікуди".
б) Reset і Rewrite призначені для відкривання файлів:
Reset(<iм'я_фaйлoвoї_змiннoї>)
Rewrite(<iм'я_фaйлoвoї_змiннoї>)
Файлова змінна повинна попередньо уже бути пов'язана з конкретним дисковим файлом за допомогою Assign.
Для ілюстрації роботи процедур опрацювання файлів використовують поняття вікно файлу (або вказівник файлу). Вікно визначає позицію доступу, тобто позицію файлу, доступну для читання чи записування. Відкривання файлу передбачає таке:
відшукання файлу на зовнішньому носії;
утворення системних буферів для обміну інформацією;
розміщення вікна файлу на його початку, тобто на нульовий елемент.
Процедуру Reset використовують для відкривання вже наявного дискового файлу, інакше виникне помилка. Процедура Rewrite допускає, що файлу ще нема, тоді вона створює цей файл. Якщо ж файл вже є, то Rewrite його очищає (інформація стає недоступною). В обох випадках вікно позиціонується на нульовий елемент.
в) Flush призначена для завершення обміну без закривання файлу:
Flush (<ім'я_файлової_змінної>)
Ця процедура "скидає" з буфера останні елементи в файл під час записування. Close теж виконує цю дію, крім інших.
г) Close завершує дії з файлом:
Close (<ім'я_файлової_змінної>)
У цьому випадку будуть ліквідовані всі внутрішні буфери, утворені під час відкриття файлу. Після цього файлову змінну можна пов'язати з іншим дисковим файлом за допомогою Assign. Зазначимо, що після завершення роботи програми всі файли автоматично закриваються. Однак для гарантії ліпше використати Close.
