Организация зовнішніх файлів і з ними
Тут ім'я 1 — файлова змінна, що у програмі описана як файл. Вона встановлює зв’язку з фізичним ім'ям файла; ім'я 2 — физическое (конкретное) ім'я файла, що зберігається на диску; ім'я 3 — розширення фізичного імені файла. Можна вказувати будь-які 3 символу, проте рекомендується вказувати DAT (данные). Аргумент годі й вказувати, тоді з вмовчанням буде DAT; ім'я 4 — змінна, яка автоматично отримує… Читати ще >
Организация зовнішніх файлів і з ними (реферат, курсова, диплом, контрольна)
Організація зовнішніх файлів і з ними.
Під файлом розуміють будь-який набір даних. Так, вихідні дані в програми вважати файлом. Файлом можуть і результати, і самі программа.
У практиці програмування часто зустрічаються завдання, під час вирішення яких можна зберігати оброблювані дані осіб на зовнішньому носії. У цьому вся разі дані оформляються як зовнішніх файлів. Як носія може бути МД (магнітний диск).
До цього часу ми розглядали завдання, у яких вихідні дані чинили клавіатури на згадку про ЕОМ, а результати виводилися на екран. Отже, ні вихідні дані, ні результати обчислень не зберігалися. Щоразу і під час одному й тому самої програми (особливо в її налагодженні) доводиться наново вводити вихідні данные.
Створення зовнішніх файлів даних для постійного зберігання на МД і можливість обробляти ці файли у програмі ефективне засобом программирования.
У PASKALe файл є послідовність елементів одного типу (простого чи складного). На відміну від масиву довжина файла, тобто. кількість елементів, не задається, місце елемента не визначається індексом й у елемент стає доступним лише після перебору всіх попередніх елементів. Такі файли називаються послідовними. Слід зазначити, створення та обробка зовнішніх файлів залежать як від конкретної реалізації микроЭВМ, і від версії PASKAL.
Багато версіях PASKAL для микроЭВМ допускається зберігання файлів на диску як символьних даних. При зчитуванні файла в оперативну пам’ять машини символи файла перетворюються на той тип даних, якого оголошено в программе.
Якщо програма взаємодіє зі зовнішніми файлами, то файли повинні бути описані у програмі або явно розділ змінних VAR, або з використанням розділу типів TYPE. Оголошення файлів розділ перемінної має вид:
VAR ім'я файла: FILE OF базовий тип; ***.
VAR.
FT:FILE OF CHAR; (*файл символьних данных*).
FINP:FILE OF REAL; (*файл дійсних данных*).
M:FILE OF INTEGER; (*файл цілих данных*).
Файлы символьних даних називають текстовими файлами. Опис текстового файла.
FILE OF CHAR.
Эквивалентно опису TEXT. Тож у попередньому прикладі текстовий файл FT можна назвати в виде:
VAR FT: TEXT;
Как відзначалося раніше, визначення даних із винятком розділу описи типів TYPE робить програму більш універсальної і спрощує налагодження програми. Оголошення файлів у разі має вид:
TYPE ім'я типу = FILE OF базовий тип;
VAR ім'я файла: ім'я типу; *** Для текстового файла FT опис має вид:
TYPE T=FILE OF CHAR;
VAR FT: T; Тут Т — запроваджений тип данных.
Розглянемо основні 3 виду взаємодії програми з зовнішніми файлами: читання файла, запис файла, читання і запись.
Читання файла. Під читанням файла розуміється введення даних із зовнішнього файла, знаходиться в диску в оперативну пам’ять машини. Дані зовнішнього файла стають доступними программе.
У конкурсній програмі необхідні такі дії для читання файла: відкрити файл для читання (RESET), запровадити дані файла в программу (`READ), закрити файл для читання (CLOSE).
Зовнішній файл, з яких читаються дані, часто називають вхідним файлом. Загальна форма читання файла має вид:
RESET (ім'я 1);
.. .
READ (ім'я 1, параметры);
.. .
CLOSE (ім'я 1); Многоточием зазначено на наявність будь-яких операторів программы.
У деяких версіях PASCAL (в ДВК) оператор RESET може мати кілька аргументов:
RESET (ім'я 1; ім'я 2; ім'я 3; ім'я 4).
Тут ім'я 1 — файлова змінна, що у програмі описана як файл. Вона встановлює зв’язку з фізичним ім'ям файла; ім'я 2 — физическое (конкретное) ім'я файла, що зберігається на диску; ім'я 3 — розширення фізичного імені файла. Можна вказувати будь-які 3 символу, проте рекомендується вказувати DAT (данные). Аргумент годі й вказувати, тоді з вмовчанням буде DAT; ім'я 4 — змінна, яка автоматично отримує значення, однакову числу блоків, займаних зовнішнім файлом на диску. Аргумент годі й вказувати, але він зазначений, потрібно оголосити зміну як цілого типа.
Оператор введення для читання файла має усіма властивостями звичайного оператора введення READ. Як параметрів може бути перемінні; кожна змінна отримує значення одного елемента, ліченого із зовнішнього файла. Змінні мають бути описані у програмі відповідно своєму типу.
Т.к. з визначення число елементів файла не задається, то PASKALe запроваджено ознака кінця файла. Стандартна вбудована функція EOF (имя файла) виповнюється визначення, досягнуть чи кінець файла, і хибне — у протилежному случае.
Функцію EOF можна залучити до логічному вираженні частковості, в операції циклу, например:
WHILE NOT EOF (F1) DO.
BEGIN.. .
END.
Пока ні кінець файла F1, повторюється циклічна частина програми, ув’язнена в операторные дужки begin-end.
Елементи в файлі зберігаються по рядкам. Для визначення кінця рядки файла використовується оператор цикла:
WHILE NOT EOLN (ім'я 1) DO, а переходу нові рядок файла — оператор READLN (ім'я 1). *** 1.1. Нехай на диску є файл безпосередньо з ім'ям D1. DAT, у якому записана послідовність дійсних чисел у кількох строках:
0.54 1.7 4.56 0.2.
1.32 1.524 18 0.92.
56. 7.7 Необхідно ці дані зробити доступними програмі і обчислити їх сумму.
Program A21(INPUT, OUTPUT); VAR F1: TEXT; (*файлова змінна*) L1: Integer; (*довжина файла*) X; Real; (*число*) SUM: Real; (*сума*) Begin.
SUM: = 0;
RESET (F1; D1; DAT; L1).
WHILE NOT EOF (F1) DO Begin WHILE NOT EOLN (F1) DO Begin READ (F1, X); SUM: = SUM + X end; Readln (F1) end; WRITE («сума=; SUM:8:3); CLOSE (F1) end.
Сумма = 42.124.
У конкурсній програмі 1.1: F1 — файлова змінна, з допомогою якої встановлюється зв’язку з файлом D1.DAT. Фізичне ім'я файла вказується лише за відкритті файла в операторі RESET. У більшості інших операторах при необхідності роботи з файлом вказується файлова змінна F1. Оператор READ (F1,X) застосовується для зчитування даних (за одним) з зовнішніх файлів в перемінної Х. Після оператора CLOSE (F1) дані файла стають недоступними програмі. Значення обчисленої суми виводиться на екран дисплея.
Запис файла. Під записом файла розуміється запис результатів програми з оперативної пам’яті ЕОМ на диск, тобто. створення нової файла осіб на зовнішньому устрої. У програмі необхідні такі дії для записи файла: відкрити файл для записи (REWRITE); вивести дані (WRITE); закрити файл для записи (CLOSE).
Зовнішній файл, у якому записуються дані з програми, часто називають вхідними. Загальна форма записи файла: REWRITE (ім'я 1);
... WRITE (ім'я 1, параметры);
... CLOSE (ім'я 1); Оператор виведення для записи даних має усіма властивостями звичайного оператора WRITE. Якщо оператор виведення має вид:
WRITE (параметри) Те дані виводяться на екран дисплея, а если.
WRITE (ім'я 1, параметри) Те дані записуються в файл, що зберігаються на диске.
*** 1.2. нехай у програмі перемінні Проте й У отримують такі значення: А=510, В=16.2. потрібно записати в файл безпосередньо з ім'ям D2. DAN рядок як А=510 В=16.2.
program A21A (INPUT, OUTPUT);
VAR.
F2: text; (*файлова переменная*).
L2: Integer; (*довжина вихідного файла*).
A: Integer; (*ціле данное*).
B: Real; (*дійсне дане*) Begin.
L2: =1; A: = 510; B: = 16.2;
REWRITE (F2, «D2 », «DAN », L2);
WRITE (F2, «A= «, A:3, «» :5, «B= «, B:4:1);
CLOSE (F2) end.
Усі значення змінних зазначені у коментарях програми. REWRITE відкриває файл для запис у нього даних. Повне ім'я файла — D2.DAN. WRITE виводить рядок символів відповідно до форматом. CLOSE закриває файл для записи. Коли щодо записи рядка цілком достатній 1 блок, то перемінної L2 привласнюємо значення 1.
Читання і запис файла. Дії файла може бути різноманітними: іноді потрібно читати дані з одного файла і записувати до інших, іноді - коригувати і той ж файл. У конкурсній програмі за необхідності вказуються оператори для читання і запис файлів, а як і їхнього закриття. *** 1.3. program A22 (INPUT, OUTPUT); TYPE T = TEXT; (*тип файла — текстовий*) VAR.
T1, T2: T; (*файлова переменная*).
P.S: CHAR; (*символьне данное*).
R: Integer; (*ціле дане*) begin.
RESET (T1, «FINP »); (*відкриття файла для чтения*).
REWRITE (T2, «FOUT »); (*відкриття файла для записи*).
READ (T1, P. S); (*читання даного з файла*).
.. .. .. .. .. ... (*дії зі змінними P. S, R*).
WRITE (T2, R); (*запис значення R в файл*).
CLOSE (T2); (*закриття файла для записи*).
CLOSE (T1); (*закриття файла для читання*) end.
При виконанні послідовних файлів не можна одночасно відкривати сам і хоча б файл для читання і запис. Якщо виникає потреба роботи з одним файлом й у читання, й у записи, потрібно спочатку відкрити файл, обробити його дані і закрити. Потім відкрити той самий файл наново для іншої, обробити дані і закрити файл.
Пример з допомогою зовнішніх файлів: Маємо відомість за результатами іспиту групи. Вважатимемо її вхідним файлом безпосередньо з ім'ям DAN:
———————————————————————————- предмет «фізика «група Т — 12 ———————————————————————————- Алексєєв С.А.: 5 Вертышев О. Ю.: 4 Колдаев В. Д.: 5 Петрова Н. В.: 4 Федоренко Р. Ф.: 3 Маронин А. В.: 4.
Составить програму створення вхідного файла безпосередньо з ім'ям REZ, у якому слід записати вихідну відомість і розрахована середній балл.
———————————————————————————- предмет «фізика «група Т — 12 ———————————————————————————- Алексєєв С.А.: 5 Вертышев О. Ю.: 4 Колдаев В. Д.: 5 Петрова Н. В.: 4 Федоренко Р. Ф.: 3 Маронин А. В.: 4.
* * * * * * * * * * * * * * * * * * * * * * * * Середній бал групи: 4.17. Кількість учнів: 6.