Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 05.11.2010
Сообщений: 67

Транспортирование матрицы

01.11.2011, 08:26. Показов 6706. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток господа .. в общем необходимо составить программу вычисления и преобразования матрицы P=f(A,B,C), где P=f(A,B,C) – матричное выражение; A, B, C – исходные матрицы, размер и значения элементов которых выбираются произвольно.(A^T+B^2\2) - C
В общем получилось возвести в квадрат матрицу B и поделить на 2, но вот возник вопрос как транспортировать матрицу A?Помогите пожалуйста кто знает.
Добавлено 1 день назадВот текст:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
program kursach; 
const 
maxn=10; 
var 
matrA,matrB,matrC:array[1..maxn,1..maxn] of shortint; 
matrP,tempmatrP:array[1..maxn,1..maxn] of shortint; 
i,j,k,n,m,p,f:integer; 
s:shortint; 
baseA,baseB,baseC,baseP:integer; 
begin 
write('Vvedite kolichestvo strok matrici A:'); 
readln(m); 
write('Vvedite kolichestvo stolbcov matrici A:'); 
readln(p); 
writeln('Vvedite elementi matrici A:'); 
for i:=1 to m do 
for j:=1 to p do 
begin 
write('matrA[',i,',',j,']='); 
readln(matrA[i,j]); 
end; 
 
begin 
write('Vvedite kolichestvo strok matrici B:'); 
readln(m); 
write('Vvedite kolichestvo stolbcov matrici B:'); 
readln(p); 
writeln('Vvedite elementi matrici B:'); 
for i:=1 to m do 
for j:=1 to p do 
begin 
write('matrB[',i,',',j,']='); 
readln(matrB[i,j]); 
end; 
end;
 
asm 
mov i,0 
mov baseP,0 
@@cicli: 
 
mov j,0 
@@ciclj: 
 
mov s,0 
mov k,0 
mov baseB,0 
@@ciclk: 
 
mov dl,2 
mov bx,baseP 
mov si,j 
mov al,byte ptr matrB[bx+si] 
mov ah,0 
imul byte ptr matrB[bx+si] 
div dl 
 
add s,al 
add al,byte ptr matrB[bx+si] 
 
mov bx,baseP 
mov si,j 
mov al,s 
mov byte ptr matrP[bx+si],al 
 
inc j 
mov ax,p 
cmp j,ax 
jl @@ciclj 
 
inc i 
add baseP,maxn 
mov ax, m 
cmp i,ax 
jl @@cicli 
 
mov i,0 
mov j,0 
mov bx,i 
mov si,j 
mov al, byte ptr matrA[bx+si] 
end; 
 
writeln('ASM result Matrica P:'); 
for i:=1 to m do 
begin 
for j:=1 to p do 
write(matrP[i,j],' '); 
writeln; 
end; 
writeln('ASM result Matrica A:'); 
for i:=1 to m do 
begin 
for j:=1 to n do 
write(matrA[i,j],' '); 
writeln; 
end; 
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2011, 08:26
Ответы с готовыми решениями:

расчет алгебраического дополнения, минор каждого элемента, транспортирование матрицы
Помогите пожалуйста написать программу которая выполняет действие над матрицами: расчет алгебраического дополнения, минор каждого...

Транспортирование
Напишите функцию transpose(matrix), которая принимает матрицу N × M (т.е. список из N списков-строк по M элементов...

Транспортирование сложной таблицы
Здравствуйте! Выручайте, сломал себе голову.. Вообщем суть: 1) Мне нужно спарсить характеристики товаров, использовал датакол. ...

7
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
01.11.2011, 09:35
Svikator, а в чем проблемы? Математику, как ты уже писал здесь, ты знаешь -- Транспонированная матрица — матрица https://www.cyberforum.ru/cgi-bin/latex.cgi?{A}^{T}, полученная из исходной матрицы https://www.cyberforum.ru/cgi-bin/latex.cgi?A заменой строк на столбцы. В ассемблере также как в Паскале придется делать двойной цикл и менять элементы столбцов на соответствующие им элементы строк. Элементы главной диагонали остаются на месте. Для матрицы https://www.cyberforum.ru/cgi-bin/latex.cgi?2\times 2 придется поменять между собой всего два элемента https://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{12}\leftrightarrow{C}_{21}, для матрицы https://www.cyberforum.ru/cgi-bin/latex.cgi?3\times 3 меняются между собой https://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{12}\leftrightarrow{C}_{21}, https://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{13}\leftrightarrow{C}_{31}, https://www.cyberforum.ru/cgi-bin/latex.cgi?{C}_{32}\leftrightarrow{C}_{23} и т.д. Для адресации элементов используй базово-индексную адресацию, а для обмена содержимым команды PUSH/POP или XCHG
Assembler
1
2
3
4
5
6
7
8
9
;меняю содержимое элементов А и В
.data
A dw 100
B dw 200
.code
push A
push B
pop A
pop B; сейчас [A]=200 [B]=100
или так
Assembler
1
2
3
mov AX,B; AX=200 [B]=200 [A]=100
xchg AX,A; AX=100 [A]=200
mov B,AX; [B]=100 AX=100 [A]=200
1
0 / 0 / 1
Регистрация: 05.11.2010
Сообщений: 67
10.11.2011, 11:42  [ТС]
Нашёл формулу для транспонирования на ассемблере только всё равно не вкурю как в паскале её применить?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
prg29_102.asm - программа на ассемблере транспонирования матрицы.
:Вход: mas[n] - матрица mxn.
:Выход: _mas[n] - транспонированная матрица nxm.
.data
m dw 3 : i =0.. 2
n dw 4 ;j=0..3
:задаем матрицу 3x4 (mxn):
mas db 02h.04h.06h.08h.l6h.24h,38h.45h.47h,48h.57h,56h
s_mas=$-mas
_mas db sjnas dup (Offh)
temp db 0
'code'
mov cx.m
xorsi.si :i:=0 ml: push ex :цикл по i
xordiidi ;J:-0
локализуем masij по формуле: masij=n*i+j m2: mov ax.n
mul si предполагаем, что результат в рамках ах
add ax.di : n*i+j
mov bx.ax
mov al ,mas[bx]
movtemp.al локализуем место-приемник в jnasij по формуле: _masij=masji=m*i+j
mov ax.m
mul di предполагаем, что результат в рамках ах
add ax,si
 
mov al .temp
mov _mas[bx].al
incdi :j:=j+l
loop rn2
inc si
pop ex восстанавливаем счетчик внешнего цикла
loop ml
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
10.11.2011, 11:47
Svikator, а не проще сразу писать на паскале? А то что ты привел содержит кучу опечаток -- например почти все запятые заменены на точки
0
0 / 0 / 1
Регистрация: 05.11.2010
Сообщений: 67
10.11.2011, 12:01  [ТС]
Дело в том что я не понимаю как это всё работает. Я понял как работает преыдущая программа.Получилось вывести результат транспонированной матрицы и посчитать всю формулу.Но не получаеться чтобы транспонированная матрица считалась в самой формуле(она там считаеться как обычная).
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
10.11.2011, 12:34
Svikator, а я что должен сделать? вступить с тобой в переписку и объяснять линейную алгебру? или писать за тебя программы? Так на Паскале работать с матрицами намного проще чем на ассемблере, читай теорию, пиши маленькие программы для обработки матриц 2х2, затем для матриц 3х3, разберешься -- напишешь на любой размер определяемый пользователем. Сперва учишься складывать матрицы, затем транспонировать, затем умножать, затем объединяешь все три программы в одну... Сумеешь всё это делать на Паскале -- можно переходить к ассемблеру, и опять не всё сразу, а частями, до полного усвоения организмом...
0
0 / 0 / 1
Регистрация: 05.11.2010
Сообщений: 67
10.11.2011, 12:35  [ТС]
Необязательно писать за меня программы.Проще обьяснить как происходит транспонирование на ассемблере.И не было бы смысла писать сюда если всё так просто описано в учебнике.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
11.11.2011, 06:39
Цитата Сообщение от Svikator Посмотреть сообщение
Необязательно писать за меня программы.Проще обьяснить как происходит транспонирование на ассемблере.И не было бы смысла писать сюда если всё так просто описано в учебнике.
Сам то понял, как тебе объяснять как происходит транспонирование на ассемблере, и при этом не писать за тебя? Но если не помнишь, то повторюсь
В ассемблере также как в Паскале придется делать двойной цикл и менять элементы столбцов на соответствующие им элементы строк. Элементы главной диагонали остаются на месте. Для матрицы 2х2 придется поменять между собой всего два элемента, для матрицы 3х3 меняются между собой шесть элементов, и т.д. Для адресации элементов используй базово-индексную адресацию, а для обмена содержимым команды PUSH/POP или XCHG
Главное в той фразе было ТАКЖЕ КАК НА ПАСКАЛЕ. А будешь писать сам, сперва простые программы, а потом и сложные и СМЫСЛ появится

взято с сайта WASM.RU/FORUM
Знание идиом языка, типовых приемов, среды программирования - все в плюс. Нужно время, чтобы осмотреться и освоиться (типичная кривая обучения имеет очень длинное плато). Требуется терпение - "нет царского пути". Как ни банально, начинать с малого: задачи должны быть посильны, а успех стимулирует. Ну, и как в любом деле, результаты приходят после того как упрешься лбом в стену - и бодаешься, пока не проломишь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2011, 06:39
Помогаю со студенческими работами здесь

Сформировать из матрицы A матрицы по правилу; найти максимальный по модулю элемент первой строки матрицы
В целочисленной матрице А(3,4) найти m-количество положительных элементов, стоящих в четных столбах.Сформировать матрицу В(3,4) по правилу:...

Даны квадратные матрицы A и B. Получить матрицу D, вставив столбцы матрицы B между столбцами матрицы A.
Вот такая задача...помогите решить пожалуйста....

Матрицы и вектора. Удалить из матрицы строку, в которой находится минимальный элемент матрицы
1.Дана квадратная матрица A(nхn). Построить вектор b, где bi, i=1,…,n – сумма элементов i-ого столбца матрицы. 2.Дана квадратная матрица...

Переставить строки и столбцы матрицы так, чтобы минимальный элемент матрицы находился в левом верхнем углу матрицы
Здравствуйте. Не могу вспомнить как это делается. Помогите пожалуйста, заранее спасибо. Условие : Дана квадратная матрица A(nхn)....

Процедура ввода квадратной матрицы, транспонирования матрицы и вывода новой матрицы
1.Написать программу с использование собственного модуля, который должен содержать процедуру ввода квадратной матрицы, процедуру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru