Ver Mensaje Individual
  #15  
Antiguo 15-01-2012
RadamantiS RadamantiS is offline
Registrado
NULL
 
Registrado: ene 2012
Posts: 8
Reputación: 0
RadamantiS Va por buen camino
Hola, ya tengo hecho todo, pero cuando ejecuto el programa no me saca los elementos mayor y menor de la matriz bien, ni me hace el intercambio entre ambos elementos. Los procedimientos que he empleado son los siguientes:
CONST
max=10;
mm=10;
TYPE
matriz=ARRAY[1..mm,1..max] OF integer;
VAR {Estas son las variables del programa principal}
mat,mat1,mat2:matriz;
lado_i,lado_j:integer;
i,j:integer;
n_mayor,n_menor:integer;
p_mayor,p_menor:ARRAY[1..2] OF integer;

procedure mayor_menor_matriz(var n_mayor,n_menor:integer);
var
mat:matriz;
begin
leer_matriz(lado_i,lado_j,mat);
FOR i:=1 TO mm DO
n_mayor:=mat[1,1];
n_menor:=mat[1,1];
FOR i:=1 TO mm DO
FOR j:=1 TO max DO
IF mat[i,j]>n_mayor THEN
begin
n_mayor:=mat[i,j];
p_mayor[2]:=j;
p_mayor[1]:=i;
end;
IF mat[i,j]<n_menor THEN
begin
n_menor:=mat[i,j];
p_menor[2]:=j;
p_menor[1]:=i;
end;
writeln ('El menor elemento es ',n_menor);
writeln ('El mayor es ',n_mayor);
readln;
end;

procedure intercambio_matriz(var n_mayor,n_menor:integer;mat:matriz);
var
nmenor,nmayor:integer;
i,j:integer;
mat_inter:matriz;
begin
mat_inter:=mat;
mayor_menor_matriz(n_mayor,n_menor);
nmenor:=n_menor;
nmayor:=n_mayor;
FOR i:=1 TO lado_i DO
FOR j:=1 TO lado_j DO
begin
IF nmenor=mat[i,j] THEN mat_inter[i,j]:=nmayor;
IF nmayor=mat[i,j] THEN mat_inter[i,j]:=nmenor;
end;
Mostrar_matriz (mat_inter,lado_i,lado_j);
readln;

Muchas gracias!
P.D.: Al final me dieron una semana más para entregarlo
Responder Con Cita