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

Решение системы уравнений методом Гауса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение систем уравнений http://www.cyberforum.ru/cpp-beginners/thread206707.html
Решить систему алгебраических уравнений методом Жордана-Гаусса: 3x1+1.5x2-x3+2.4x4=6 -0.5x1+x2-3.1x3-4x4=-12 2x1-0.8x2-x4=1 x1-1.3x2+3.9x3-3.7x4=3.1
C++ Подсчет нулевых элементов в заданном одномерном массиве Напишите фрагменты программ для решения следующих задач: 1) подсчет нулевых элементов в заданном одномерном массиве; 2) вычисление суммы положительных элементов в заданном одномерном массиве; 3) поиск первого максимального элемента и его индекса в заданном одномерном массиве; 4) поиск последнего минимального элемента и его индекса в заданном одномерном массиве; http://www.cyberforum.ru/cpp-beginners/thread206695.html
Матрица C++
помогите пожалуйста, я ничего не шарю в С+, а у меня сейчас контрольная работа. Напишите код программы. Вот задание вводится произвольная квадратная матрица построчно. Вводятся: номер строки и столбца правого верхнего угла внутренней квадратной матрицы и ее порядок. Все элементы внутренней матрицы заменяются на сумму элементов предпоследнего столбца введенной матрицы. Выводится полученная...
C++ Как считать параметр коммандной строки
Я понимаю, что его можно считать из заголовка экзешника, но существует ли более простой способ, а то не охото байтики перебирать. p.s. имеется в виду параметр комм. строки при запуске файла.
C++ Не могу сообразить как написать цикл http://www.cyberforum.ru/cpp-beginners/thread206664.html
не могу сообразить как написать вот этот цикл в С++
C++ Где можно скачать компилятор MinGW? А где я могу скачать просто компилятор MinGW g++ ? подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751

Решение системы уравнений методом Гауса - C++

09.12.2010, 10:02. Просмотров 2427. Ответов 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
#include<iostream>
#include<conio.h>
#include<clocale>
#include<iomanip>
using namespace std;
 
int main(){
    setlocale(LC_ALL,"Russian");
    int N,x,y,qwerty=2,m,n;
    double mas[128][128],max;
    cout<<"Введите m: ";
    cin>>m;
    cout<<"Введите n: ";
    cin>>n;
    cout<<"Введите матрицу построчно\n";    
      
    for (x=1,y=1;y<=n;x++){ 
        cin>> mas[x][y];
        if(x==m){
                 y++;
                 x=0;
        }
    }
    cout<<endl; 
    
    for(x=1,y=1;y<=n;x++){ // ищем максимальный эллемент матрицы
                          if(x==m){
                                   y++;
                                   x=0;
                                   }
                          if(x!=0 && x<m && mas[x+1][y]>=mas[x][y])
                                  max=mas[x+1][y];
                          }
    if(max<=abs(99)&&max>=abs(9)) // чтобы было красиво(setw)
    qwerty=2;
    else if(max>=abs(99)) 
    qwerty=3;
    
    for (x=1,y=1;y<=n;x++){ // выводим матрицу на экран
        cout<<setw(qwerty)<<mas[x][y]<<" ";
        if(x==m){
                 x=0;
                 y++;
                 cout<<endl;
                 }
        }
cout<<endl<<endl;
 
int zz=2; // переводит y
int zzz=1; // переводит х <<<<<<<<<<<<Вот тут косяки начинаются
x=1,y=2;
//while(x<=m-1){   // этот цикл должен переводить х на позицию вправо если есть еще строки или кол-во столбцов не закончилось
            while(y>zz-1 && y<=n) // удаляем из строки первую * n
            {
                      if(mas[zzz][zz]!=0){
                      double umn=mas[zzz][y]/mas[zzz][1];
                      for(x=zzz;x<=m;x++) // удаляем строки
                      mas[x][zz]=mas[x][zz]-mas[x][1]*umn;
                      }                 
                 zz++;
                 y++;
            }
                 if(y==n){ // перводим на новое начало
                          x=1;
                          y=3;
                         }                 
//            x++;
//            zzz++;
//}
 
 
 
for (x=1,y=1;y<=n;x++){ // выводим вторую матрицу на экран
cout<<setw(qwerty)<<mas[x][y]<<" ";
         
        if(x==m){
                 x=0;
                 y++;
                 cout<<endl;
                 }
        }
getch();
return 0;
}
Если кто поможет-спасибо. Нет - понимаю. То что я написал наверное хрен прочтешь)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru