Programación General > Pascal

 problema pascal matrices y suma

(1/2) > >>

yaelito0:
hola tengo un problñema con pascal tengo un programa que a otros les corre bien y lo intente correr yo y haciendole mis cambios propios, pero  :blink:  NO ME FUNCIONO! sniff :(

ahorita tengo mi codigo y yo digo que ya esta completo pero el fallo me dice:             illegal assigment for-loop variable "j"

solo pido que me aconsejen o maso me den pistas xD, mas no quiero que me lo resuelvan, porque quiero estudiarlo.............  gracias :hola:


--- Código: Pascal ---program matriz_3x3;uses crt, windows;type numerosale=array[1..4,1..4] of integer;var i,j,suma:integer; posx, posy:integer; x:numerosale;beginclrscr;randomize;for i:=2 to 3 do beginfor j:=2 to 3 do beginx[i,j]:=random(11);end;end;    i:=2;j:=2;for j:=2 to 3 do beginsuma:=suma+x[i,j];i:=i+1;j:=j+1;end;          posx:=10;posy:=40;for i:=1 to 4 do beginposy:=37;for j:=1 to 4 do begingotoxy(posy,posx);if x[j,i]<7 then textcolor (12) else textcolor(white);write(x[j,i]);posy:=posy+3;end;posx:=posx+1;end;readkey;end. 

m0skit0:
No entiendo, ¿una matrix de 3x3 pero declaras un array de 4x4 y luego recorres de 2 a 3?

yaelito0:
a pues mi amigo te explicare

el "matriz_3x3" es el nombre de programa (es que me base de otro programa para hacer este)

si efectivamente los arreglos son de 1 a 4 y es bidimensional.

y cuando recorre de 2 a 3 para almacenar numeros aleatorios en esos espacios del arreglo (ya saben el randomize para dar nunmeros aleatorios)


esto es todo espero su ayuda

gracias

Enko:

--- Código: Delphi ---for j:=2 to 3 do beginsuma:=suma+x[i,j];i:=i+1;j:=j+1;end;  Hay algo mal ahí, el bucle es j de 2  a 3.
luego dentro del bucle, asignas a j:=j+1  para la primer ejecucion 2+1=3  
Es decir, en teoria habría una ejecucion única del bucle y no sería un bucle propiamente dicho, es decir, algo así como for j:=2 to 2.... no tiene sentido.

--- Código: Delphi ---for i:=2 to 3 do     begin        for j:=2 to 3 do         begin            x[i,j]:=random(11);        end;    end; Por lo que veo, no asignas valores a toda la matriz, solo las casilas 2x2,2x3,3x2,3x3

yaelito0:
jejeje idsculpen jejeje ya vi mi error, pero aun asi toy mal en mi programa


wenu lñes explicare algo que se me olvido comentar, lo que intento hacer es que despues que muestre los numeros aleatorios los sume en diagonal ejemplo:

               12  0  0  14
                 0  6  7  0
                 0  7  6  0
               14  0  0  12


y otra parte que acabo de hacer es sumarlos.......pero me suma en otra parte que no es diagonal........... y me sale asi:


                  0  0  0  0
                  0  2  7  0
                  0  7 10 0
                17  0   0 0

y si se fijan lo que suma es la fila 3 y la mustra abajo.................rayos ya me desespere por tratar de sumarlo en diagonal  :oops:

espero un gran consejo sobre como hacerlo sumar en diagonal......................................

este es el codigo de donde me sale lo anterior:


--- Código: Pascal ---for j:=2 to 3 do beginsuma:=0;for i:=2 to 3 do beginsuma:=suma+x[i,j];end;x[1,4]:=suma end; 



nota: no es tarea, es el proyecto de grupo para mostrar en una semana cultural y nosotros mostraremos una exhibicion de programas, pero el caso que no hemos encontrado como hacerle, apenas tamos aprendiendo, pococ apoco pero ahi vamos n_n, y ps no les pido que lo resuelvan o quisas con solo verlo ya tengan la respuesta xD, solo pido ayuda y consejos para que yo mismo lo logre... gracias  :)

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa