Uso de filas en una matriz
Publicado por Juan (2 intervenciones) el 18/10/2014 18:30:28
Buenas, antes que nada gracias de antemano.
Tengo una duda respecto a el uso de filas en una matriz. Se me da una matriz cuadrada llena de numeros, va a haber un enumerado que me va a decir que proceso va a actuar; proceso que reciben una fila y realizan una operacion (lo llamaremos MOVER)
.
Lo que quiero lograr es que al aplicar ese proceso actue sobre todas las filas. Bien, el problema que tengo es que el tablero es un array de arrays, y no puedo pasar las filas direcatmente a el proceso porque como mencione anteriormente MOVER recibe una fila. Estaba pensando alguna manera de pasarle el valor de cada fila del tablero en el lugar X a otra fila.
No esta muy bien redactado porque es dificil de explicar, asi que disculpen. Dejo el codigo para que se pueda entender mejor y un pequeño esquema de como seria.
******************************************************************************************************************
******************************************************************************************************************************
Seria asi:
|1 1 1 1|
|1 1 1 1|
|1 1 1 1|
|1 1 1 1|
Supongamos que la funcion Mover suma todos y los deja en el primer lugar, quedaria asi:
|4 0 0 0|
|4 0 0 0|
|4 0 0 0|
|4 0 0 0|
Ese codigo que deje arriba no hace nada, queda igual a la primera.
Tengo una duda respecto a el uso de filas en una matriz. Se me da una matriz cuadrada llena de numeros, va a haber un enumerado que me va a decir que proceso va a actuar; proceso que reciben una fila y realizan una operacion (lo llamaremos MOVER)
.
Lo que quiero lograr es que al aplicar ese proceso actue sobre todas las filas. Bien, el problema que tengo es que el tablero es un array de arrays, y no puedo pasar las filas direcatmente a el proceso porque como mencione anteriormente MOVER recibe una fila. Estaba pensando alguna manera de pasarle el valor de cada fila del tablero en el lugar X a otra fila.
No esta muy bien redactado porque es dificil de explicar, asi que disculpen. Dejo el codigo para que se pueda entender mejor y un pequeño esquema de como seria.
******************************************************************************************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const
maximo=4;
ValorMax = 1000;
Rango = 1 .. Maximo;
TValor = 0 .. ValoMaxr;
TFila = array [Rango] of TValor;
TTablero = array [Rango] of TFila;
Direccion = (arriba,abajo,derecha,izquierda);
procedure MoverTablero(var tablero:TTablero);
var i: integer;
var j: integer;
var fila : TipoFila;
var columna:TipoFila;
begin
for i:=1 to Maximo do
begin
for j:=1 to Maximo do
begin
columna[i]:=tablero[i,1];
fila[j]:= tablero[1,j];
Mover(fila);
Mover(columna);
end;
end;
Seria asi:
|1 1 1 1|
|1 1 1 1|
|1 1 1 1|
|1 1 1 1|
Supongamos que la funcion Mover suma todos y los deja en el primer lugar, quedaria asi:
|4 0 0 0|
|4 0 0 0|
|4 0 0 0|
|4 0 0 0|
Ese codigo que deje arriba no hace nada, queda igual a la primera.
Valora esta pregunta


0