Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.63
Leha-first
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 4
#1

Нахождение обратной матрицы - C++

01.06.2011, 14:37. Просмотров 5143. Ответов 11
Метки нет (Все метки)

Здравствуйте!помогите с программой на языке си-она демонстрирует нахождение обратной матрицы.я написал 3 на 3 юно мне надо в начале проги вводить количество строк и столбцов.

 Комментарий модератора 
Именуйте темы осмысленно! Название темы должно максимально полно отражать её содержимое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2011, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение обратной матрицы (C++):

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

Нахождение обратной матрицы - C++
Здравствуйте, уважаемые программисты! Прощу помощи. Для заданной матрицы A(3,3), найти обратную А в -1 степени. Буду очень...

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

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

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

Нахождение обратной матрицы - C++
Доброго времени суток! Помогите, пожалуйста, с нахождением обратной матрицы. Нашел такой код тут на форуме. Можете ли его максимально...

11
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.06.2011, 14:41 #2
выложите, что уже написали
0
Leha-first
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 4
01.06.2011, 15:15  [ТС] #3
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
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
void main()
{
int a[3][3],i,j,k,l;
for(i=0;i<3;i++)
 {
  printf("\n      ");
  for(j=0;j<3;j++)
   {
    printf("\n\n    ‚ўҐ¤ЁвҐ н«Ґ¬Ґ*в [%i][%i] (®в 0 ¤® 9) \n        ",i+1,j+1);
    scanf("%i",&a[i][j]);
    if((a[i][j]>9)||(a[i][j]<0))
     {
      clrscr();
      printf("   ‚ўҐ¤Ґ*л *ҐўҐа*лҐ ¤***лҐ");
      getch();
      exit(1);
 
     }
    clrscr();
   }
 }
for(i=0;i<3;i++)
 {
  printf("\n      ");
  for(j=0;j<3;j++)
   printf("%i ",a[i][j]);
 }
float detA=0;
detA=a[0][0]*a[1][1]*a[2][2]+a[2][0]*a[0][1]*a[2][1]+a[1][0]*a[2][0]*a[1][2]-a[0][0]*a[1][2]*a[2][1]-a[0][1]*a[0][1]*a[2][2]-a[0][2]*a[1][1]*a[2][0];
getch();
clrscr();
printf("\n ЋЇаҐ¤Ґ«ЁвҐ«м а*ўҐ* %5.2f",detA);
if (detA==0)
{
 clrscr();
 printf("\n\n        ЋЎа*в*®© ¬*ваЁжл *Ґв ");
 getch();
 exit(1);
}
getch();
int min[3][3];
min[0][0]=a[1][1]*a[2][2]-a[1][2]*a[2][1];
min[0][1]=(-1)*(a[1][0]*a[2][2]-a[1][2]*a[2][0]);
min[0][2]=a[1][0]*a[2][2]-a[1][2]*a[2][0];
min[1][0]=(-1)*(a[0][1]*a[2][2]-a[0][2]*a[2][1]);
min[1][1]=a[0][0]*a[2][2]-a[0][2]*a[2][0];
min[1][2]=(-1)*(a[0][0]*a[2][1]-a[2][0]*a[0][1]);
min[2][0]=a[0][1]*a[1][2]-a[1][1]*a[0][2];
min[2][1]=(-1)*(a[0][0]*a[1][2]-a[1][0]*a[0][2]);
min[2][2]=a[0][0]*a[1][1]-a[1][0]*a[0][1];
clrscr();
printf("\n        Њ*ваЁж* Ђ«ЈҐЎаЁзҐбЄЁе ¤®Ї®«*Ґ*Ё© \n\n ");
for(i=0;i<3;i++)
 {
  printf("\n     ");
  for(j=0;j<3;j++)
   printf("%6.3i  ",min[i][j]);
 }
getch();
clrscr();
for(i=0;i<3;i++)
 {
  printf("\n   ");
   for(j=0;j<3;j++)
    printf("%i ",min[i][j]);
 }
clrscr();
float obr[3][3];
printf("\n    ЋЎа*в**п ¬*ваЁж*\n\n   ");
for(i=0;i<3;i++)
 {
 printf("\n   ");
 for(j=0;j<3;j++)
  {
   obr[j][i]=min[i][j]*(1/detA);
   printf("%6.3f ",obr[j][i]);
  }
 }
getch();
clrscr();
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.06.2011, 15:22 #4
чтобы создать матрицу нужного вам размера, используйте
C
1
2
3
4
5
int **arr;
/*вводите кол-во строк и столбцов*/
arr = new int*[n];
for (int i=0; i<n; ++i)
     arr[i] = new int [m];
это требовалось?
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
01.06.2011, 15:28 #5
Кроме этого придётся еще и расчеты изменить. Потому как это смешно:
Цитата Сообщение от Leha-first Посмотреть сообщение
detA=a[0][0]*a[1][1]*a[2][2]+a[2][0]*a[0][1]*a[2][1]+a[1][0]*a[2][0]*a[1][2]-a[0][0]*a[1][2]*a[2][1]-a[0][1]*a[0][1]*a[2][2]-a[0][2]*a[1][1]*a[2][0];
0
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
01.06.2011, 16:02 #6
Цитата Сообщение от soon Посмотреть сообщение
это требовалось?
требовалось внимательно читать задание и отличать си от с++
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,262
Завершенные тесты: 2
01.06.2011, 16:05 #7
sandye51, вместо new и delete, использовать malloc и free
описание всех функций гугл легко доскажет
0
sandye51
01.06.2011, 16:14
  #8

Не по теме:

m1Rr0r, это ты не мне говори

0
Leha-first
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 4
01.06.2011, 16:38  [ТС] #9
ПАцаны так че с расчетами детерминанта делать и нужно чтобы спрашивалось:заполнить матрицу произвольно или с клавы?

Добавлено через 14 минут
soon, подмогни а
0
sandye51
01.06.2011, 16:44
  #10

Не по теме:

пиши в аську, подмогну

0
Leha-first
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 4
01.06.2011, 17:16  [ТС] #11
Да у меня аси нет мож по контакту скинь адрес своей страницы
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
01.06.2011, 17:29 #12

Не по теме:

Мой косяк, бывает...


Цитата Сообщение от Википедия
C
1
2
3
4
5
6
7
8
9
10
float *dynamic_array = (float *)malloc(number_of_elements * sizeof(float));
if(!dynamic_array)
{
   /* обработка ошибки выделения памяти */
}
 
/* … работа с элементами массива … */
 
free(dynamic_array);
dynamic_array = NULL;
Добавлено через 6 минут
+ еще надо подключить stdlib.h
и для двумерного массива
C
1
2
3
4
float **dynamic_array;
      dynamic_array =  (float **)malloc(size_n * sizeof(float));
      for (int i=0; i<size_n; ++i)
          dynamic_array[i] = (float *)malloc(size_m * sizeof(float));
0
01.06.2011, 17:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2011, 17:29
Привет! Вот еще темы с ответами:

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

Нахождение обратной матрицы (есть код! ) - C++
Добрый день! Имеется алгоритм нахождения обратной матрицы. Необходимо добавить в него регуляризацию, т.е. этот алгоритм может не найти...

Матричный калькулятор, нахождение обратной матрицы - C++
Всё работает кроме обратной матрицы.помогите найти ошибку #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; ...

Нахождение обратной матрицы методом алгебраических дополнений - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; //int menu(); void...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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