Помощь - Поиск - Пользователи - Календарь
Полная версия: записи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
smith
 program kolvoavto;
uses crt;
type avtomobili=record
marka:string;
familiya:string;
nomer:string;
end;
var
f:file of avtomobili;
avto:avtomobili;
n,i,kvo,i1:integer;
marka1,pos:string;
begin
pos:='poschitano';
clrscr;
writeln('vvedite kolvo mashin');
readln(n);
assign(f,'avto.dat');
rewrite(f);
for i:=1 to n do begin
with avto do begin
writeln('vvedi marku avto# ',i);
readln(marka);
writeln('vvedi familiu vladeltsa# ',i);
readln(familiya);
writeln('vvedi nomer mashiny# ',i);
readln(nomer);
end;
write(f,avto);
end;
close(f);
reset(f);
for i:=1 to n do begin
read(f,avto);
i1:=1;
if avto.marka<>'poschitano' then begin
marka1:=avto.marka;
inc(kvo);
avto.marka:='poschitano';
repeat
read(f,avto);
if avto.marka=marka1 then begin
inc(kvo);
avto.marka:='poschitano';
writeln(avto.marka);
end;
until(eof(f));
writeln(marka1);
writeln(kvo);
end
else
begin
inc(i1);
seek(f,i1);
end;
end;
readln;
end.


Помогите! Диск рид эррор выдает.
Кто-нибудь! завтра с утра сдавать программу!
Cheburashka
Ошибка вызвана тем, что ты пытаешься считать то, что находится после конца файла!
for i:=1 to n do begin
read(f,avto);

Если у тебя задано 1 авто. То в этом случае ты просто читаешь "авто", а потом опять начинаешь читать уже с конца файла новые данные в этом месте:
repeat
read(f,avto);
if avto.marka=marka1 then begin
inc(kvo);
avto.marka:='poschitano';
writeln(avto.marka);
end;
until(eof(f));
smith
мм... как это исправить?)
Cheburashka
Для начала объясни, что делает твой алгоритм.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.