Здесь показаны различия между двумя версиями данной страницы.
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> |