program primer_record;
uses crt;
type kvartira=record
nomer:integer;
name:string[15];
square:real;
dolg:boolean;
end;
dom=file of kvartira;
var kv:kvartira; d:dom;
procedure form_file;
var ch:char;
begin
clrscr;
writeln('ФОРМИРОВАНИЕ ФАЙЛА');
rewrite(d);
repeat
writeln('Введите данные о квартире');
write('номер квартиры: '); readln(kv.nomer);
if kv.nomer>0 then
begin
write('фамилия владельца: '); readln(kv.name);
write('площадь квартиры: '); readln(kv.square);
write('задолженность по квартплате: d-есть,n-нет: '); readln(ch);
kv.dolg:=(ch='d');
write(d,kv)
end;
until kv.nomer=0;
close(d)
end;
procedure type_file;
begin
clrscr;
reset(d);
writeln('ДАННЫЕ О КВАРТИРАХ');
writeln('номер владелец площадь долг');
repeat
read(d,kv);
write(kv.nomer,' ',kv.name,' ');
writeln(kv.square:2:1,' ',kv.dolg);
until eof(d);
close(d);
readln
end;
procedure squ;
var s:real;
begin
clrscr;
writeln('ОБЩАЯ ПЛОЩАДЬ ВСЕХ КВАРТИР ДОМА');
s:=0;
reset(d);
repeat
read(d,kv);
s:=s+kv.square;
until eof(d);
close(d);
writeln('Общая площадь: ', s:2:1);
readln
end;
procedure find_record;
var poisk:string[15];
begin
clrscr;
writeln('ПОИСК ЗАПИСЕЙ ПО ФАМИЛИИ');
write('Введите фамилию: '); readln(poisk);
reset(d);
repeat
read(d,kv);
if kv.name=poisk then
writeln('номер: ',kv.nomer, ' площадь: ',kv.square:2:1,' долг:',kv.dolg);
until eof(d);
close(d);
readln
end;
procedure change_record;
var nom:integer;ch:char;
begin
clrscr;
writeln('ИЗМЕНЕНИЕ ЗАПИСИ');
write('Введите номер записи, которая будет изменена: ');
readln(nom);
reset(d);
seek(d,nom-1); read(d,kv);
writeln('старые данные:');
write('номер: ',kv.nomer,' владелец: ',kv.name);
writeln(' площадь: ',kv.square:2:1,' долг: ',kv.dolg);
writeln('введите новые данные:');
write('номер квартиры: '); readln(kv.nomer);
write('фамилия владельца: '); readln(kv.name);
write('площадь квартиры: '); readln(kv.square);
write('задолженность по квартплате: d-есть,n-нет: '); readln(ch);
kv.dolg:=(ch='d');
seek(d,nom-1); write(d,kv);
close(d);
readln
end;
procedure menu;
var c:integer;
begin
repeat
clrscr;
writeln('Выберите действие');
writeln('0 - выход');
writeln('1 - формирование файла');
writeln('2 - просмотр файла');
writeln('3 - общая площадь');
writeln('4 - поиск записи');
writeln('5 - замена записи');
readln(c);
case c of
1: form_file;
2: type_file;
3: squ;
4: find_record;
5: change_record;
end;
until c=0;
end;
{ОСНОВНАЯ ПРОГРАММА}
begin
clrscr;
assign(d, 'dom.dat');
menu;
end.
4.(5 – 8 )Файловый тип данных, особенности файлового типа данных. Типизированные файлы: характеристика, способы объявления файлового типа и файловой переменной, процедуры и функции для работы с типизированными файлами.
Файловый тип данных
1. Общее понятие о файле.
Типы данных, с которыми мы до сих пор имели дело, предназначены для манипулирования информацией, содержащейся в оперативной памяти компьютера. Однако, часто возникает необходимость сохранения этих результатов с целью их постоянного использования. Для долговременного хранения информация из оперативной памяти переносится в файлы.
Файл представляет собой некоторое поименованное место на внешнем носителе.
Кроме "долговременности" хранения у файлов имеется еще одна отличительная особенность: их неопределенный объем (или длина). Если для каждого из прочих структурированных типов (например, массивов) всегда точно определено, сколько элементов содержит та или иная структура, то, сколько элементов должно быть в файле, при объявлении файлового типа не указывается. Максимальная длина файла ограничивается только свободным местом на диске, и это является основным отличием файлов от массивов.
Для хранения информации в Turbo Pascal предусмотрена возможность определения файловых типов и файловых переменных. После этого информацию, которая может потребоваться впоследствии, можно перенести в файл на диске. Существуют три возможности определения файлового типа:
Type f = file of <базовый тип элементов файла>;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.