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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 12:43   #1
Gordan007
Пользователь
 
Регистрация: 16.07.2009
Сообщений: 25
По умолчанию вычислить орпеделитель матрицы

Дана матрица А(3,3). Вычислить определитель третьего порядка.
Gordan007 вне форума Ответить с цитированием
Старый 11.12.2011, 02:43   #2
Mikola-TEAM
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 34
По умолчанию

Код:
#include <iostream>

using namespace std;

int main()
{
    //объявим двумерный массив 3х3
    float a[3][3];

    //заполним двумерный массив
    for (int i=0; i<3; i++)
    {
        for (int j=0; j<3; j++)
        {
            cout << "Enter A" << i+1 << j+1 << " :";
            cin >> a[i][j];
            cout << endl;
        }
    }

    //найдём определитель матрицы 3-го порядка
    float det = a[0][0]*a[1][1]*a[2][2] + a[0][1]*a[1][2]*a[2][0] + a[0][2]*a[1][0]*a[2][1] - a[0][2]*a[1][1]*a[2][0] - a[0][0]*a[1][2]*a[2][1] - a[0][1]*a[1][0]*a[2][2];

    //покажем результат
    cout << "Determinant = " << det << endl;

    //чтоб окно само не закрывалось
    cin.get();
    cin.get();//иногда 1-го мало

    return 0;
}
← Не забываем на весы нажать ← или сюда капнуть R320061088693

Последний раз редактировалось Mikola-TEAM; 11.12.2011 в 03:44.
Mikola-TEAM вне форума Ответить с цитированием
Старый 16.12.2011, 04:13   #3
Putnik083
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 1
По умолчанию

В функцию передавать динамический двумерный массив и его размерность.
Код:
float determ(float **M, int n) 
{
	float det;
    if(n==2) 
    {
        det = (M[0][0]*M[1][1])-(M[1][0]*M[0][1]);
        return det;
    }
	float **A = new float*[n-1];
    for(int i=0;i<n-1;i++) 
		A[i] = new float[n-1];
	det=0;
	for(int k=0;k<n;k++)
		
	{
		for(int i=1;i<n;i++)
			for(int j=0,t=0;j<n;j++)
				if(j!=k)
				{
					A[i-1][t]=M[i][j];
					t++;
				}
	if(k%2==0)
		det=det+M[0][k]*determ(A,n-1);
	else 
		det=det-M[0][k]*determ(A,n-1);
	}
	return det;

}
Putnik083 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры - вычислить количество элементов матрицы,кратных 5 и заменить на 0 все четные элементы матрицы Ksenichka Помощь студентам 1 19.05.2011 14:38
вычислить сумму элементов каждой строки матрицы saint13 Помощь студентам 0 04.05.2010 20:34
Вычислить квадрат матрицы DaBuble Помощь студентам 2 23.03.2010 16:26
Вычислить сумму эл матрицы HixoH Общие вопросы C/C++ 2 24.12.2009 16:10
Если все элементы матрицы четные, вычислить их произведение. Misho0k Паскаль, Turbo Pascal, PascalABC.NET 7 20.05.2008 22:51