Type
Cantidad = 0..MaxInt;
Str60 = String[60];
Planta = Record
Nombre: Str60;
TiempoProm: Cantidad;
TipoPlanta: Str60;
Clima: Str60;
Pais: Str60;
End;
Function Promedio(S, C: Integer): Real;
Begin
Promedio := S / C;
End;
Function Argentina(Pais: Str60; Clima: Str60): Boolean;
Begin
Argentina := (Pais = 'Argentina') And (Clima = 'Subtropical');
End;
Procedure MenorTipoPlanta(Tipo: Str60; CantTipo: Cantidad; Var MinTipo: Str60; Var MinCantTipo: Cantidad);
Begin
If (CantTipo < MinCantTipo) Then
Begin MinTipo := Tipo; MinCantTipo := CantTipo; End;
End;
Procedure MaxLong(Nombre: Str60; TiempoProm: Cantidad; Var MaxLong1, MaxLong2: Str60; Var MaxProm1, MaxProm2: Cantidad);
Begin
If (TiempoProm > MaxProm1) Then
Begin
MaxLong2 := MaxLong1;
MaxProm2 := MaxProm1;
MaxLong1 := Nombre;
MaxProm1 := TiempoProm;
End
Else
If (TiempoProm > MaxProm2) Then
Begin
MaxLong2 := Nombre;
MaxProm2 := TiempoProm;
End;
End;
Procedure MaxNombrePais(Pais: Str60; CantPais: Cantidad; Var MaxP: Str60; MaxCantP: Cantidad);
Begin
If (CantPais > MaxCantP) Then
Begin MaxP := Pais; MaxCantP := CantPais; End;
End;
Procedure Leer(Var P: Planta);
Begin
With P Do
Begin
Write('Pais: ');
ReadLn(Pais);
If (Pais <> 'zzz') Then
Begin
Write('Nombre: ');
ReadLn(Nombre);
Write('TiempoProm: ');
ReadLn(TiempoProm);
Write('TipoPlanta: ');
ReadLn(TipoPlanta);
Write('Clima: ');
ReadLn(Clima);
End;
End;
End;
Var
P: Planta;
MaxP, MinTipo, MaxLong1, MaxLong2: Str60;
i, Suma, CantTipo, CantNomP, CantPais, MaxProm1, MaxProm2, MaxCantP, MinCantTipo: Cantidad;
AuxTipoP, AuxPais, AuxNombre: Str60;
Begin
MaxP := ''; MaxLong1 := ''; MaxLong2 := '';
MinCantTipo := 32767; MaxProm1 := 0; MaxProm2 := 0; MaxCantP := 0; Suma := 0;
Leer(P);
For i := 1 to 2 Do
Begin
AuxTipoP := P.TipoPlanta;
CantTipo := 0;
While (AuxTipoP = P.TipoPlanta) Do
Begin
AuxNombre := P.Nombre;
CantNomP := 0;
While (AuxTipoP = P.TipoPlanta) And (AuxNombre = P.Nombre) Do
Begin
AuxPais := P.Pais;
CantPais := 0;
CantNomP := CantNomP + 1;
While (AuxTipoP = P.TipoPlanta) And (AuxNombre = P.Nombre) And (AuxPais <> 'zzz') Do
Begin
CantTipo := CantTipo + 1;
CantPais := CantPais + 1;
Suma := Suma + P.TiempoProm;
MaxLong(AuxNombre, P.TiempoProm, MaxLong1, MaxLong2, MaxProm1, MaxProm2);
If (Argentina(AuxPais, P.Clima)) Then WriteLn(P.Nombre);
Leer(P);
End;
P.Pais := '';
End;
MaxNombrePais(AuxPais, CantPais, MaxP, MaxCantP);
End;
MenorTipoPlanta(AuxTipoP, CantTipo, MinTipo, MinCantTipo);
WriteLn(Promedio(Suma, CantTipo));
End;
WriteLn(MinTipo);
WriteLn(MaxLong1, MaxLong2);
WriteLn(MaxP);
End.