Здесь показаны различия между двумя версиями данной страницы.
| Both sides previous revision Предыдущая версия | |||
|
howto:arrays [2024/12/13 10:27] aleks_versus update 5.9.1 |
howto:arrays [2024/12/13 10:36] (текущий) aleks_versus |
||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ====Двумерные массивы с числовыми индексами==== | ====Двумерные массивы с числовыми индексами==== | ||
| - | Пример симуляции двумерного массива | + | Реализация двумерного массива через одномерный требует от нас самого малого: понять, как соотносятся координаты ячеек с шириной двумерного массива. Для этого давайте взглянем на формулу: |
| + | |||
| + | <sxh qsp> | ||
| + | N = x + y * WIDTH | ||
| + | </sxh> | ||
| + | |||
| + | Здесь ''N'' - это номер ячейки одномерного массива, ''WIDTH'' - ширина двумерного массива, а ''x'' и ''y'' — координаты ячейки в двумерном массиве. | ||
| + | |||
| + | Допустим наш двумерный массив должен иметь ширину 6 и высоту 8 ячеек. Нумерация ячеек как по оси ''x'' так и по оси ''y'' начинается с нуля. Таким образом номер ячейки с координатами ''0,0'' в одномерном массиве будет: | ||
| + | |||
| + | <sxh qsp> | ||
| + | N = 0 + 0 * 6 = 0 | ||
| + | </sxh> | ||
| + | |||
| + | Обратите внимание, высота массива в формуле не учитывается, а значит по высоте массив можно растягивать произвольно, используя всё ту же формулу с шириной 6 ячеек. Однако если мы изменим ширину двумерного массива, индексы одномерного массива в пересчёте на координаты ячеек двумерного изменятся. | ||
| + | |||
| + | Для понимания, как работает эта формула ознакомьтесь с примером симуляции двумерного массива через одномерный: | ||
| <sxh qsp> | <sxh qsp> | ||