• Jueves 28 de Marzo de 2024, 16:38

Autor Tema:  problema pascal matrices y suma  (Leído 6624 veces)

yaelito0

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
problema pascal matrices y suma
« en: Martes 7 de Diciembre de 2010, 03:19 »
0
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
  1. program matriz_3x3;
  2. uses crt, windows;
  3. type numerosale=array[1..4,1..4] of integer;
  4. var i,j,suma:integer;
  5.  posx, posy:integer;
  6.  x:numerosale;
  7. begin
  8. clrscr;
  9. randomize;
  10. for i:=2 to 3 do begin
  11. for j:=2 to 3 do begin
  12. x[i,j]:=random(11);
  13. end;
  14. end;
  15.  
  16.  
  17.  
  18.  
  19. i:=2;
  20. j:=2;
  21. for j:=2 to 3 do begin
  22. suma:=suma+x[i,j];
  23. i:=i+1;
  24. j:=j+1;
  25. end;
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. posx:=10;
  37. posy:=40;
  38. for i:=1 to 4 do begin
  39. posy:=37;
  40. for j:=1 to 4 do begin
  41. gotoxy(posy,posx);
  42. if x[j,i]<7 then textcolor (12) else textcolor(white);
  43. write(x[j,i]);
  44. posy:=posy+3;
  45. end;
  46. posx:=posx+1;
  47. end;
  48. readkey;
  49. end.
  50.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: problema pascal matrices y suma
« Respuesta #1 en: Martes 7 de Diciembre de 2010, 11:45 »
0
No entiendo, ¿una matrix de 3x3 pero declaras un array de 4x4 y luego recorres de 2 a 3?

yaelito0

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: problema pascal matrices y suma
« Respuesta #2 en: Martes 7 de Diciembre de 2010, 21:44 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: problema pascal matrices y suma
« Respuesta #3 en: Miércoles 8 de Diciembre de 2010, 00:43 »
0
Código: Delphi
  1. for j:=2 to 3 do
  2. begin
  3. suma:=suma+x[i,j];
  4. i:=i+1;
  5. j:=j+1;
  6. end;
  7.  
  8.  
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
  1. for i:=2 to 3 do
  2.     begin
  3.         for j:=2 to 3 do
  4.         begin
  5.             x[i,j]:=random(11);
  6.         end;
  7.     end;
  8.  
Por lo que veo, no asignas valores a toda la matriz, solo las casilas 2x2,2x3,3x2,3x3

yaelito0

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: problema pascal matrices y suma
« Respuesta #4 en: Miércoles 8 de Diciembre de 2010, 01:48 »
0
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
  1. for j:=2 to 3 do begin
  2. suma:=0;
  3. for i:=2 to 3 do begin
  4. suma:=suma+x[i,j];
  5. end;
  6. x[1,4]:=suma
  7.  
  8. end;
  9.  




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  :)

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: problema pascal matrices y suma
« Respuesta #5 en: Miércoles 8 de Diciembre de 2010, 04:50 »
0
Te cito tu codigo:
Código: Delphi
  1. for j:=2 to 3 do begin
  2. suma:=0;
  3. for i:=2 to 3 do begin
  4. suma:=suma+x[i,j];
  5. end;
  6. x[1,4]:=suma
  7.  
  8. end;
  9.  
si la matriz es 4x4, en el caso tuyo sumaria los campos que marco aqui con una X
Código: C
  1.  
  2. ····
  3. ·XX·
  4. ·XX·
  5. ····
  6.  
  7.  
como ya te habia dicho antes, eso sumaria los campos 2x2, 2x3, 3x2,3x3

Si lo que quieres es sumar la linea diagonal, 1x1,2x2,3x3,4x4 asi:
Código: C
  1.  
  2. x···
  3. ·X··
  4. ··X·
  5. ···X
  6.  
el codigo es más sencillo, solo alcanza un for
Código: Pascal
  1.  
  2. for 1:=1 to 4 do
  3.     suma:=suma+x[i,i];
  4.  
  5.  

yaelito0

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: problema pascal matrices y suma
« Respuesta #6 en: Miércoles 8 de Diciembre de 2010, 05:19 »
0
gracias amigo por ayudarme  :P

ya logre correr el programa con suma y de color rojito los ceros   :beer:

netta me ayudaron aqui gracias  :good:


aqui les dejo mi codigo final para que lo chequen como me quedo:

Código: Pascal
  1. program matrizon;
  2. uses crt, windows;
  3. type numerosale=array[1..4,1..4] of integer;
  4. var lin,col,a,y,suma:integer;
  5.  posx, posy:integer;
  6.  x:numerosale;
  7. begin
  8. clrscr;
  9. randomize;
  10. for a:=2 to 3 do begin
  11. for y:=2 to 3 do begin
  12. x[a,y]:=random(11);
  13. end;
  14. end;
  15.  
  16. lin:=2;
  17. col:=2;
  18. for y:=2 to 3 do begin
  19.  
  20. suma:=suma+x[lin,col];
  21. x[4,4]:=suma;
  22. x[1,1]:=suma;
  23. lin:=lin+1;
  24. col:=col+1;
  25. end;
  26.  
  27.  
  28. lin:=3;
  29. col:=2;
  30. suma:=0;
  31. for a:=2 to 3  do begin
  32. suma:=suma+x[lin,col];
  33. x[1,4]:=suma;
  34. x[4,1]:=suma;
  35. lin:=lin-1;
  36. col:=col+1;
  37. end;
  38.  
  39.  
  40. posx:=10;
  41. posy:=40;
  42. for a:=1 to 4 do begin
  43. posy:=37;
  44. for y:=1 to 4 do begin
  45. gotoxy(posy,posx);
  46. if x[y,a]<1 then textcolor (12) else textcolor(white);
  47. write(x[y,a]);
  48. posy:=posy+3;
  49. end;
  50. posx:=posx+1;
  51. end;
  52. readkey;
  53. end.
  54.  

de todo corazon (vuelvo a repetir) gracias  :hola:

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: problema pascal matrices y suma
« Respuesta #7 en: Miércoles 8 de Diciembre de 2010, 05:53 »
0
De nada xD
aunque creo que te las arreglas solo bastante bien tambien   :rolleyes:

cualquier duda, ya sabes  :P