Witam. Wykładowca w 2 różnych przykładach dał 2 różne opcje, dlatego nie jestem już sam pewien.
Jeśli mamy tablicę o wymiarach 3x4 (M x N) to liczba 3(M) jest liczbą kolumn czy wierszy ?
A jaka różnica? To jest kwestia definicji.
Przeważnie wierszy x kolumny w C: [wierszy][kolumny] ale jednak nie ma to żadnego znaczenia.
Czyli przykład który podałem może być rozpisany na kartce tak ?:
http://oi42.tinypic.com/sdzrj4.jpg
Pomijając oczywiście odpowiednio równe wielkości komórek
Wszystkie struktury danych trzymane są w pamięci, która jest adresowana linowo. W takim razie dla tablic wielowymiarowych też trzeba jakoś tłumaczyć adresowanie na liniowe.
Generalnie, dla struktury N wymiarowej, o wymiarach K1, K2, K3, ..., KN i indeksach x1, x2, x3, ..., xN pozycję elementu liczymy ze schematu Hornera, czyli:
pozycja końcowa = (...(((x1 * K2) + x2) * K3 + x3) * ...) * Kn + xN
(no chyba, że coś pokręciłem)
Oczywiście, jeśli ktoś ma kaprys, to można odwrócić tę kolejność. Dla przykładu jest różnica pomiędzy OpenGL i Direct3D jeśli chodzi o indeksowanie elementów w macierzach - jedno ma odwrotnie niż drugie.
Moim zdaniem jaśniej i lepiej tablica[wiersze][kolumny] . Tak jak indeksy w macierzy.
czyli to co na zdjęciu dałem jest poprawnie ?
Przede wszystkim o jaki język programowania chodzi? To byś doprecyzował. Gdyż za tag z "czterech liter", nagodzę wątek koszem i tyle :/
W arkuszach kalkulacyjnych jest dość jednoznaczne co jest wierszem, a co kolumną. W Excelu konkretna komórka ma adres Cells(wiersz, kolumna), a w Calcu Sheet.getCellByPosition(kolumna,wiersz).