Двомірні масиви. Типові операції з масивами

Скачать презентацию на тему: "Двомірні масиви. Типові операції з масивами" с количеством слайдов в размере 14 страниц. У нас вы найдете презентацию на любую тему и для каждого класса школьной программы. Мы уверены, что наши слайды помогут найти вам свою аудиторию. Весь материал предоставлен бесплатно, в знак благодарности мы просим Вас поделиться ссылками в социальных сетях и по возможности добавьте наш сайт MirPpt.ru в закладки.

Нажмите для просмотра
Двомірні масиви. Типові операції з масивами

1: Лекція-7. Двомірні масиви. Типові операції з масивами Проблеми представлення багатовимірних масивів виникають через відсутність спеціальних засобів для опису такого типу даних. Двомірний масив потрібно моделювати. На описі самих даних це майже ніяк не відбивається — память під масив виділяється за допомогою директив резервування й ініціалізації памяті.

2: Двомірні масиви Безпосереднє моделювання обробки масиву виробляється в сегменті коду, де програміст, описуючи алгоритм обробки асемблеру, визначає, що деяку область памяті необхідно трактувати як двомірний масив. При цьому ви вільні у виборі того, як розуміти розташування елементів двомірного масиву в памяті: по чи рядках по стовпцях.

3: Двомірні масиви Якщо послідовність однотипних елементів у памяті трактується як двомірний масив, розташований по рядках, то адреса елемента (i, j) обчислюється по формулі (база m розмірелемента ij) де m – кількість елементів у рядку i 0. . . n–1 указує номер рядка, j 0. . . m–1 указує номер стовпця.

4: Двомірні масиви Наприклад, нехай маємо масив чисел (розміром у 1 байт) mas(i, j) з розмірністю 4 на 4 (i 0. . . 3, j 0. . . 3): 23040567 05060799 67080923 87090008

5: Двомірні масиви У памяті елементи цього масиву будуть розташовані в наступній послідовності: 23 04 05 67 05 06 07 99 67 08 09 23 87 09 00 08

6: Двомірні масиви Якщо ми хочемо трактувати цю послідовність як двомірний масив, приведений вище, і витягти, наприклад, елемент mas(2, 3) 23, то провівши нехитрий підрахунок, переконаємося в правильності наших міркувань: Ефективна адреса mas(2,3)mas4123mas11

7: Двомірні масиви Подивимось на представлення масиву в памяті і переконаємось, що по цьому зсуву дійсно знаходиться потрібний елемент масиву. 23 04 05 67 05 06 07 99 67 08 09 23 87 09 00 08

8: Двомірні масиви Організувати адресацію двомірного масиву логічно, використовуючи розглянуту нами раніше базово-індексну адресацію.

9: Доступ до елементів масиву При цьому можливі два основних варіанти вибору компонентів для формування ефективної адреси: сполученням прямої адреси, як базового компонента адреси, і двох індексних регістрів для збереження індексів: mov ax,masebxesi сполученням двох індексних регістрів, один із яких є і базовим і індексної одночасно, а іншої — тільки індексним: mov ax,ebxesi

10: ;Фрагмент програми вибірки елемента ;масиву mas(2,3) і його обнуління . data mas db 23,4,5,67,5,6,7,99,67,8,9,23,87,9,0,8 i2 j3 . code . . . movsi,41i movdi,j moval,massidi ;у al елемент mas(2,3)

11: Приклад Як закінчений приклад розглянемо програму пошуку елемента в двомірному масиві чисел Елементи масиву задані статично.

12: MASM MASM MODELsmall STACK256 . data ;матриця розміром 2x5 ;для наочності ъъ можна описати так: ;arraydw2 DUP (5 DUP (?)) ;але ми її ініціалізуємо arraydw1,2,3,4,5,6,7,3,9,0 ;логічно це буде виглядати так: ;array 1 2; 3 4; 5 6; 7 3; 9 0 elemdw3 ;елемент для пошуку faileddb0ah,0dh,Немає такого елемента в масиві!,$ successdb0ah,0dh,Такий елемент у масиві присутній ,$ foundtimedb? ;кількість знайдених елементів fnddb раз(ів),0ah,0dh,$

13: ;якщо поточний збігся із шуканим, ;якщо поточний збігся із шуканим, ;то перехід на here для обробки, ;інакше цикл продовження пошуку jehere ;інакше — цикл по рядку cx2 разів loopiternal here:jcxz movenext;переглянули рядок? incfoundtime ;інакше збільшуємо лічильник ;що збіглися movenext:;просування в матриці popcx ;відновлюємо CX зі стека (5) addbx,1 ;пересуваємося на наступну рядок loopexternal;цикл (зовнішній) cmpfoundtime,0h ;порівняння числа збігів з 0 jaeql ;якщо більше 0, то перехід notequal: ;немає елементів, що збіглися

14: Домашнє завдання Розібрати програму сортування масиву, яка представлена в електронному конспекті лекцій

Скачать презентацию


MirPpt.ru