Te propongo la siguiente solución. No depuré la entrada de datos, como que por ejemplo la capacidad o el rendimiento sean cero, y te pueda dar datos incongruentes, pero eso lo dejo para ti.
Uses CRT;
Const
VEHÍCULOS = 3;
Type
TRegistro = Record
MODELO : String;
RENDIMIENTO : Real;
CAPACIDAD : Real;
end;
TTabla = Array [1..VEHICULOS] of TRegistro;
var
registro : Tregistro;
tabla : Ttabla;
km : real;
auxmayor : integer;
distancia : real;
i : integer;
MODEL : String;
switch : integer;
mayor : real;
Begin
{En esta primera parte, realizaremos la toma de datos por teclado}
clrscr;
switch:=0;
GotoXY(10,10); Writeln('MODELO: ');
GotoXY(10,12); Writeln('RENDIMIENTO (Km/litro): ');
GotoXY(10,14); Writeln('CAPACIDAD (litros): ');
For i:=1 to VEHÍCULOS do
begin
GoTOXY(19,10); clreol; ReadLn(tabla.modelo);
GotoXY(34,12); clreol; ReadLN(tabla.rendimiento);
GotoXY(32,14); clreol; ReadLn(tabla.capacidad);
end;
Writeln('Pulse una tecla para continuar...');
readkey;
{En esta segunda parte, determinaremos los kilómetros que recorre cada modelo con el tanque lleno.}
For i :=1 to VEHÍCULOS do
begin
GOTOXY(19,10); clreol; Writeln(tabla.modelo);
GotoXY(34,12); clreol; writeln(tabla.rendimiento:2:2);
GotoXY(32,14); clreol; writeln(tabla.capacidad:2:2);
distancia := tabla.capacidad*tabla.rendimiento;
Writeln('Este modelo puede recorrer ',distancia:2:2,' kil¢metros con el dep¢sito lleno');
readln;
end;
{En el siguiente apartado vamos a determinar el modelo o modelos de mayor rendimiento}
mayor:=tabla[1].rendimiento;
for i:=2 to vehículos do
if tabla.rendimiento > mayor then
auxmayor:=i; {guardamos s¢lo el ¡ndice del mayor para luego acceder a la tabla}
Writeln('El modelo con mayor rendimiento es el : ',TABLA[AUXMAYOR].MODELO);
writeln(' con un rendimiento de ',tabla[auxmayor].rendimiento,' km/l');
{En el siguiente apartado calcularemos cuanto consume cada modelo para recorrer un numero de km dado}
Clrscr;
Writeln('Introduzca el n£mero de kil¢metros: ');
readln(km);
for i:=1 to vehículos do
Writeln('El modelo ',tabla.modelo,' consumir¡a ',(tabla.rendimiento / km):2:2,'litros en recorrer ',km:2:2,' km.');
writeln('Pulse una tecla para continuar...');
readkey;
{En el siguiente apartado se mostrar el rendimiento y la capacidad de un modelo suministrado por el usuario}
clrscr;
Writeln('Introduzca el modelo a buscar: ');
Readln(MODEL);
For I:=1 to VEHÍCULOS do
begin
if (tabla.modelo=model) then
begin
switch:=1;
Writeln('Este modelo tiene un rendimiento de ',tabla.rendimiento,' y una capacidad de ',tabla.capacidad:2:2);
end;
end;
if switch = 0 then
writeln('El modelo que busca no se encuentra');
Writeln('Pulse una tecla para finalizar...');
readkey;
End.
Si tienes alguna otra cuestión, no dudes en volver a postear. Si no es así, por favor, finaliza la pregunta dándole la calificación que creas conveniente.
Un saludo.