Если я правильно понимаю, то тип кузова - это легковой (L) или грузовой (G). Тогда как-то так:
Код:
function FindAutoByParams(AData : TAvtopark; AType, AColor : String) : Boolean;
var
I : Integer;
Auto : TAvto;
begin
Result := False;
For I := 0 To AData.List.Count-1 Do
Begin
Auto := TAvto(AData.List.Items[i]);
If ((AType = 'L') And (Auto Is TLegkov) And (AColor = (Auto As TLegkov).Color)) Or
((AType = 'G') And (Auto Is TGruzov)) // У грузовых нет цвета
Then
Begin
Auto.Print;
Result := True;
End;
End;
end;
Вызов:
Код:
...
If Not FindAutoByParams(L,n,k) then writeln('Таких автомобилей нет');
// else - сама функция распечатает
...