Типізовані файли
Файл - це впорядкована сукупність однотипних елементів довільної
кількості.
Кількість елементів масивів, множин, записів є
визначеною при написанні програми, а кількість елементів файлу у тексті
програми не визначається і може бути довільною.
Опис файлів:
var f:file of
<тип елементів файлу>
Наприклад,
var f:
file of integer; (всі елементи файлу – цілі числа)
var f:
file of real; (всі елементи файлу – дійсні числа)
або опишемо комбінований тип
type asd = record
a:integer;
b:string[27]
end;
var f:file of asd; (всі елементи файлу – є записи)
Команди для роботи з файлами:
Assign(f,’ім’я
файлу на диску’); - вказує адресу файлу на диску (наприклад, u:\text).
Rewrite(f); -
створює файл і відкриває його для запису.
Write(f,a); - в поточну позицію файлу записує значення
змінної а.
Reset(f); -
відкриває файл для читання і запису.
Read(f,x); - читає з поточної позиції файлу значення і
записує у змінну x.
Close(f); -
закриває файл.
Eof(f); -
перевірка на кінець файлу.
Seek(f,n); - переміщує вказівник поточної позиції на n+1-компоненту.
Seek(f,0); -
переміщує вказівник поточної позиції на першу компоненту.
Seek(f,FileSize(f));
- перехід в кінець, тобто на перший порожній запис, де FileSize(f) –
розмір файла в записах (тобто кількість елементів файлу).
FilePos(f); -
повертає номер поточного запису.
Задача1. Ввести у файл 10 цілих
чисел. Порахувати суму додатніх елементів файлу.
program
R1;
var
f:file of integer;
c,s,i:integer;
begin
assign(f,’U:\ hhh’);
rewrite(f);
for i:=1 to10 do
begin
read(c);
write(f,c);
end;
close(f);
reset(f) ; s:=0;
while not eof(f) do
begin
read(f,c);
if c>0 then s:=s+c
end;
close(f);
writeln(‘s=’,s)
end.
Задача 2. Нехай файли g і h вже створені і містять дійсні
елементи. Сформувати файл f послідовно з елементів
файлу g та елементів файлу h. Вивести елементи файлу f на екран.
program pr2;
var g,h,f:file of real;
x:real;
begin
assign(g,'U:\g.dat');
reset(g);
assign(h,'U:\h.dat');
reset(h);
assign(f,'U:\f.dat');
rewrite(f);
while not eof(g) then
begin
read(g,x);
write(f,x);
end;
while
not eof(h) then
begin
read(h,x);
write(f,x);
end;
close(h);close(g);close(f);
reset(f);
while not eof(f) then
begin
read(f,x);
write(x);
end;
close(f);
end.
Д/з №1
1. Ввести 15 цілих
чисел, всі парні з них записати у файл f. Порахувати суму та кількість елементів файлу, що
належать проміжку [a,b].
2.
Файл f вже створений в попередній програмі. Сформувати файл h з від'ємних
елементів файлу f.
Д/з №2
1. Ввести 10 цілих чисел ( 5
додатніх і 5 від'ємних). Додатні записати у файл g, а від'ємні - у файл h. Сформувати файл f з елементів
файлу g та елементів файлу h таким чином:
Якщо сума відповідних елементів файлів g i h більша числа 5 , то у файл f записати цю суму , інакше записати 0.
2. Файл f вже створений в попередній програмі. Порахувати
кількість елементів файлу f,
які більші середнього арифметичного всіх
елементів цього файлу.
Wubbalubbadubdub
ВідповістиВидалити