Autor Tema: Inquietud con poscion[i][j] del siguiente arreglo  (Leído 3028 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado CompSystems

  • PIC18
  • ****
  • Mensajes: 488
    • Home Page
Inquietud con poscion[i][j] del siguiente arreglo
« en: 21 de Agosto de 2013, 21:46:48 »
Hola, el siguiente código lo extraje de un libro de métodos numéricos

dice que la posicion (2,1) del arreglo es 8, por que?

lo realiza con calculo directo array[j] y con punteros



Código: C++
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(int argc, char *argv[]) {
  5.         int *pA, array[4][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
  6.        
  7.         int n, i, j;
  8.                
  9.         n = 3;
  10.         i = 2;
  11.         j = 1;
  12.        
  13.         pA = &(array[0][0]);
  14.         cout << "array[i=" << i << "][j=" << j << "] = " << array[i][j] << "\n *(pA + i*n + j ) =" << *(pA + i*n + j )<< endl;
  15.        
  16.         return 0;
  17. }

salida

8 // array[ i ] [ j ]
8 // con puntero
« Última modificación: 21 de Agosto de 2013, 21:52:34 por CompSystems »
Desde Colombia

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Inquietud con poscion[i][j] del siguiente arreglo
« Respuesta #1 en: 21 de Agosto de 2013, 23:04:26 »
Hola amigo,

no está diciendo que la posicion (2,1) del arreglo es 8. Está diciendo que el contenido del elemento array[2,1] es 8, cosa muy distinta.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: Inquietud con poscion[i][j] del siguiente arreglo
« Respuesta #2 en: 21 de Agosto de 2013, 23:19:00 »
Hola BrunoF!

CompSystems:
Es un array de arrays
Un array cuyos 4 elementos son 3 arrays
Recordá  que los arrays en c se crean con un tamaño n y luego se acceden a ellos con un índice que es n-1.
Código: [Seleccionar]
Array[4][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };

Array [0][0]=1
Array [0][1]=2
Array [0][2]=3

Array [1][0]=4
Array [1][1]=5
Array [1][2]=6

Array [2][0]=7
Array [2][1]=8 //  :)
Array [2][2]=9

Array [3][0]=10
Array [3][1]=11
Array [3][2]=12
Saludos a ambos.
Jukinch
« Última modificación: 21 de Agosto de 2013, 23:21:17 por jukinch »
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado CompSystems

  • PIC18
  • ****
  • Mensajes: 488
    • Home Page
Re: Inquietud con poscion[i][j] del siguiente arreglo
« Respuesta #3 en: 24 de Agosto de 2013, 17:02:20 »
Gracias ...

Nunca había trabajado un arreglo bidimensional como una sola lista de elementos.

Visto en forma matricial {{}, {}, ...} es preciso por que en cada fila se aprecia mejor cualquier elemento a(i,j)

Código: C++
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(int argc, char *argv[]) {
  5.         int *pA, array[4][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} };
  6.        
  7.         //int *pA, array[4][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
  8.        
  9.         int n, i, j;
  10.                
  11.         n = 3;
  12.         i = 2;
  13.         j = 1;
  14.        
  15.         pA = &(array[0][0]);
  16.         cout << "array[i=" << i << "][j=" << j << "] = " << array[i][j] << "\n *(pA + i*n + j ) = " << *(pA + i*n + j )<< endl;
  17.        
  18.         return 0;
  19. }


matrix ( 4 filas * 3 columnas )
{ {1, 2, 3}
   {4, 5, 6}
   {7, 8, 9}
   {10, 11, 12} }

posición de los elementos

{ { 0,0  0,1 0,2 }
   { 1,0  1,1 1,2 }
   { 2,0  2,1 2,2 }
   { 3,0  3,1 3,2 }}
Desde Colombia


 

anything