- •1 Завдання контрольної роботи
- •1.1 Завдання 1. Робота з елементами одномірного масиву
- •1.2 Завдання 2. Робота з цілочисельною прямокутною матрицею
- •2 Основні теоретичні відомості алгоритмічної мови паскаль
- •2.1 Склад мови
- •2.2 Основні поняття алгоритмічної мови Pascal
- •2.2.1 Основні символи
- •2.2.2 Елементарні конструкції
- •2.2.3 Концепція типу для даних
- •2.2.4 Стандартні типи даних
- •2.2.5 Змінні. Ініціалізація змінних
- •2.2.6 Вирази
- •2.3 Структура програми
- •2.4 Основні оператори
- •2.4.1 Оператор присвоювання
- •2.4.2 Оператори введення і виведення
- •2.4.3 Оператор переходу
- •2.4.4 Умовний оператор
- •2.4.5 Організація циклу
- •2.4.5.1 Безпосередня організація циклу
- •2.4.5.2 Цикл із параметром
- •2.4.5.3 Цикл із передумовою
- •2.4.5.4 Цикл із післяумовою
- •2.4.6 Оператори завершення циклу
- •2.4.7 Оператор варіанту
- •2.4.8 Оператори виходу
- •2.5 Вбудовані функції
- •2.6 Бітова арифметика
- •2.7 Завдання типів даних
- •2.7.1 Тип даних, які перелічуються
- •2.7.2 Інтервальний тип даних
- •2.7.3 Масиви
- •2.7.4 Рядки
- •2.8 Обробляння рядків
- •2.9 Процедури і функції
- •2.10 Модулі
- •2.11 Множини
- •2.12 Записи
- •2.13 Файли
- •2.13.1 Текстові файли
- •2.13.2 Компонентні файли
- •2.13.3 Безтипові файли
- •2.13.4 Послідовний і прямий доступ
- •2.14 Показники
- •3 Варіанти завдань на контрольну роботу
- •3.1 Завдання №1 на контрольну роботу
- •3.2 Завдання №2 на контрольну роботу
- •Література
2.13.1 Текстові файли
Особливе місце в мові ПАСКАЛЬ займають текстові файли, компоненти яких мають символьний тип. Для опису текстових файлів у мові визначений стандартний тип Тext:
var TF1, TF2: Text;
Текстові файли являють собою послідовність рядків, а рядок - послідовність символів. Рядки мають змінну довжину, кожен рядок завершується ознакою кінця рядка.
З ознакою кінця рядка зв'язана функція EOLn(var T:Text):Boolean, де Т - ім'я текстового файлу. Ця функція приймає значення TRUE, якщо був досягнутий кінець рядка, і значення FALSE, якщо кінець рядка не був досягнутим.
Для операцій над текстовими файлами, крім перерахованих, визначені також оператори звертання до процедур:
ReadLn(T) - пропускає рядок до початку наступної;
WriteLn(T) - завершує рядок файлу, у яку виробляється запис, ознакою кінця рядка і переходить до початку наступної.
Для роботи з текстовими файлами введена розширена форма операторів вводу і виводу. Оператор
Read(T,X1,X2,...XK)
еквівалентний групі операторів
begin
Read(T,X1);
Read(T,X2);
...........
Read(T,XK)
end;
Тут Т - текстовий файл, а змінні Х1, Х2,....,ХК можуть бути або змінними цілого, дійсного чи символьного типу, або рядком. При читанні значень змінних з файлу вони перетворяться з текстового уявлення в машинне.
Оператор
Write(T,X1,X2,...XK)
еквівалентний групі операторів
begin
Write(T,X1);
Write(T,X2);
...........
Write(T,XK)
end;
Тут Т - також текстовий файл, але змінні Х1,Х2,...,ХК можуть бути цілого, дійсного, символьного, логічного типу чи рядком. При записі значень змінних у файл вони перетворяться з внутрішнього уявлення в текстовий.
До текстових файлів відносяться стандартні файли INPUT, OUTPUT.
Розглянуті раніше оператори вводу - виводу є частковими випадками операторів обміну з текстовими файлами, коли використовуються стандартні файли вводу - виводу INPUT, OUTPUT.
Робота з цими файлами має особливості:
імена цих файлів у списках вводу - виводу не вказуються;
застосування процедур Reset, Rewrite і Close до стандартних файлів вводу - виводу заборонено;
для роботи з файлами INPUT, OUTPUT введений різновид функції EOLn без параметрів.
TURBO PASCAL уводить додаткові процедури і функції, застосовні тільки до текстових файлів, це SetTextBuf, Append, Flush, SeekEOLn, SeekEOF.
Процедура SetTextBuf( var f: Text; var Buf; BufSize: Word ) служить для збільшення чи зменшення буфера вводу - виводу текстового файлу f. Значення розміру буфера для текстових файлів за замовчуванням дорівнює 128 байтам. Збільшення розміру буфера скорочує кількість звертань до диска. Рекомендується змінювати розмір буфера до відкриття файлу. Буфер файлу почнеться з першого байта змінної Buf. Розмір буфера задається в необов'язковому параметрі BufSize, а якщо цей параметр відсутній, розмір буфера визначається довжиною змінної Buf.
Процедура Append( var f: Text ) служить для спеціального відкриття вихідних файлів. Вона застосовна до вже існуючих фізичних файлів і відкриває їх для дозапису в кінець файлу.
Процедура Flush( var f: Text ) застосовується до відкритих вихідних файлів. Вона примусово записує дані з буфера у файл незалежно від ступеня його заповнення.
Функція SeekEOLn( var f: Text ): Boolean повертає значення True, якщо до кінця рядка залишилися тільки пробіли.
Функція SeekEOF( var f: Text ): Boolean повертає значення True, якщо до кінця файлу залишилися рядки, заповнені пробілами.
