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

Var ім'я_файлу: iм)я_типу; читання файлів.

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

1 . відкрити файл для читання;

2. ввести дані файлу в програму;

3. закрити файл для читання.

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

Загальна форма читання файлу:

1.RESET(ім’я);

2.READ (ім'я, параметри);

3.CLOSE (ім'я);

В деяких версіях оператор RESET може мати декілька аргументів:

RESET (ім'я1, 'ім'я2','ім'яЗ', ім'я4);

Ім 'я1 - файлова зміна, яка у програмі описана як файл. Вона встановлює зв'язок з фізичним ім'ям файлу.

Ім 'я2 - фізичне ім'я;

Ім 'яЗ - розширене ім'я;

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

Оператор введення для читання файлу володіє усіма властивостями звичайного оператора Read. В якості параметрів можуть бути змінні. Кожна змінна отримує значення одного елементу, зчитаного з зовнішнього файлу. Змінні повинні бути описані у програмі відповідно до свого типу. Так як за означенням число елементів файлу не задається, то в мові Паскаль введено поняття кінця файлу: ЕОF(ім 'я); . Це стандартна функція. Вона приймає істинне значення, якщо досягнутий кінець файлу, хибне - у протилежному випадку. Функцію EOF можна використовувати в операторі циклу. Елементи у файлі зберігаються по рядкам. Для переходу на новий рядок файлу використовується оператор: Readln(iм 'я);

Задача: дано Var F:File of integer;

x,y: integer;

Нехай файл містить 2 елемента: 3 і 7. Яке значення буде мати змінна у після виконання операторів:

program fa;

var f:file of integer;

x,y: integer;

a) reset(f);

Read(f,y);

If NOT ЕОF(f) then Read(f,y); Close(f);

(7)

б)Reset(f);

y:=0;

while not ЕОF(f) do

begin

Read(f,x);

y:=y+x;

end.

(10)

в)Reset(f);

y:=1;

repeat

Read(f,x)

y:=y*x

until ЕОF(f);

(21)

Приклад: на диску є файл з ім'ям d.dat, в якому задана послідовність дійсних чисел в декілька рядків:

0.5 1.7 6.4 0.2

1.3 5.2 0.9 1.8

5.6 7.3

Треба ці дані зробити доступними програмі і обчислити їх суму.

program fa2;

type k=file of real;

var s:k;

sum, i: real;

11: integer;

begin

sum: =0;

reset(s,’d’,’dat’,11);

while not eof(s) do

begin

while not eoln do

begin

read(s,i);

sum:= sum+i;

end;

readln(s);

end;

witeln ('sum=', sum:4:2);

close(s);

end.

S - це файлова змінна, яка встановлює зв'язок з файлом d.dat. Фізичне ім'я вказується тільки при відкритті файлу в операторі RESET. В інших операторах при необхідності роботи з файлом вказується файлова змінна S. Оператор READ (s, і); зчитує дані по одному з зовнішнього файлу у змінну і. Після оператора CLOSE(S); дані файлу стають недоступними програмі.