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

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

Войти
Регистрация
Восстановить пароль
 
sportsman_92
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 3
#1

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

18.05.2014, 22:08. Просмотров 506. Ответов 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
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; 
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2014, 22:08     Функция нахождения определителя матрицы с вычислением времени
Посмотрите здесь:

Нужен пример нахождения определителя матрицы C++
Функции (Расчет определителя матрицы) C++
C++ Функция нахождения минимального элемента заданного столбца матрицы
C++ Нахождение определителя матрицы
C++ Функция time для вычисления скорости нахождения Определителя.Dev-C++7.3.1.3
Вычисление определителя матрицы N*N C++
Формула для нахождения определителя матрицы C++
Написать функцию для нахождения определителя квадратной матрицы C++
Код для нахождения определителя матрицы N на N исключением строки и столбца C++
И снова класс Матрицы с функция-член класса для нахождения определителя C++
C++ Функция с вычислением нескольких факториалов и их использование в формуле
Реализовать функцию нахождения определителя квадратной матрицы заданного размера C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
18.05.2014, 22:26     Функция нахождения определителя матрицы с вычислением времени #2
Ты находишься на ветке С++, что тебе конкретное не понятно в нюансах языка программирования?
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     Функция нахождения определителя матрицы с вычислением времени
Ответ Создать тему
Опции темы

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