Реферат Послідовний запис у типізовані файли
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Реферат на тему:
Послідовний запис у типізовані файли
Перш, ніж записувати в файл, слід відкрити його для запису. Це задається процедурою REWRITE. Після виклику ReWrite(f) значення f подається як (<>, 0, W), тобто незалежно від попереднього значення f послідовність у файловій змінній стає порожньою:
F |
|
|
|
| | стан | W |
Запис у файл задається процедурою WRITE. При виконанні її виклику
write ( f, вираз-типу-компонентів-файла)
обчислюється значення виразу та присвоюється доступному елементу файла, після чого вказівник доступного елемента зсувається на 1 елемент. Наприклад, після виконання останього з наведених операторів у програмі
program ...
var f : file of integer; x : integer
begin ...
rewrite(f); x:=2;
write(f, 1); write(f, x); write(f, x*x);
...
end.
файлова змінна f має значення, що подається як (<1, 2, 4>, 3, W).
Узагалі, значення (<f0 , … , fn-1>, n, W) файлової змінної f при виконанні write(f, вираз) міняється на (<f0, … , fn-1, V>, n+1, W), де V позначає значення виразу.
У виклику write можна вказувати довільне число аргументів-виразів того самого типу: write ( f, вираз1, ... , виразN ). Такий виклик виконується насправді як послідовність
write(f,вираз1); … ; write(f,виразN).
Наприклад, замість write(f, 1); write(f, x); write(f, x*x) можна написати write(f, 1, x, x*x).
Підкреслимо, що процедуру writeln не можна застосовувати до типізованих файлів. Вона призначена лише для роботи з текстами.
Приклад 1. Треба створити файл із такими даними про студентів групи: прізвище та ім’ я студента, а також середній бал його успішності.
Дані про студента можна подати записом типу
Student = record
SName, Name : string[20];
Ball : real
end.
Зв’ язування та встановлення файла в початковий стан для запису оформимо процедурою OpenFile, а створення – процедурою CreatFile у такій програмі:
program InPutGroup;
type
Student = record
Sname, Name : string[20];
Ball : real;
end;
var
Fi : file of Student; { Файлова змінна Fi – інформаційний файл }
FileName: string; { Змінна для введення імені файла }
procedure OpenFile;
begin
writeln('Задайте ім''я файла, що буде створюватися: ');
readln(FileName);
assign(Fi, FileName);
rewrite(Fi);
end;
procedure InPutFile;
var St : Student;
Ch : char;
begin
repeat
writeln('Задайте дані про студента:');
write('Прізвище>'); readln(St.SName);
write('Ім''я>'); readln(St.Name);
write('Середній бал успішності>'); readln(St.Ball);
write(Fi, St); {***}
write('Чи треба вводити дані про нового студента? "Y"/"N"> ');
readln(Ch);
until (Ch = 'n') or (Ch = 'N');
close(Fi);
end;
begin
writeln('Програма створення файла даних про успішність');
openfile; { Виклик процедури відкривання файла }
creatfile; { Виклик процедури створення файла }
end.