Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR.doc
Скачиваний:
2
Добавлен:
27.10.2018
Размер:
147.46 Кб
Скачать

4.Файли. Послідовні та з прямим доступом.

У мові Паскаль термін “файл” стосується об’єктів, утворених послідовністю компонентів одного типу, причому вважається, що файл міститься зовні програми. Компоненти файлу називаються його елементами. Робота з файлами зводиться до відкриття файла, виконання операцій над його елементами і закриття файла.

Опис файлового типу складаєтья з ключових слів file of та опису типу елементів файлу:

type bf =file of byte;

Елементами файлу можуть бути об’єкти довільного типу, окрім файлового.

Файли, елементи яких типу char називаються текстами і замість file of char їх можна описувати як text. Файли, тип елементів яких не вказано, назавються безтиповими (type bt=file).

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

assign (<ім’я змінної>,<ім’я файлу>);

Якщо замість дикового файлу виступає пристрій вводу-виводу (клавіатура,принтер чи дисплей), то <ім’я файлу> буде містити символічну назву цього пристрою.

Створення нового файлу, з заданим ім’ям відбувається через функцію rewrite (<ім’я змінної>).

Для того, щоб отримати доступ до даних, файл необхідно відкрити : reset (<ім’я змінної>).

Зчитування та запис у файл проводяться за допомогою стандаттних процедур вводу-виводу read та write. При роботі з текстами можна також використовувати процедури readln та writeln.

Послідовність елементів файлу встановлює їхній природній порядок, причому в кожен момент часу безпосередньо доступним є один елемент файла. Для доступу до елемента файлу існує абстрактний вказівник файла. Виконувати певні операції можна лише з тим елементом, на який встановлено цей вказівник. Існує також мітка кінця файлу. По мірі зчитування даних із файлу вказівник автоматично встановлюється на наступний елемент, доки не дійде до мітки кінця файлу. При спробі зчитати дані за міткою кінця файлу фіксується помилка вводу-виводу. Для закриття файлу і збереження змін в ньому використовують функцію close (<ім’я змінної>).

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

прямим доступом та послідовні.

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

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

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

Структура програми має такий вигляд :

Program <ім’я>;

Uses ....

Label ...

Const ...

Type ...

Var ...

Procedure <заголовок>

<тіло процедури>

.................................................

Function <заголовок>

<тіло функції>

...............................................

Begin

<оператори>

End.

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

Процедура - це незалежна іменована частина прогами, призначена для виконання певних дій. Вона складається із заголовку і тіла. Заголовок складається із зарезервованого слова procedure, імені та (необов’язково) списку параметрів процедури. Ім’я процедури - це ідентифікатор, унікальний в межах програми. Подальше використання імені процедури у програмі називається викликом процедури. Ім’я процедури не може бути використане у виразі в якості операнда.

Функція аналогічна процедурі, але має дві відмінності:

  1. функція передає в точку визову скалярне значення (результат своєі роботи);

  2. ім’я функції може бути використане у виразі в якості операнда.

Всі процедури та функції мови Паскаль поділяються на стандартні та визначені користуваем. Описання стандартної процедури чи функції не міститься в тексті програми, але її можна викликати в будь-якому місці програми. Одними із стандартних є процедури write,read та функції sin, cos і т. п.

Процедури користувача описуються таким чином : спочатку йде заголовок -

procedure <ім’я> [(cписок формальних параметрів)];

Список формальних параметрів схожий на блок описання змінних з деякими відмінностями, пов’язаними з видом параметрів .

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

<розділ описів>

begin

<розділ операторів>

end;

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

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

Параметри поділяються на параметри-значення, параметри-змінні та нетипізовані параметри.

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

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

Як і процедура, визначена користувачем функція складається із заголовку і тіла. Заголовок містить зарезервоване слово function, ім’я функції, список формальних параметрів, і ім’я типу значення, що повертає функція в результаті:

function <ім’я> [(cписок формальних параметрів)] :<тип результату>;

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

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

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