Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Максгалилей
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 11
1

Считывание и запись определителя матрицы

11.11.2013, 21:41. Просмотров 667. Ответов 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <fstream>
 
 
 
double **M(int m, int im, int jm, double ** arr)
{
    int i, j;
 
    double ** ret = (double **)malloc((m - 1)*sizeof(double));
    for(i = 0; i < m; i++)
    {
        if(i != im)
        {
            if(i < im)
                ret[i]     = (double *)malloc((m - 1)*sizeof(double));
            else
                ret[i - 1] = (double *)malloc((m - 1)*sizeof(double));
            for(j = 0; j < m; j++)
            {
                if(j != jm)
                {
                    if(i < im)
                    {
                        if(j < jm)
                    ret[i][j] = arr[i][j];
                        else
                           ret[i][j - 1] = arr[i][j];
                    }
                    else
                    {
                        if(j < jm)
                            ret[i - 1][j] = arr[i][j];
                        else
                            ret[i - 1][j - 1] = arr[i][j];
                    }
                }
            }
            
        }
    }
    return ret;
}
 
double Det(int m, double ** arr)
{
    int i, j = 0;
    double ret = 0;
    double A;
    double ** _arr;
    if(m == 2)
    {
        ret = 
            arr[0][0]*arr[1][1] - 
            arr[1][0]*arr[0][1];
    
    }
    else
    {
        for(j = 0; j < m; j++)
        {
            _arr = M(m, 0, j, arr);
            ret += (A = (arr[0][j])*pow(-1,j)*Det(m - 1, _arr));
            
                printf("A[%02d][%02d] = %lf\n",1, j + 1,A);
            for(i = m - 2; 0 < i; i--)
                free((void *)_arr[i]);
            free((void *)_arr);
        }
    }
    return ret;
}
    
int main()
{
        using namespace std;
        
    ifstream in("in.txt");
 
    if(!in)
    {
        cerr << "Ia ii?o a?ae?eoe ao?aiee oaee!";
        return -1;
    }
 
    
    
    
    ofstream out("out.txt");
    int zzz = 0;
    if(!out)
    {
        cerr << "Ia ii?o a?ae?eoe aeo?aiee oaee!";
        return -2;
    }
 
    int i, j, m;
    
    printf("Enter m : ");scanf("%d",&m);
    in>>m;
 
    double ** array = (double **)malloc(m*sizeof(double));
    double det = 0;
    for(i = 0; i < m; i++)
    {
        
        array[i] = (double *)malloc(m*sizeof(double));
        for(j = 0; j < m; j++)
        {
            
            
            in >> array[i][j];
            printf
            (
                (array[i][j] < 0 ? "-%.1f " : " %.1f "),
                fabs(array[i][j])
                
            );
        }
        printf("\n");
        
    }
    system("pause");
    det = Det(m,array);
    system("cls");
    for(i = 0; i < m; i++)
    {
        for(j = 0; j < m; j++)
        {
            printf
                (
                    (array[i][j] < 0 ? "-%.1f " : " %.1f "),
                    fabs(array[i][j])
                );
        }
        printf("\n");
        free((void *)array[i]);
    }
    printf("Determiant : %lf\n",det);
    out << det;
           in.close();
       out.close();
 
    system("pause");
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 21:41
Ответы с готовыми решениями:

Считывание и запись матрицы из/в файл
Так,вообще вот исходный файл(F:\****\****\input.txt): 3 3 1 2 3 4 5 6 7 8 9 Первые два числа...

Считывание матрицы из файла и запись в динамический массив
Есть файл c n-количеством матриц и нужно считать их. И записать их элементы в динамические массивы...

Считывание элементов матрицы из файла и запись ответов в другой текстовый файл
Помогите пожалуйста написать программу для считывания элементов матрицы размером М х N из файла для...

Ошибка при запуске программы. Считывание матрицы из файла, умножение на число и запись обратно
Я не могу понять никак, что не так? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

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

1
-=ЮрА=-
Заблокирован
Автор FAQ
11.11.2013, 23:24 2
http://www.cyberforum.ru/faq/thread436065-page2.html#post2471796

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2013, 23:24

Нахождение определителя матрицы
Написать программу нахождения определителя матрицы

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

Нахождение определителя матрицы
Здравствуйте! Функция det правильно находит определитель для матрицы temp1, но неправильно для...


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

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

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