Pascal/Turbo Pascal - MATRIZ

 
Vista:

MATRIZ

Publicado por pol (3 intervenciones) el 27/03/2009 10:01:03
Hola que hay.
Tengo un problemilla con turbo pascalllll.
Quiero hacer que una matriz sea homogenesa en filas.
Me explico:
Si leo una matriz 4 5 6
5 7 8
9 7 8

Me haga otra
6 6 6
8 8 8
9 9 9
llevando todo al valor máx.

Utilizaré para ello un ''procedure'' peror no se hacer la inversión.
Que utilizo?contadores?if?
saludos y gracias
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:MATRIZ

Publicado por Miguel (159 intervenciones) el 27/03/2009 11:23:35
Supongo que sabes recorrer una matriz, lo que puedes hacer es mientras reccorres la matriz es ir cargando un vector con los mayores, es decir en el primer elemento del vector ira el 6, en el segundo el 8 y en el tercero el 9. Luego generaras una matriz del mismo tipo que la anterior, y ahora rellenas todos los elementos de la primer fila con el valor del primer elemento del arreglo, y asi con las siguientes. Como veras debes utilizar los mismos indices de un arreglo con el otro, para hacerlo mas sencillo.
Hay muchas formas de hacerlo, rapido se me ocurre esa. No se si lo has ententido al concepto, cualquier cosa has la prueba si no te sale posteas aca el codigo.
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:MATRIZ

Publicado por pol (3 intervenciones) el 27/03/2009 13:01:53
Hola otra vez.PRimero de todo gracias por contestar.
Pero como sé cuál es el mayor?cómo recorro cada fila cogiendo el mayor?
pufff
Sí,recorrer una matriz sé,pero como parar fila a fila y coger el mayor?No sé si me entiendes ;)

El nuevo vector que dices para guardar los elementos mayores sería de tipo array no?es decir ej: type
vector=array[1..50] of integer;
var
v:vector;

saludos
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:MATRIZ

Publicado por pol (3 intervenciones) el 27/03/2009 13:13:58
MIra Miguel esto sería lo que llevaría,haber...

program cambioalza;
type
matriz=array[1..50,1..50] of integer;
var
m:matriz;
k,i,j,n:integer;

procedure cambioalza(var m1:matriz)
type
vector=array[1..50] of integer;
matriz2=array[[1..50,1..50] of integer;
var
i,j:integer;
v(*donde guardo los t‚rminos m ximos*):vector;
m2(*matriz final*):matriz2;

for i:=1 to n do
begin
for j:=1 to n do
read(m1[i,j]);



begin(*PRINCIPAL*);
Wrietln('Introduce las dimensi¢n de la matriz');
read(n);
for i:=1 to n
begin
for J:=1 to n
write('Escribe el elemento',i,',',j);
read(m[i,j]);
cambioalza
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:MATRIZ

Publicado por Miguel (159 intervenciones) el 27/03/2009 17:32:55
Mira Pol aca te dejo un ejemplo, creo que lo vas a entender, en la accion PasarAMayores se hace la busqueda del numero mayor.
Las acciones CargarMatriz, y MostrarMatriz, no son de mayor importancia, pero era para mostrarte el ejemplo.

PROGRAM prueba;
USES Crt;
CONST
Sup = 3;
TYPE
TMatriz = ARRAY[1..Sup,1..Sup] OF INTEGER;
TVector = ARRAY[1..Sup] OF INTEGER;
VAR
mat : TMatriz;
vec : TVector;
PROCEDURE CrearMatriz (VAR a : TMatriz);
VAR
i,j : INTEGER;
cont : INTEGER;
BEGIN
i:=1;
cont:=1;
WHILE i<=Sup DO
BEGIN
j:=1;
WHILE j<=Sup DO
BEGIN
a[i,j]:=cont;
cont:=cont+1;
j:=j+1;
END;
i:=i+1;
END;
END;
PROCEDURE PasarMayores (a : TMatriz; VAR b : TVector);
VAR
i,j : INTEGER;
may : INTEGER;
BEGIN
i:=1;
may:=0;
WHILE i<=Sup DO
BEGIN
j:=1;
WHILE j<=Sup DO
BEGIN
IF a[i,j]>may
THEN
may:=a[i,j];
j:=j+1;
END;
b[i]:=may;
i:=i+1;
END;
END;
PROCEDURE RecargarMatriz (VAR a : TMatriz; b : TVector);
VAR
i,j : INTEGER;
BEGIN
i:=1;
WHILE i<=Sup DO
BEGIN
j:=1;
WHILE j<=Sup DO
BEGIN
a[i,j]:=b[i];
j:=j+1;
END;
i:=i+1;
END;
END;
PROCEDURE MostrarMatriz (VAR a : TMatriz);
VAR
i,j : INTEGER;
BEGIN
i:=1;
WHILE i<=Sup DO
BEGIN
j:=1;
WHILE j<=Sup DO
BEGIN
WRITE(a[i,j]);
j:=j+1;
END;
WRITELN();
i:=i+1;
END;
END;

BEGIN
CrearMatriz(mat);
PasarMayores(mat,vec);
RecargarMatriz(mat,vec);
MostrarMatriz(mat);
READKEY;
END.
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