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

Функция нахождения определителя матрицы с вычислением времени - C++

Восстановить пароль Регистрация
 
sportsman_92
 Аватар для sportsman_92
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 3
18.05.2014, 22:08     Функция нахождения определителя матрицы с вычислением времени #1
Ребят, помогите доделать программу. Программа ищет определитель матрицы, данные заполняются рандомно либо от руки. Надо сделать еще функцию нахождения определителя матрицы через рекурсию. Также надо добавить время вычисления определителя... Программа выглядит следующим образом:
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream.h>
#include <iomanip.h>
#include <conio.h> 
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
int** csmatr(int**,int);     // --- Функция создания и вывода матрицы ------ //
double determinant(int**,int);  // --- Функция вычисления определителя -----//
 
 
void main(void) 
{
  int **a,i,N,**matr; 
// --------------------    Указываем порядок матрицы ----------------------- //
  cout<<"Vvedite poryadok matrici: ";
  cin>>N;
  cout<<endl; 
// -------------------- Создание матрицы и вывод ее на экран ---------------- //
  a=csmatr(matr,N);
// -------------------- Вывод определителя на экран ------------------------ //
  cout<<"Opredelitel matrici = "<<determinant(a,N);
// -------------------- Освобождение памяти -------------------------------- //
  for (i=0;i<N;i++) delete a[i];
  delete a; 
 
  getch(); // функция ожидания нажатия на клавиатуру
} 
 
 
/*--------------------------------------------------------------------------- 
          Функция создания матрицы (обязательно должен быть динамический массив)
---------------------------------------------------------------------------*/ 
int** csmatr(int **matr,int N)
{ int i,j;
 
// --------------------    Формирование строк и столбцов матрицы ---------- //
cout<<"Viberite sposob zadaniya matrici\n <1> - randomno\n <2> - vvesti s klaviaturi\n";
        char c; //объявляем символьную переменную а
        c=getch(); //Ждем ввода символа в переменную а
 
if(c=='1'){
time_t t;                       // подключается для того, чтобы
srand((unsigned) time(&t));   // случайные числа каждый раз были разными
  for (i=0;i<N;i++)
{
   matr[i]= new int[N];    //выделяем память для каждой строки
   for (j=0;j<N;j++)
   {
      matr[i][j] = rand() % 10;  //матрица заполняется случ. числами от 0 до 9
   }
}      }
if(c=='2'){
for(i=0;i<N;i++) {
matr[i]= new int[N];    //выделяем память для каждой строки
for(j=0;j<N;j++) {
cout<<"matr["<<i<<"]["<<j<<"]=";
cin>>matr[i][j];   }      //вводим матрицу с клавиатуры
           }
           }
// ----------------------- Выводим матрицу на эран ------------------------- //
for(i=0;i<N;i++){
for(j=0;j<N;j++)
cout<<setw(4)<<matr[i][j];
cout<<endl<<endl;}
 
 return matr; 
 
} 
 
 
/*--------------------------------------------------------------------------- 
            Функция вычисления определителя
---------------------------------------------------------------------------*/
double determinant(int **a, int N) 
{ 
  int i,j; 
  int **matr1;
  double determ=0;
 
  if (N==1)
  {
    determ=a[0][0];
  }
  else
  { 
    matr1=new int*[N-1]; 
 
    for(i=0;i<N;i++) 
    {
      for(j=0;j<N-1;j++) 
    { 
      if(j<i)   {matr1[j]=a[j];} 
      else      {matr1[j]=a[j+1];} 
    } 
      determ+=pow(-1,(i+j))*determinant(matr1,N-1)*a[i][N-1]; 
    } 
    delete matr1; 
  } 
 
  return determ; 
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
18.05.2014, 22:26     Функция нахождения определителя матрицы с вычислением времени #2
Ты находишься на ветке С++, что тебе конкретное не понятно в нюансах языка программирования?
sportsman_92
 Аватар для sportsman_92
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 3
19.05.2014, 00:25  [ТС]     Функция нахождения определителя матрицы с вычислением времени #3
мне так то много чего непонятно, я мало в чем тут разбираюсь. И этот код подредактировал под себя, нашел на форуме. Так что, отвечая на твой вопрос, я могу сказать что плохо знаю язык программирования. Если не трудно, то я не отказываюсь от помощи)
Kerberos56
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 14
22.12.2014, 21:43     Функция нахождения определителя матрицы с вычислением времени #4
А как эту функцию в класс матрицы засунуть?? точнее как потом в main ее вызывать???? может кто знает...а то аналогичный вопрос поднял...
И снова класс Матрицы с функция-член класса для нахождения определителя
Yandex
Объявления
22.12.2014, 21:43     Функция нахождения определителя матрицы с вычислением времени
Ответ Создать тему
Опции темы

Текущее время: 13:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru