{Mira las correcciones}
program U7_2;
uses
crt;
const
tamcoleccion= 4;
type
coleccion = array[1..tamcoleccion] of real;
var
precio: coleccion;
i: integer;
num: integer;
suma: real;
max, min: real;
posmax, posmin: integer;
procedure lee_tabla (VAR precio: coleccion; num: integer);
begin
for i:= 1 to num do
begin
writeln('Introduzca el precio del cuadro numero ',i,': ');
readln(precio[i]);
end;
end;
procedure imprime_tabla (precio: coleccion; num: integer);
begin
begin
clrscr;
for i:= 1 to num do
writeln('El precio del cuadro numero ',i,' es: ',precio[i]:0:2);
end
end;
function suma_coleccion (precio: coleccion; num: integer): real;
var
tot : real;
begin
tot := 0.0;
for i:= 1 to num do
tot := tot + precio[i];
suma_coleccion := tot;
end;
procedure limites(var max, min : real; var posmax, posmin: integer);
var
d : integer;
begin
d := 1;
max:= precio[d];
min:= precio[d];
for i := d + 1 to num do
if max < precio[i] then
begin
posmax := i;
max := precio[i];
end;
for i := d + 1 to num do
if min > precio[i] then
begin (*Fallo: posmin o posmax sale 0*)
posmin := i;
min := precio[i];
end
else
begin
posmin := d;
min := precio[d];
end;
end;
begin
clrscr;
repeat
writeln('Introduzca el numero de cuadros de la coleccion: ');
readln(num);
until (num <= tamcoleccion);
lee_tabla(precio, num);
imprime_tabla(precio, num);
suma:= suma_coleccion(precio, num);
writeln;
writeln('El valor total de la coleccion es: ',suma:0:2);
writeln;
limites(max, min, posmax, posmin);
writeln('El maximo es ', max:0:2,' en la posicion ',posmax);
writeln('El minimo es ', min:0:2,' en la posicion ', posmin);
readkey
end.