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

Нажмите для полного просмотра!
Двомірні масиви. Типові операції з масивами, слайд №1Двомірні масиви. Типові операції з масивами, слайд №2Двомірні масиви. Типові операції з масивами, слайд №3Двомірні масиви. Типові операції з масивами, слайд №4Двомірні масиви. Типові операції з масивами, слайд №5Двомірні масиви. Типові операції з масивами, слайд №6Двомірні масиви. Типові операції з масивами, слайд №7Двомірні масиви. Типові операції з масивами, слайд №8Двомірні масиви. Типові операції з масивами, слайд №9Двомірні масиви. Типові операції з масивами, слайд №10Двомірні масиви. Типові операції з масивами, слайд №11Двомірні масиви. Типові операції з масивами, слайд №12Двомірні масиви. Типові операції з масивами, слайд №13Двомірні масиви. Типові операції з масивами, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Двомірні масиви. Типові операції з масивами. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лекція-7. Двомірні масиви. Типові операції з масивами 

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

Слайд 2





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

Слайд 3





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

Слайд 4





Двомірні масиви
Наприклад, нехай маємо масив чисел (розміром у 1 байт) mas(i, j) з розмірністю 4 на 4 
(i= 0...3, j = 0...3): 
23	04	05	67
05	06	07	99
67	08	09	23
87	09	00	08
Описание слайда:
Двомірні масиви Наприклад, нехай маємо масив чисел (розміром у 1 байт) mas(i, j) з розмірністю 4 на 4 (i= 0...3, j = 0...3): 23 04 05 67 05 06 07 99 67 08 09 23 87 09 00 08

Слайд 5





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

Слайд 6





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

Слайд 7





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

Слайд 8





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

Слайд 9





Доступ до елементів масиву
При цьому можливі два основних варіанти вибору компонентів для формування ефективної адреси: 
сполученням прямої адреси, як базового компонента адреси, і двох індексних регістрів для збереження індексів: 
mov ax,mas[ebx][esi] 
сполученням двох індексних регістрів, один із яких є і базовим і індексної одночасно, а іншої — тільки індексним: 
mov ax,[ebx][esi]
Описание слайда:
Доступ до елементів масиву При цьому можливі два основних варіанти вибору компонентів для формування ефективної адреси: сполученням прямої адреси, як базового компонента адреси, і двох індексних регістрів для збереження індексів: mov ax,mas[ebx][esi] сполученням двох індексних регістрів, один із яких є і базовим і індексної одночасно, а іншої — тільки індексним: mov ax,[ebx][esi]

Слайд 10






;Фрагмент програми вибірки елемента
;масиву mas(2,3) і його обнуління
.data
mas db
23,4,5,67,5,6,7,99,67,8,9,23,87,9,0,8
i=2
j=3
.code
...
mov	si,4*1*i
mov	di,j
mov	al,mas[si][di]
;у al елемент mas(2,3)
Описание слайда:
;Фрагмент програми вибірки елемента ;масиву mas(2,3) і його обнуління .data mas db 23,4,5,67,5,6,7,99,67,8,9,23,87,9,0,8 i=2 j=3 .code ... mov si,4*1*i mov di,j mov al,mas[si][di] ;у al елемент mas(2,3)

Слайд 11





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

Слайд 12





MASM
MASM
MODEL	small
STACK	256
.data
;матриця розміром 2x5
;для наочності ъъ можна описати так:
;array	dw	2 DUP (5 DUP (?))
;але ми її ініціалізуємо
array	dw	1,2,3,4,5,6,7,3,9,0
;логічно це буде виглядати так:
;array= {1 2}; {3 4}; {5 6}; {7 3}; {9 0}
	elem	dw	3	
;елемент для пошуку
failed	db	0ah,0dh,'Немає такого елемента в масиві!','$‘
success	db	0ah,0dh,'Такий елемент у масиві присутній ','$‘
foundtime	db	?
;кількість знайдених елементів
fnd	db	' раз(ів)',0ah,0dh,'$‘
Описание слайда:
MASM MASM MODEL small STACK 256 .data ;матриця розміром 2x5 ;для наочності ъъ можна описати так: ;array dw 2 DUP (5 DUP (?)) ;але ми її ініціалізуємо array dw 1,2,3,4,5,6,7,3,9,0 ;логічно це буде виглядати так: ;array= {1 2}; {3 4}; {5 6}; {7 3}; {9 0} elem dw 3 ;елемент для пошуку failed db 0ah,0dh,'Немає такого елемента в масиві!','$‘ success db 0ah,0dh,'Такий елемент у масиві присутній ','$‘ foundtime db ? ;кількість знайдених елементів fnd db ' раз(ів)',0ah,0dh,'$‘

Слайд 13





;якщо поточний збігся із шуканим,
;якщо поточний збігся із шуканим,
;то перехід на here для обробки,
;інакше цикл продовження пошуку
je	here
;інакше — цикл по рядку cx=2 разів
loop	iternal
here:	jcxz
move_next	;переглянули рядок?
inc	foundtime	
;інакше збільшуємо лічильник
;що збіглися
move_next:	;просування в матриці
pop	cx
;відновлюємо CX зі стека (5)
add	bx,1
;пересуваємося на наступну рядок
loop	external;цикл (зовнішній)
cmp	foundtime,0h
;порівняння числа збігів з 0
ja	eql
;якщо більше 0, то перехід 
not_equal:
;немає елементів, що збіглися
Описание слайда:
;якщо поточний збігся із шуканим, ;якщо поточний збігся із шуканим, ;то перехід на here для обробки, ;інакше цикл продовження пошуку je here ;інакше — цикл по рядку cx=2 разів loop iternal here: jcxz move_next ;переглянули рядок? inc foundtime ;інакше збільшуємо лічильник ;що збіглися move_next: ;просування в матриці pop cx ;відновлюємо CX зі стека (5) add bx,1 ;пересуваємося на наступну рядок loop external;цикл (зовнішній) cmp foundtime,0h ;порівняння числа збігів з 0 ja eql ;якщо більше 0, то перехід not_equal: ;немає елементів, що збіглися

Слайд 14





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



Похожие презентации
Mypresentation.ru
Загрузить презентацию