Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.68
Kyter
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 22
#1

Функции (Расчет определителя матрицы) - C++

25.05.2010, 16:39. Просмотров 3612. Ответов 20
Метки нет (Все метки)

Задание: Ввести с клавиатуры матрицу 4*4 и подсчитать ее определитель. Процедуру подсчета определителя оформить в виде функции.
во я написал программу, но она не правельно работает, кто может подскажите в чем ошибка:
C++
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <alloc.h>
 
float mat(float **a, int n)
{ int i,j;
float s,d,f,g;
  i=1;
  j=1;
s=((a[i+2][j+2]*a[i+3][j+3]-a[i+2][j+3]*a[i+3][j+2])*a[i+1][j+1]-(a[i+2][j+1]*a[i+3][j+3]-a[i+2][j+3]*a[i+3][j+1])*a[i+1][j+2]+(a[i+2][j+1]*a[i+3][j+2]-a[i+2][j+2]*a[i+3][j+1])*a[i+1][j+3]);
d=((a[i+2][j+2]*a[i+3][j+3]-a[i+2][j+3]*a[i+3][j+2])*a[i+1][j]-(a[i+2][j]*a[i+3][j+3]-a[i+2][j+3]*a[i+3][j])*a[i+1][j+2]+(a[i+2][j]*a[i+3][j+2]-a[i+2][j+2]*a[i+3][j])*a[i+1][j+3]) ;
f=((a[i+2][j+1]*a[i+3][j+3]-a[i+2][j+3]*a[i+3][j+1])*a[i+1][j]-(a[i+2][j]*a[i+3][j+3]-a[i+2][j+3]*a[i+3][j])*a[i+1][j+1]+(a[i+2][j]*a[i+3][j+1]-a[i+2][j+1]*a[i+3][j])*a[i+1][j+3]);
g=((a[i+2][j+1]*a[i+3][j+2]-a[i+2][j+2]*a[i+3][j+1])*a[i+1][j]-(a[i+2][j]*a[i+3][j+2]-a[i+2][j+2]*a[i+3][j])*a[i+1][j+1]+(a[i+2][j]*a[i+3][j+1]-a[i+2][j+1]*a[i+3][j])*a[i+1][j+2]);
n=(s*a[i][j])-(d*a[i][j+1])+(f*a[i][j+2])+(g*a[i][j+3]);
 
return(n);
}
 
 
void main ()
{
clrscr();
float **b,z;
int i,j;
b=(float**)malloc(80*(sizeof(float*)));
 
for (i=1;i>4;i++)
{
 for (j=1;j>4;j++)
 {
   scanf("%d",&b[i][j]);
 }
}
z=mat(b,4);
printf("%f",z);
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 16:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции (Расчет определителя матрицы) (C++):

Нахождение определителя матрицы - C++
Здравствуйте, помогите пожалуйста дописать. Нужно было реализовать в виде модуля, программку, которая выполняет действия над квадратными...

Вычисление определителя матрицы N*N - C++
Дорогие форумчане, никто не подскажет как вычислить определитель квадратной матрицы, сам код не нужен, только алгоритм. Насколько я слышал...

Нахождение детерминанта (определителя) матрицы - C++
У меня вот код есть для нахождения детерминанта (определителя) матрицы 5х5 :) а как сделать, чтобы я мог сам ввести данные матрицы? ...

Вычисление следа матрицы и определителя - C++
воббщем надо реализовать вычисление следа матрицы и определителя алгоритм для следа : #include &lt;stdio.h&gt; typedef int *pInt; ...

Считывание и запись определителя матрицы - C++
в файле записан массив , его надо считать и найти его определитель, и записать его в другой файл. программа не хочет считывать данные. ...

Исправить код c++ ,нахождение определителя матрицы - C++
Необходимо найти определитель матрицы,выдает ошибку. Так же ,может кто предложит свой код нахождения определителя матрицы,нужно срочно. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
26.05.2010, 13:55 #16
Я уже догадался, Borland C 3.0 наверное)
Kyter
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 22
26.05.2010, 14:01  [ТС] #17
Может быть)
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
26.05.2010, 14:23 #18
Однако делаО_о
15.6 У меня проблемы с компилятором Turbo C. Программа аварийно
завершается, выдавая нечто вроде "floating point formats not linked."

О: Некоторые компиляторы для мини-эвм, включая Turbo C (а также
компилятор Денниса Ритчи для PDP-11), не включают поддержку операций
с плавающей точкой, когда им кажется, что это не понадобится.
В особенности это касается версий printf и scanf, когда для экономии
места не включается поддержка %e, %f, и %g. Бывает так, что
эвристической процедуры Turbo C, которая определяет - использует
программа операции с плавающей точкой или нет, оказывается
недостаточно, и программист должен лишний раз вызвать функцию,
использующую операции с плавающей точкой, чтобы заставить компилятор
включить поддержку таких операций.
Добавь где-небудь после объявления переменных строку z = cos(1.57); к примеру. Потом скажешь, что получилось
Kyter
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 22
26.05.2010, 15:34  [ТС] #19
Заработало, но считает не правельно (не тот ответ выдат)
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
26.05.2010, 17:21 #20
C
1
2
3
4
5
6
7
8
9
10
11
12
float mat(float **a)
{
   float s, d, f, g, det;
 
   s=(a[1][1]*a[2][2]*a[3][3]+a[2][1]*a[3][2]*a[1][3]+a[3][1]*a[1][2]*a[2][3]-a[3][1]*a[2][2]*a[1][3]-a[1][1]*a[3][2]*a[2][3]-a[2][1]*a[1][2]*a[3][3]);
   d=(a[0][1]*a[2][2]*a[3][3]+a[2][1]*a[3][2]*a[0][3]+a[3][1]*a[0][2]*a[2][3]-a[3][1]*a[2][2]*a[0][3]-a[0][1]*a[3][2]*a[2][3]-a[2][1]*a[0][2]*a[3][3]) ;
   f=(a[0][1]*a[1][2]*a[3][3]+a[1][1]*a[3][2]*a[0][3]+a[3][1]*a[0][2]*a[1][3]-a[3][1]*a[1][2]*a[0][3]-a[0][1]*a[3][2]*a[1][3]-a[1][1]*a[0][2]*a[3][3]);
   g=(a[0][1]*a[1][2]*a[2][3]+a[1][1]*a[2][2]*a[0][3]+a[2][1]*a[0][2]*a[1][3]-a[2][1]*a[1][2]*a[0][3]-a[0][1]*a[2][2]*a[1][3]-a[1][1]*a[0][2]*a[2][3]);
   det=(s*a[0][0])-(d*a[1][0])+(f*a[2][0])-(g*a[3][0]);
 
   return det;
}
Kyter
0 / 0 / 0
Регистрация: 13.05.2010
Сообщений: 22
26.05.2010, 18:58  [ТС] #21
Спасибо большое за помощь!)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2010, 18:58
Привет! Вот еще темы с ответами:

Нужен пример нахождения определителя матрицы - C++
Подскажите пожалуйста простенький пример нахождения определителя матрицы?

Код вычисления определителя матрицы до 10-го порядка - C++
Мне очень нужен код программы для вычисления определителя матрицы до 10-го порядка.

Нахождение определителя матрицы методом гаусса - C++
Нахождение определителя методом гауса #include &lt;stdio.h&gt; #include&lt;locale.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int main() { ...

Нахождение определителя матрицы через рекурсию - C++
Помогите, пожалуйста, реализовать на с программу нахождения определителя матрицы.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.05.2010, 18:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru