![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Векторная память поддерживается почти всеми языками высокого уровня и предназначена для хранения массивов различной размерности и различных размеров. Каждому массиву выделяется непрерывный участок памяти указанного размера. При этом элементы, например, двухмерного массива X размерностью n 1´ n 2 размещаются в ОП в следующей последовательности:
Х (0,0), Х (0,1), Х (0,2),... Х (0, n 2–1),..., Х (1,0), Х (1,1), Х (1,2),... Х (1, n 2–1),..., Х (n 1–1,0), Х (n 1–1,1), Х (n 1–1,2),..., Х (n 1–1, n 2–1).
Адресация элементов массива определяется некоторой адресной функцией, связывающей адрес и индексы элемента.
Пример адресной функции для массива Х:
K (i, j) = n 2* i + j;
где i = 0,1,2,...,(n 1–1); j = 0,1,2,...,(n 2–1); j – изменяется в первую очередь.
Адресная функция двухмерного массива A (n, m) будет выглядеть так:
N 1 = K (i, j) = m * i + j,
i =0,1,..., n –1; j =0,1,..., m –1.
Тогда справедливо следующее:
A (i, j) «B (K (i, j)) = B (N 1),
B – одномерный массив с размером N 1 = n * m.
Например, для двухмерного массива A (2,3) имеем:
(0,0) | (0,1) | (0,2) | (1,0) | (1,1) | (1,2) | – индексы массива А; |
– индексы массива В. |
Проведем расчеты:
i = 0, j = 0 N 1 = 3*0+0 = 0 B (0)
i = 0, j = 1 N 1 = 3*0+1 = 1 B (1)
i = 0, j = 2 N 1 = 3*0+2 = 2 B (2)
i = 1, j = 0 N 1 = 3*1+0 = 3 B (3)
i = 1, j = 1 N 1 = 3*1+1 = 4 B (4)
i = 1, j = 2 N 1 = 3*1+2 = 5 B (5)
Аналогично получаем адресную функцию для трехмерного массива Х (n 1, n 2, n 3):
K (i, j, k) = n 3* n 2* i + n 2* j + k,
где i = 0,1,2,...,(n 1–1); j = 0,1,2,...,(n 2–1);); k = 0,1,2,...,(n 3–1); значение k – изменяется в первую очередь.
Для размещения такого массива потребуется участок ОП размером (n 1* n 2* n 3)* sizeof (type). Рассматривая такую область как одномерный массив Y (0,1,..., n 1* n 2* n 3), можно установить соответствие между элементом трехмерного массива X и элементом одномерного массива Y:
X (i, j, k) «Y (K (i, j, k)).
Необходимость введения адресных функций возникает лишь в случаях, когда требуется изменить способ отображения с учетом особенностей конкретной задачи.
Дата публикования: 2015-09-17; Прочитано: 196 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!