Duda Pascal

Iniciado por -iSiS-, 20 Enero 2010, 12:05 PM

0 Miembros y 1 Visitante están viendo este tema.

-iSiS-

Hola! He hecho un prgrama que me permita ingresar los números en columna uno a uno de una matriz 4x4 y las imprima como matriz, y a continuación me saque el mayor elemento de la diagonal principal y el menor de la diagonal secundaria. Bien, he usado for, y el programa compila y se ejecuta perfectamente. Me gusta hacer los programas y guardarlos hechos de distinta forma, pero en este caso, al querer hacerlo con while, se queda imprimiendo solo la matriz y no el resto. ¿Alguien podría ayudarme? Aqui les dejo las partes que me interesan:

Código (pascal) [Seleccionar]
writeln('La matriz que usted ha introducido es: ');
writeln( );
for i:= low(a) to high(a) do
begin
for j:=low(a[i]) to high(a[i]) do
write(' ', a[i,j]:2, ' ');
writeln( );
end;

max:= a[1, 1];
for i:= 1 to 4 do
begin
if (a[i,i] > max) then
begin
max:=a[i,i];
end;
end;
writeln( );
writeln('El mayor elemento de la diagonal principal es: ', max);

min:= a[1,4];
j:=5;
for i:= 1 to 4 do
begin
if (a[i,j-i] < min) then
begin
min:=a[i,j-i];
end;
end;
writeln('El menor elemento de la diagonal secundaria es: ', min);
writeln( );


Muchas gracias

Nota del mod: se hace más legible con etiquetas de código

Festor

#1
Cita de: -iSiS- en 20 Enero 2010, 12:05 PM
Código (pascal) [Seleccionar]
writeln('La matriz que usted ha introducido es: ');
writeln( );
for i:= low(a) to high(a) do
begin
for j:=low(a[i]) to high(a[i]) do
write(' ', a[i,j]:2, ' ');
writeln( );
end;

max:= a[1, 1];
for i:= 1 to 4 do
begin
if (a[i,i] > max) then
begin
max:=a[i,i];
end;
end;
writeln( );
writeln('El mayor elemento de la diagonal principal es: ', max);

min:= a[1,4];
j:=5;
for i:= 1 to 4 do
begin
if (a[i,j-i] < min) then
begin
min:=a[i,j-i];
end;
end;
writeln('El menor elemento de la diagonal secundaria es: ', min);
writeln( );


Yo ahí, en el código que has escrito, no veo ningún while...   :o