Очень прошу Вас помочь мне разобраться, делая обычно задачу на записи не путаюсь, как только начинаю подпрограмму на записи делать, сразу ступор, вечно какие-то ошибки выдает, помогите разобраться что и почему, и заодно скажите, правильно ли оформлен перечисляемый тип:
ввод/вывод записи об авто: марка, цвет(красн,син,бел,черн)б мощностьб пробег, расход.
Код:
Program ZapisiAvto;
uses crt;
Type color1=(red,blue,white,black);
Avto=Record
marka:String [10];
color:color1;
moshost:Word;
probeg:Word;
rasxod:Real;
end;
Var color,q:color1;
S:Avto;
A:array[1..35] of Avto;
i,y,z,N:Byte; Fl:Boolean;
Procedure VVOD (Var x:avto; C:Byte);
Var i,j:Byte; q:color1;
Begin
For i:=1 to C do
begin
WriteLn ('Vvedite marku');
ReadLn (x[i].marka);
WriteLn ('Vvedite color'); {??????????}
ReadLn (j);
q:=color1(j);
x[i].color:=q;
WriteLn ('Vvedite moshost');
ReadLn (x[i].moshost);
WriteLn ('Vvedite probeg');
ReadLn (x[i].probeg);
WriteLn ('Vvedite razxod');
ReadLn ([i].rasxod);
WriteLn;
WriteLn;
end;
end;
Procedure Vivod (Var x:avto; C:Byte);
Var i,j:Byte; q:color1;
Begin
For i:=1 to C do
begin
Write ('nazv ', x[i].marka);
Write ('color ');
Case q of
red:Write ('red');
blue:Write ('blue');
white:Write ('white');
black:Write ('black');
end;
Write ('moshost ',x[i].moshost);
Write ('probeg ' , x[i].probeg);
WriteLn ('razxod ',x[i].rasxod);
WriteLn;
WriteLn;
end;
end;
begin
vvod (S,N);
WriteLn;
vivod (S,N);
ReadLn;
end.