Написать программу.
- количество автомобилей каждой марки
- Владельца самого старого авто
- фамилии владельцев и номера авто данной марки
const nmax=20;
mar:array[1..6] of string=('audi','bmw','ford','nissan','toyota','volvo');
type vladelez=record
familia:string;
adress:string;
avto:string;
nomer:string;
vypusk:1900..2000;
end;
fail=file of vladelez;
var f:fail;
a:vladelez;
cnt:array[1..6] of integer;
n,i,k,imx:integer;
mx:1900..2000;
s:string;
ch:char;
begin
clrscr;
assign(f,'auto.dat');
rewrite(f);
repeat
write('Количество владельцев от 1 до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите данные о ',n,' владельцах:');
for i:=1 to n do
begin
writeln('Владелец ',i);
with a do
begin
write(' Фамилия: ');readln(familia);
write(' Адрес: ');readln(adress);
writeln(' Марка автомобиля:');
writeln(' 1-audi 2-bmw 3-ford 4-nissan 5-toyota 6-volvo');
repeat
readln(k);
until k in [1..6];
avto:=mar[k];
write(' Номер: ');readln(nomer);
repeat
write(' Год выпуска 1900..2000: ');
readln(s);
val(s,vypusk,k);
until(k=0)and(vypusk>=1900)and(vypusk<=2000);
write(f,a);
end;
end;
clrscr;
reset(f);
writeln('Список автовладельцев:':30);
writeln;
writeln('----------------------------------------------------------');
writeln('| Фамилия | Адрес | Марка | Номер | Год |');
writeln('----------------------------------------------------------');
while not eof(f) do
begin
read(f,a);
with a do
begin
gotoXY(1,whereY);write('| ',familia);
gotoXY(17,whereY);write('| ',adress);
gotoXY(32,whereY);write('| ',avto);
gotoXY(42,whereY);write('| ',nomer);
gotoXY(52,whereY);write('|',vypusk:5);
gotoXY(58,whereY);writeln('|');
end;
end;
writeln('----------------------------------------------------------');
write('Press Enter...');
readln;
clrscr;
for i:=1 to 6 do
cnt[1]:=0;
seek(f,0);
while not eof(f) do
begin
read(f,a);
for i:=1 to 6 do
if mar[i]=a.avto then inc(cnt[i]);
end;
writeln('Количество автомобилей каждой марки:');
for i:=1 to 6 do
writeln(mar[i],'=',cnt[i]);
mx:=2000;
s:='';
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,a);
if a.vypusk<mx then
begin
mx:=a.vypusk;
s:=a.familia;
end;
end;
writeln('Влоделец самого старого авто ',s);
writeln;
writeln('Поиск владельцев по марке авто');
repeat
write('Марка: ');
readln(s);
k:=0;
seek(f,0);
while not eof(f) do
begin
read(f,a);
if a.avto=s then
begin
k:=1;
writeln(a.familia,' ',a.nomer);
end;
end;
if k=0 then writeln('Такой марки нет');
writeln('Продолжить поиск y/Y');
readln(ch);
until UpCase(ch)<>'Y';
close(f);
end.