Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Добавить в программу запрос размера матрицы https://www.cyberforum.ru/ cpp-beginners/ thread1596362.html
Помогите отредактировать. Нужно что бы программа запрашивала размерность матрицы. #include <cstdlib> #include <iostream> #include <ctime> int main(int argc, char *argv) { const int n = 5;...
Вызов закрытой функции C++
#include <iostream> class A { public: virtual void f() { std::cout << "A"; } }; class B : public A { private: void f() { std::cout << "B"; }
C++ Cout и русский язык
Когда пытаюсь вывести в консоль русские слова выводит какую-то чепуху.Это нормально? Пользуюсь Code::Blocks.
C++ Перевод целых чисел из одной системы счисления в другую Помогите пожалуйста написать толковый код по переводу с одной системы счисления в другую, в моем случае:С ШЕСТНАДЦАТЕРИЧНОЙ В ВОСЬМЕРИЧНУЮ. Только код, работающий от системных возможностей не пойдет:... https://www.cyberforum.ru/ cpp-beginners/ thread1596359.html
C++ Ввести матрицу и выделить в ней два произвольных столбца https://www.cyberforum.ru/ cpp-beginners/ thread1596357.html
Помогите доработать. Нужно сделать чтобы программа запрашивала размерность матрицы и потом запросила какой столбец вынести. вот само задание: Разработать функцию выделения произвольного столбца в...
Error C2440 C++
Доброго времени суток! Возникла проблема при попытке реализовать Метод Отражения Хаусхолдера в C++. В строках 35-38 выделяются массивы с ошибкой "выражение должно быть допустимым для изменения...
Табуляция функции, заданной с помощью ряда Тейлора (циклические процессы) C++
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от XНАЧ до xкон с шагом dx с точностью ε. Каждая строка таблицы должна содержать...
C++ Дана действительная квадратная матрица порядка 2n Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера в порядке, указанном на рисунке. https://www.cyberforum.ru/ cpp-beginners/ thread1596346.html
C++ Получение из массива другого массива https://www.cyberforum.ru/ cpp-beginners/ thread1596336.html
Заполнив массив, получить из него другой массив, в который внести +эл в обратном порядке. Я это сделал, но без получения другого массива, это вообще как? #include <iostream> using namespace std;...
C++ Удалить из целочисленного массива все максимальные элементы Удалить из целочисленного массива все максимальные элементы и вставить после последнего удаленного минимальный элемент. Буду очень благодарен :) Добавлено через 19 часов 40 минут помогите,... https://www.cyberforum.ru/ cpp-beginners/ thread1596335.html
0 / 0 / 0
Регистрация: 08.01.2015
Сообщений: 49
0

Ошибка: "Нарушение прав доступа при чтении" в программе Гаусс-Жордан и Матричный метод для СЛАУ

29.11.2015, 16:30. Просмотров 472. Ответов 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
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
float inversion(double **A, int N);
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    float t;
    int i, j, k, m, n, p;
    int N;
 
    cout << "Введите N: ";
    cin >> N;
 
    double **a = new double *[N];
    float  * b = new float[N];
    for (int i = 0; i < N; i++)
        a[i] = new double[N];
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
        {
            cout << "Введите матрицу[" << i + 1 << "][" << j + 1 << "] = ";
            cin >> a[i][j];
        }
    cout << "Введите элементы массива свободных членов b : " << endl;
    for (i = 0; i < N; ++i)
    {
        cout << " Введите элемент b[" << i + 1 << "] ";
        cin >> b[i];
    }
    n = 5;
    cout << "Выберите метод: " << endl;
    cout << "1 - Метод Гаусса-Жордана" << endl;
    cout << "2 - Матричный метод(обратная матица)" << endl;
    cin >> p;
    if (p == 2)
    {
        cout << "Обратная матрица: "<<  endl;
        cout << inversion(a, N);
    }
    cout << "\n\n";
    for (i = 1; i <= N; i++)
    {
        for (j = 1; j <= N; j++)
            cout << a[i][j] << "  ";
        cout << b[i] << "\n";
    }
    cout << "\n\n";
    for (i = 1; i <= N; i++)
    {
        for (j = 1; j <= N; j++)
            cout << a[i][j] << "  ";
        cout << b[i] << "\n";
    }
 
 
double eps = .000001;
double max;
int max_i;
double lead, a_div_lead;
for (k = 1; k <= N; k++)
{
    max = 0;
    max_i = -1;
    for (int i = k; i <= N; i++)
    {
        if (fabs(a[i][k])>max)
        {
            max = fabs(a[i][k]);
            max_i = i;
        }
    }
    if (max_i == -1 || fabs(a[max_i][k])<eps)
    {
        cout << "\n\n" << "Error: det=0" << "\n\n";
        break;
    }
    lead = a[k][k];
    for (j = k; j <= n; j++)
        a[k][j] /= lead;
    b[k] /= lead;
    for (i = 1; i <= n; i++)
    {
        a_div_lead = a[i][k] / a[k][k];
 
        if (i != k)
        {
            for (j = k; j <= n; j++)
                a[i][j] -= a[k][j] * a_div_lead;
            b[i] -= b[k] * a_div_lead;
        }
    }
}
cout << "\n\n";
for (i = 1; i <= N; i++)
{
    for (j = 1; j <= N; j++)
        cout << a[i][j] << "  ";
    cout << b[i] << "\n";
}
for (int i = 0; i < N; i++)
    delete[] a[i];
 
delete[] a;
delete[] b;
system("pause");
return 0;
}
 
float inversion(double **A, int N)
{
 
    double temp;
 
    double **E = new double *[N];
 
    for (int i = 0; i < N; i++)
        E[i] = new double[N];
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
        {
            E[i][j] = 0.0;
 
            if (i == j)
                E[i][j] = 1.0;
        }
 
    for (int k = 0; k < N; k++)
    {
        temp = A[k][k];
 
        for (int j = 0; j < N; j++)
        {
            A[k][j] /= temp;
            E[k][j] /= temp;
        }
 
        for (int i = k + 1; i < N; i++)
        {
            temp = A[i][k];
 
            for (int j = 0; j < N; j++)
            {
                A[i][j] -= A[k][j] * temp;
                E[i][j] -= E[k][j] * temp;
            }
        }
    }
 
    for (int k = N - 1; k > 0; k--)
    {
        for (int i = k - 1; i >= 0; i--)
        {
            temp = A[i][k];
 
            for (int j = 0; j < N; j++)
            {
                A[i][j] -= A[k][j] * temp;
                E[i][j] -= E[k][j] * temp;
            }
        }
    }
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            A[i][j] = E[i][j];
 
    cout << "\n\n";
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            cout << A[i][j] << "  ";
        cout << endl;
    }
    for (int i = 0; i < N; i++)
        delete[] E[i];
 
    delete[] E;
    return 0;
}
Заранее благодарен!
Ошибка: "Нарушение прав доступа при чтении" в программе Гаусс-Жордан и Матричный метод для СЛАУ


Вернуться к обсуждению:
Ошибка: "Нарушение прав доступа при чтении" в программе Гаусс-Жордан и Матричный метод для СЛАУ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2015, 16:30
Готовые ответы и решения:

Ошибка Необработанное исключение в "0x001d18f8" в "lr7v2.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde9"
class Hdd { public: char Hdd_name; int total_space; int free_space; int speed; ...

Выходит ошибка Необработанное исключение в "0x0007102f" в "Lab08.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00078000". Как исправить
.586 .model flat, stdcall option casemap :none ; case sensitive ; Раздел подключения библиотек...

Возникает ошибка "0xC0000005: Нарушение прав доступа при чтении "0xfeeefee2"."
Подскажите, пожалуйста, в чем может быть ошибка и как его исправить? В деструкторе указывает на...

"Необработанное исключение в "0x00417c85" в "oui2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000"."
Пишем программу в VS 2010 на С++ DirectX SDK (June 2010). Доходя до одной строчки появляется...

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