Показать сообщение отдельно
Старый 18.02.2012, 16:03   #1 (permalink)
Ильгиза
Member
 
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль, файлы

Здравствуйте! Помогите пожалуйста. найти ошибку в программе!
Необходимо написать два файла, в первый информацию о жильца дома( фио,номер кв.,этаж,количество комнат,площадь), во второй файл записать всю информацию о трех и четырех комнатных квартирах и подсчитать их количество.


Решила так, но где то есть ошибка. Помогите разобраться!!!
program upr1;
const n=2;
type home=record;
nom,pl,k,i:integer;
end;
pupil=record;
fam,name,ot:string[15];
inf:home;
end;

procedure p1(var aupil);
begin
with a do
begin
write('фамилия:');
readln(fam);
write('имя:');
readln(name);
write('отчество:');
readln(ot);
write('номер квартиры:');
readln(inf.nom);
write('площадь квартиры:');
readln(inf.pl);
write('количество комнат:');
readln(inf.k);
write('этаж:');
readln(inf.i);
end;
end;
procedure p2( aupil);
begin
with a do
begin
write(fam,'':15-length(fam));
write(name,'':10-length(name));
write(ot,'':10-length(ot));
with inf do
writeln(nom:4,pl:4,k:4,i:6);
end;
end;
var mas:array[1..n] of pupil;
i,k:integer;
F: File Of pupil;
S: pupil;
Begin
Assign(F,'komnata.dat'); Rewrite(f);
writeln('введите информацию об ',n,' жильцах');
for i:=1 to n do begin
p1(mas[i]);
end;
writeln('список жильцов');
writeln(' n ф и о №кв.пл. кол.к. этаж');
for i:=1 to n do begin write(i:2,'.');
p2(mas[i]);
write(f,s);
end;
write('файл записан');
close(f);
end.





program upr2;
const n=2;
type home=record;
nom,pl,k,i:integer;
end;
pupil=record;
fam,name,ot:string[15];
inf:home;
end;
var f,f2: file of pupil;
supil;
i,l:byte;
begin
l:=0;
assign(f,'komnata.dat');
reset(f);
assign(f2,'file1.dat');
rewrite(f2);
writeln('информация о 3-х или 4-х комнатной квартире');
while not eof(f) do begin
read(f,s);
for i:=1 to n do
if (s.inf.k=3) or (s.inf.k=4)
then begin write(f2,s);
l:=l+1 ;
end;
close(f);
close(f2);
writeln('количество таких квартир:',l);
end;
end.
Ильгиза вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070