2.1. Тема: Моделювання подання в пам'яті векторів і таблиць
2.2. Мета: Придбання і закріплення навичок розміщення в пам'яті векторів і таблиць.
2.3. Теми для попередньї роботи
2.3.1. Найпростіші статичні структури даних
2.4. Індивідуальні завдання
Розробити спосіб ощадливого розміщення в пам'яті заданої розрідженої таблиці, де записані цілі числа. Розробити процедури/функції, що забезпечують доступ до елементів таблиці по номерах рядка і стовпця. У контрольній програмі забезпечити запис і читання всіх елементів таблиці. Порівняти час доступу до елементів таблиці для традиційного та ощадливого подання її в пам'яті. Варіант завдання обрати у таблиці 2.1 згідно із своїм номером у журналі
Таблиця 2.1. Варіанти індивідуальних завдань
#п/п |
Вид вихідної матриці |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Нульові елементи розташовані в лівій половині матриці Нульові елементи розташовані в правій половині матриці Нульові елементи розташовані вище головної діагоналі Нульові елементи розташовані у верхній половині матриці Нульові елементи розташовані в нижній половині матриці Усі елементи непарних рядків - нульові Усі елементи парних рядків - нульові Усі елементи непарних стовпців - нульові Усі елементи парних стовпців - нульові Нульові елементи розташовані в шаховому порядку, починючи з 1-го елемента 1-го рядка Нульові елементи розташовані в шаховому порядку, починаючи з 2-го елемента 1-го рядка Нульові елементи розташовані на місцях з парними індексами рядків і стовпців Нульові елементи розташовані на місцях з непарними індексами рядків і стовпців Нульові елементи розташовані вище головної діагоналі на непарних рядках і нижче головної діагоналі - на парних Нульові елементи розташовані нижче головної діагоналі на непарних рядках і вище головної діагоналі - на парних Нульові елементи розташовані у першій та третій тритинах строк матриці. Нульові елементи розташовані у лівій та правій тритинах стовпців матриці. |
18 19 20 21 22 23 24 25 26 27 29 30 |
Нульові елементи розташовані у першій та третій тритинах строк та у лівій та правій тритинах стовпців матриці. Нульові елементи розташовані на головній діагоналі й у верхній половині матриці вище діагоналі Нульові елементи розташовані на головній діагоналі й у нижній половині матриці нижче діагоналі Нульові елементи розташовані у верхній та нижній чвертях матриці. Нульові елементи розташовані в лівій та правій чвертях матриці. Нульові елементи розташовані в лівій та верхній чвертях матриці Нульові елементи розташовані на рядках, індекси яких кратні 3 Нульові елементи розташовані на стовпцях, індекси яких кратні 3 Нульові елементи розташовані у верхній тритині строк та середній тритині стовбців. Нульові елементи розташовані у верхній тритині строк, першій та третій тритині стовбців. Нульові елементи розташовані у верхньму і нижньму трикутниках, за умов розподілення матриці діагоналями на 4 трикутники. Нульові елементи розташовані у лівому та правому трикутниках, за умов розподілення матриці діагоналями на 4 трикутники. |
2.5. Приклад рішення задачі
Нульові елементи в матриці цілих чисел розташовані нижче головної діагоналі.
2.5.1. Вибір методу
У внутрішньому представленні масиву немає необхідності зберігати нульові (фонові) елементи, такі, що: M[x,y] = 0 при x<y.
Якщо виключити нульові елементи зі збереження і представити матрицю у вигляді одновимірного масиву, то формула лініаризації (переходу від двокоординатного звертання до одно координатного) запишеться як:
j = СУМА[і= від 1 до y-1](XM-(і-1)) + x-(y-1) (7.1)
де x, y - номера стовпця і рядка відповідно; XM - число елементів у рядку.
1.5.1. Текст програми
Program LAB2;
uses DataStr;
Var
arru: array[1..100,1..100] of integer; { Повна таблиця }
arrp: array[1..5050] of integer; { Стиснута таблиця }
XM : integer; { Максимальні індекси в таблиці}
{==== Функція переобчислення індексів ==== }
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.