Pascal/Turbo Pascal - Ayuda Urgente!! Cambiar Diagonales.

 
Vista:

Ayuda Urgente!! Cambiar Diagonales.

Publicado por jose luis (12 intervenciones) el 22/01/2005 20:06:23
Hola, tengo este programa el cual imprime una matriz de caracteres introducidos por teclado, y necesito hacer con esa matriz otra que contenga las diagonales intercambiadas, ejemplo:
4259
7031
1452
4631

y la resultante seria:
9254
7301
1542
1634

EL codigo que tengo es:

program tercero;
uses crt;

var
matriz:array[1..4,1..4] of char;
i,j,k,l:integer;

procedure intro_matriz;

begin
clrscr;
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
gotoxy(3,3); write('Escriba el Valor de la Posici¢n (',i,',',j,') ');
gotoxy(47,3); readln(matriz[i,j]);
end;
end;
end;

BEGIN
clrscr;
intro_matriz;
for i:=1 to 4 do begin {MATRIZ ORIGINAL}
for j:=1 to 4 do begin
gotoxy(j+10,i+10);
write(matriz[i,j]);
end;
end;

for i:=1 to 4 do begin {MATRIZ DE DIAGONALES INTERCAMBIADAS}
for j:=1 to 4 do begin
gotoxy(j+40,i+10);
write(matriz[i,j]);
end;
end;
readkey;
end.

Si alguien sabe como hacerlo por favo que conteste, Un Saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Urgente!! Cambiar Diagonales.

Publicado por M@rceloL (152 intervenciones) el 22/01/2005 22:02:14
Bueno, yo haría un ciclo desde 1 hasta 4 y en cada iteración intercambiaría el indice que llevo con el 5-indice. Algo así:

...la matriz[ind1,ind] está en la forma matriz[x,y]...

for ind:=1 to 4 do
begin
Aux:=Matriz[Ind,Ind];
Matriz[Ind,Ind]:=Matriz[5-ind,ind];
Mariz[5-Ind,Ind]:=Aux;
end;

... parece funcionar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Urgente!! Cambiar Diagonales.

Publicado por jose luis (12 intervenciones) el 23/01/2005 10:50:13
No entiendo lo de:
matriz[ind,ind]:=matriz[5-ind,ind]; porque 5-ind? nose, solo necesito intercambiar la posicion (1,1) por la (1,4), la (2,2) por la (2,3), la (3,3) por la (3,2) y la (4,4) por la (4,1) y viceversa, pero no hay manera...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar