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

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

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

решение матриц на си(с++) - C++

17.05.2011, 17:52. Просмотров 562. Ответов 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
#include <conio.h>
#include <stdlib.h>
#include<iostream.h>
#include<stdio.h>
#define NUNKNOWN 4
 
 main()
{
    int colPos, rowPos;
    int i, j, k;
    double max;
    double temp;
    int m_nCols;
    int m_nRows;
    double** array;
    double*  array1;
    unsigned int* ListVar;
    double* x;
 
    m_nRows=4;
    m_nCols=m_nRows+1;
    array1=new double[m_nRows*m_nCols];
    array=new double*[m_nRows];
    for (i=0; i<m_nRows; i++)
    {
        *(array+i)=array1+i*m_nCols;
    }
 
    ListVar=new unsigned int[m_nCols-1];
    for (j=0; j<m_nCols-1; j++)
        ListVar[j]=j+1;
 
    x=new double[NUNKNOWN];
 
    for (i=0; i<m_nRows-1; i++)
        x[i]=i+1;
 
    for (i=0; i<4; i++)
        for (j=0;j<5; j++)
            scanf("%7.2lf",array[i][j]);
    for (k=0; k<m_nRows-1; k++)
    {
        colPos=rowPos=k;
        max=array[k][k];
        for (i=k; i<m_nRows; i++)
            for (j=k+1; j<m_nCols-1; j++)
                if (abs(array[i][j])>max)
                {
                    max=array[i][j];
                    rowPos=i;
                    colPos=j;
                }
 
        for (i=0; i<m_nRows; i++)
        {
            temp=array[i][k];
            array[i][k]=array[i][colPos];
            array[i][colPos]=temp;
        }
 
        for (j=0; j<m_nCols; j++)
        {
            temp=array[k][j];
            array[k][j]=array[rowPos][j];
            array[rowPos][j]=temp;
        }
 
        temp=ListVar[k];
        ListVar[k]=ListVar[colPos];
        ListVar[colPos]=temp;
 
 
        for (j=m_nCols-1; j>=0; j--)
        {
            array[k][j]/=array[k][k];
 
        }
        for (j=0; j<m_nCols; j++)
            array[k][j];
        for (i=k+1; i<m_nRows; i++)
            for (j=m_nCols-1; j>=0; j--)
                array[i][j]-=array[k][j]*array[i][k];
 
        for (i=0; i<m_nRows; i++)
        {
            for (j=0; j<m_nCols; j++)
                cout<<array[i][j]<<" ";
            printf("\n");
        }
        printf("\n");
    }
 
    double s=0;
    x[m_nRows-1]=array[m_nRows-1][m_nCols-1]/
                     array[m_nRows-1][m_nCols-2];
    for (i=m_nRows-2; i>=0; i--)
    {
        s=0;
        for (k=i+1; k<m_nRows; k++)
            s+=array[i][k]*x[k];
            x[i]=array[i][m_nCols-1]-s;
    }
    for (i=0; i<m_nRows; i++)
        cout<<"X"<<ListVar[i]<<"="<<x[i]<<endl;
 
    for (i=0; i<m_nRows; i++)
        delete [] array[i];
    delete [] array;
    delete [] array1;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2011, 17:52     решение матриц на си(с++)
Посмотрите здесь:

Решение матриц - C++
Самое сложное, наверное что может быть, это решение матриц.. Прошу у Вас помощи, многоуважаемые товарищи программисты! Буду очень...

решение матриц - C++
определить,является ли отрицтельным числом-сумма элементов,которые содержатся в квадратной матрице над побочной диагональю. только на...

Решение матриц Методом Гаусса - C++
Ребят, не запускается программа на C++ для Решения матриц Методом Гаусса. Пожалуйста, запустите и выясните в чём проблема. И желательно...

Перебор матриц - C++
День добрый. Очень нужна помощь с написанием отдельного фрагмента программы. Задаётся размерность матрицы m, нужно поочерёдно перебирать...

Произведение матриц - C++
Всем привет. Пожалуйста подскажите, в чем ошибка? #include &lt;iostream&gt; using namespace std; int main(){ setlocale(LC_ALL,...

Класс матриц - C++
есть рабочий класс матриц. Все работает отлично, но надо сделать функцию или перегрузить оператор &gt;&gt; для считывания матрицы из файла....

Обработка матриц - C++
Уважаемые форумчане помогите с задачей. Определить максимальный елемент матрици {Si,j}6,3.Вывести его значения и индекси.

Сортировка матриц - C++
В матрице размером NxM упорядочить строки по возрастанию суммы их элементов. Есть рабочий код. Но он только для матрицы 3x3. Необходимо...

Класс матриц - C++
Пишу класс для работы с матрицами . Не могу понять , почему не работают функции power и swap_rows (функции возвращают ту же матрицу без...

Умножение матриц - C++
complex &lt;double&gt; c; for (int r = 0; r &lt; 4; r++) for (int col = 0; col &lt; 8; col++) for (int i =...

Перемножение матриц - C++
Помогите исправить ошибки. //--------------------------------------------------------------------------- #include &lt;iostream&gt; ...

Преобразования матриц - C++
В заданной действительной квадратной матрице порядка n найти максимальный по модулю элемент. Получить матрицу порядка n – 1 путем...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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