Procedimiento que intercambia filas en una matriz
De Ejercicios
Contenido |
Enunciado
Se desea un subalgoritmo que permute las columnas de la matriz, moficándola y devolviendo el resultado en la misma matriz. Ejemplo:
Soluciones
Diseño en Pseudocódigo por lperez
PROCEDIMIENTO Intercambia(VAR A,n) ENTRADAS: A: ARRAY[1..n, 1..n] DE ENTEROS, matriz cuadrada n: ENTERO, número de filas y columnas de A, n>0 SALIDAS: A, la misma de entrada pero en la cual se han cambiado sus columnas de orden, la primera con la última, la segunda con la penúltima y así. VARIABLES: i, primero, ultimo, aux: ENTERO. INICIO primero<--1 ultimo<--n MIENTRAS primero<ultimo HACER PARA i=1 HASTA n HACER aux<--A(i,primero) A(i,primero)<--A(i, ultimo) A(i,ultimo)<-- aux FIN_PARA primero<--primero+1 ultimo<--ultimo-1 FIN_MIENTRAS FIN
Programa en Pascal por lperez
Procedure Intercambia(var a:matriz;t:integer); (* Entradas:a, una matriz y t su tamaño Salidas: la matriz en la que se ha intercambiado la primera columna por la última, la segunda por la penúltima y así.*) var i,primero,ultimo,aux:integer; begin primero:=1; ultimo:=t; while primero<ultimo do begin for i:=1 to t do begin aux:=a[i,primero]; a[i,primero]:=a[i,ultimo]; a[i,ultimo]:=aux; end; primero:=primero+1; ultimo:=ultimo-1; end; end;