Форум программистов, компьютерный форум 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++ Не могу сообразить как написать цикл
не могу сообразить как написать вот этот цикл в С++
C++ Где можно скачать компилятор MinGW? http://www.cyberforum.ru/cpp-beginners/thread206658.html
А где я могу скачать просто компилятор MinGW g++ ?
C++ Заполнение одномерного массива Привет форумчане. Хочу заполнить два одномерных массива с помощью функции rand(); Вот код: void InMas(int *mas, int size) { srand(unsigned(time(NULL))); for(int i = 0; i < size; i++) { mas = rand() % 100; подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
09.12.2010, 10:02     решение системы уравнений методом Гауса
Вот, ради интереса попробовал написать программу (С++). Сейчас она работает, но выполняет лишь первый шаг. Нужно чтобы программа выполняла действия до конца. Идеальным было бы если она еще при этом выводила матрицу на экран каждый раз, но это не обязательно.

Вот что навоял:

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;
}
Если кто поможет-спасибо. Нет - понимаю. То что я написал наверное хрен прочтешь)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru