Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 23:19   #1
Ислам
Форумчанин
 
Регистрация: 22.02.2011
Сообщений: 106
По умолчанию транспонирование матрицы

Цитата:
#include<conio.h>
#include<stdio.h>
#include<locale.h>
int main()
{
setlocale(LC_ALL,"Russian");
const int n=2;
int mas[n][n]={{1,2},{3,4}};
printf("Исходный массив:\n\n");
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",mas[i][j]);
}
printf("\n");
}

printf("\n\nТранспонированная матрица:\n\n");
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",mas[j][i]);
}
printf("\n");
}
getch();
return 0;
}


транспонирование матрицы на ассемблеровской вставке(_asm)
Ислам вне форума Ответить с цитированием
Старый 02.06.2011, 19:57   #2
Ислам
Форумчанин
 
Регистрация: 22.02.2011
Сообщений: 106
По умолчанию

Код:
#include<conio.h>
#include<stdio.h>
#include<locale.h>
int main()
{
	setlocale(LC_ALL,"Russian");
	const int n=2;
	const int nn=3;
	int temp=4;
	int mas1[nn][n];
	int mas[n][nn]={{1,2,3},{4,5,6}};
	printf("Исходный массив:\n\n");
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<nn;j++)
		{
				printf(" %d  ",mas[i][j]);
		}
		printf("\n");
	}
	
	printf("\n\nТранспонированная матрица:\n\n");
	for(int i=0;i<nn;i++)
	{
		for(int j=0;j<n;j++)
		{
			printf(" %d  ",mas[j][i]);
		}
		printf("\n");
	}

	printf("________________________________________________________________________________\n");

_asm
{
	mov ecx,n
	xor esi,esi   //i=0

for1:

	push ecx
	mov ecx,nn
	xor edi,edi
	
for2:
	 mov edx,0
	 mov eax,nn
	 mul esi
	 add eax,edi
	 mov ebx,eax
	 mov edx,mas[ebx]
	 mov temp,edx

     mov eax,n
	 mul edi
	 add eax,esi
	 mov ebx,eax
	 
	 mov edx,temp
	 inc edi
	 mov dword ptr mas1[ebx],temp
loop for2

	inc esi
	pop ecx
loop for1
}

for(int i=0;i<nn;i++)
	{
		for(int j=0;j<n;j++)
		{
				printf(" %d  ",mas1[i][j]);
		}
		printf("\n");
	}
	

getch();
return 0;
}

Ошибка 1 error C2415: недопустимый тип операнда
ругается на то, что красным выделено!

помогите пожалуйста!



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.06.2011 в 11:15.
Ислам вне форума Ответить с цитированием
Старый 03.06.2011, 10:52   #3
Ислам
Форумчанин
 
Регистрация: 22.02.2011
Сообщений: 106
По умолчанию

Че? никого по асм нету!?
Ислам вне форума Ответить с цитированием
Старый 08.06.2011, 19:02   #4
Ислам
Форумчанин
 
Регистрация: 22.02.2011
Сообщений: 106
По умолчанию

все! сделано!
Ислам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Транспонирование матрицы Tatum Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2011 19:32
транспонирование матрицы JS dropacid Помощь студентам 1 03.04.2010 22:14
транспонирование матрицы 6*6 на си fatefighter Общие вопросы C/C++ 1 17.03.2010 21:12
Преобразование матрицы. (транспонирование) AndyShafl Помощь студентам 9 23.12.2009 17:25