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

Код обратной матрицы на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать АТД Очередь с помощью массива http://www.cyberforum.ru/cpp-beginners/thread14784.html
Всем привет! у меня есть некоторые зарисовки, но никак не могу привести программу к концу. Задание: Реализовать АТД Очередь с помощью массива; Используя эту реализацию, написать функцию, которая за один проход по заданному целочисленному массиву выводит на печать его элементы в следующем порядке: сначала все четные, потом – нечетные.:umnik: кусочек программы который у меня есть:...
C++ Удаление динамической памяти В книгах по С++ я читал про утечку памяти. Я решил создать программу, в которой будет выделаться 1 Гб памяти и не удаляться. Будучи запущенной много раз, она так и не зависла. Для большей уверенности я поставил галочку release и запускал её не через F5, а через exe-файл. Получается, что в C++ есть сборщик мусора? P.S. Пользуюсь Visual Studio 2008. http://www.cyberforum.ru/cpp-beginners/thread14767.html
Какую и как использовать функцию, чтобы float сделать int? C++
Какую и как использовать функцию, чтобы float сделать int?
Проблемы работы с графикой (graphics.h) после апгрейда компа.. :( C++
Короче курсовая на носу. Писал заставку на тему баскетбол, ну типа там нарисовал площадку, мячик, и мячик прыгает с корзины в корзину... Все было прикольтно, пока не сделал абгрейд... Работаю в Turbo C++ ver 1.01. поменял комп короче полностю, постваил новую ось, поставил Си, и блин она работает, а как только касаеться работы с графикой, тупо закрываеться.. ну если в Си запустить через Contrl+F9...
C++ Помогите решить две простые задачи(перевод из десятичной с. с в двоичную и полное решение квадратного уравнения) http://www.cyberforum.ru/cpp-beginners/thread14754.html
5.6Перевод из 10-й системы счисления в 2-ю 5.7Решение квадратного уравнения полное Добавлено через 2 минуты 14 секунд /************************************** Перевод из десятичной системы счисления в двоичную Автор: Muslimov Ildar Fanisovich Программа переводящая из десятичной системы в двоичную
C++ Определить, какое из чисел встречается в массиве чаще всего 8. Элементы массива расположить в обратном порядке, не используя дополнительный массив. Написать программу, в которой исходный массив заполнить случайным образом элементами в пределах от 101 до 200. Вывести на экран элементы исходного и полученного массивов. 9. Написать фрагмент программы для определения, какое из чисел встречается в массиве чаще всего. 10. Написать рекурсивную функцию поиска... подробнее

Показать сообщение отдельно
tymrfik
2 / 2 / 0
Регистрация: 27.12.2010
Сообщений: 89
09.01.2012, 21:28     Код обратной матрицы на С++
vitaska, Подскажите пожалуйста в чем ошибка: в моем случае в программе нужно рассчитать обратную матрицу для матрицы размером 30*30 (матрица состоит из 1 и 0 в определенном порядке, обратная точно существует), я позаимствовал только часть вашего кода, но почему-то у меня даже определитель не считается (при компиляции проблем нет)
Взял след. части:
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
//
void Get_matr(int **matr, int n, int **temp_matr, int indRow, int indCol)       
{
        int ki = 0; 
        for (int i = 0; i < n; i++){
                if(i != indRow){
                        for (int j = 0, kj = 0; j < n; j++){
                                if (j != indCol){
                                        temp_matr[ki][kj] = matr[i][j];
                                        kj++;
                                }
                        }
                        ki++;           
                }
        }
}
int Det(int **matr, int n)      
{int temp = 0;   
        int k = 1;             
                for(int i = 0; i < n; i++){
                        int m = n - 1; 
                        int **temp_matr = new int * [m];
                        for(int j = 0; j < m; j++)
                                temp_matr[j] = new int [m];
                        Get_matr(matr, n, temp_matr, 0, i);
                        temp = temp + k * matr[0][i] * Det(temp_matr, m);
                        k = -k;
        
                }
        return temp;
}
//в самой функции int main() начинаю транспонировать матрицу и делать вычисление обратной. //(идет кусок main)
  for (int i = 0; i < 30; i++){ 
        for (int j = 0; j <30; j++){
            tMatr[j][i] = c[i][j];
            }
            }
 
  double **obr_matr = new double * [n];
        for(int i = 0; i < n; i++){
                obr_matr[i] = new double[n];}
int det = Det(c, n);
      cout << "вывод определителя"<< det << endl;
            if(det){
                for(int i = 0; i < n; i++){
                        for(int j = 0; j < n; j++){
                                int m = n - 1;
                                int **temp_matr = new int * [m];
                                for(int k = 0; k < m; k++)
                                        temp_matr[k] = new int[m];
                                Get_matr(c, n, temp_matr, i, j);
                                obr_matr[i][j] = pow(-1.0, i + j + 2) * Det(temp_matr, m) / det;
                                }
                }       
        }
 
for(i=0;i<30;i++){
   for(j=0;j<30;j++)                          
      printf("%d ", obr_matr[i][j]);
    printf("\n");
}
(беру не весь код, потому что задание у меня заключается в др, но для работы в программе нужна эта обратная матрица)

Добавлено через 2 минуты
Кто может подскажите в чем ошибка у меня?!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru