Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kolejnosc zapisywania elementow tablicy trojwymiarowej przez komputer w pamieci

Ostatnio zmodyfikowano 2016-04-19 17:34
Autor Wiadomość
lukasz427
Temat założony przez niniejszego użytkownika
Kolejnosc zapisywania elementow tablicy trojwymiarowej przez komputer w pamieci
» 2016-04-19 13:45:37
Temat zaczerpniety z zadania z "Symfonii...".

W jakiej kolejnosci beda zapisywane przez komputer w pamieci poszczegolne elementy tablicy trojwymiarowej tab[4][2][2]?

Na moje jesli elementy tablicy dwuwymiarowej komputer zapisuje w takiej kolejnosci int tab[4][2](Tak podaje autor ksiazki)

[0][0]
[0][1]
[1][0]
[1][1]
[2][0] 
[2][1]
[3][0]
[3][1]
 
to w tablicy trojwymiarowej int tab[4][2][2] kolejnosc zapisywania elementow bedzie analogicznie:

[0][0][0]
[0][0][1]
[0][1][0]
[0][1][1]

[1][0][0]
[1][0][1]
[1][1][0]
[1][1][1]

[2][0][0]
[2][0][1]
[2][1][0]
[2][1][1]

[3][0][0]
[3][0][1]
[3][1][0]
[3][1][1]

Spotkalem sie z zupelnie inna odpowiedzia.Moze sam cos krece?


Moze to nie takie wazne ale ponoc znajomosc tego przydaje sie przy wskaznikach do ktorych jeszcze nie dotarlem:).

Z gory bardzo dziekuje za sugestie.
P-147427
DejaVu
» 2016-04-19 14:55:47
  • utwórz tablicę 3-wymiarową;
  • wypełnij ją kolejnymi liczbami rosnącymi;
  • weź wskaźnik pierwszego elementu tablicy 3-wymiarowej i przypisz go do wskaźnika tablicy jednowymiarowej;
  • wypisz zawartość tablicy jednowymiarowej;
  • wyciągnij wnioski.
P-147429
lukasz427
Temat założony przez niniejszego użytkownika
» 2016-04-19 17:34:56
Spróbowałem pokombinować bez wskaźników i wychodzi na to, że kolejność, którą podałem jest prawidłowa.Jest oczywiście prawdopodobne, że nie wziąłem czegoś pod uwagę.Proszę o sugestie czy można to sprawdzić  w ten sposób

C/C++
#include <iostream>
using namespace std;

int main()
{
    int t[ 4 ][ 2 ][ 2 ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
   
    /*
    //albo wypełnienie za pomocą pętli   z tym,że tutaj nie jestem pewien czy sam nie determinuje kolejności zapisywania elementów
   
    int t[4][2][2];
        for(int i = 0, j = 0, k = 0, l = 0; ;l++,k++)//pętla wypełniająca poszczególne elementy  tablicy kolejnymi liczbami
   
    {
   
   
   
        if(k == 2)
        {
            k = 0;
            j++;
        }
        if(j == 2)
        {
            j = 0;
            i++;
        }
        if(i == 4)
        break;
   
    t[i][j][k] = l;
   
    }
    */
   
   
    cout << t[ 0 ][ 0 ][ 0 ]
    << t[ 0 ][ 0 ][ 1 ]
    << t[ 0 ][ 1 ][ 0 ]
    << t[ 0 ][ 1 ][ 1 ]
   
    << t[ 1 ][ 0 ][ 0 ]
    << t[ 1 ][ 0 ][ 1 ]
    << t[ 1 ][ 1 ][ 0 ]
    << t[ 1 ][ 1 ][ 1 ]
   
    << t[ 2 ][ 0 ][ 0 ]
    << t[ 2 ][ 0 ][ 1 ]
    << t[ 2 ][ 1 ][ 0 ]
    << t[ 2 ][ 1 ][ 1 ]
   
    << t[ 3 ][ 0 ][ 0 ]
    << t[ 3 ][ 0 ][ 1 ]
    << t[ 3 ][ 1 ][ 0 ]
    << t[ 3 ][ 1 ][ 1 ];
   
}

Wykonanie programu:
0123456789101112131415
P-147438
« 1 »
  Strona 1 z 1