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

Системы линейных уравнений методом Гаусса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача данных между двумя приложениями. http://www.cyberforum.ru/cpp-beginners/thread571956.html
Суть проблемы такова: есть приложение на с#, производящее вычисления, результатом является массив данных. Есть прога на с++ + QT, умеющая визуализировать подобные данные. Вопрос: можно ли как-то...
C++ sdl отрисовка поля Хочется понять принцип отрисовки поля средствами sdl. Допустим нужно поле 3х3, ячейки поля квадратные поэтому использую SDL_Rect, где хранить координаты Х,Y в векторе или массиве? В конечном счете... http://www.cyberforum.ru/cpp-beginners/thread571934.html
Запись класса в файл C++
Приветствую. Я хочу записать битовую форму класса, но столкнулся с делемой. Насколько мне известно, есть две группы функций записи битов в файл: 1) _wsopen_s _read _write _filelength _tell...
C++ НЕконсольные приложения
Не умею создавать не консольные приложения. Ну совсем. Никто не учил, сам не понимаю. Где я могу почитать информацию о создании вин32 проектов. Можно пожалуйста литературу? И желательно более...
C++ Хеш-таблица методом цепочек http://www.cyberforum.ru/cpp-beginners/thread571891.html
Здравствуйте, помогите написать хеш таблицу методом цепочек. Не могу понять, как все это сделать, перечитал кучу информации, никак понять не могу. Мне нужно чтобы был класс хеш таблица. Если не...
C++ Закольцевать и отсортировать двунаправленный список создать двунаправленный список с числами из диапазона от - 50 до + 50. после создания списка преобразовать его в кольцо. предусмотреть возможность движения по кольцу в обе стороны с отображением... подробнее

Показать сообщение отдельно
KPN
4 / 4 / 1
Регистрация: 23.03.2012
Сообщений: 40
16.05.2012, 15:20  [ТС]
а тот код рабочей программы что выше но со статическим массивом как прикрутить чтобы работало с динамическим???
ввод динамического массива я сделал, как приделать метод Гаусса???

Добавлено через 58 минут
все, разобрался. Вот рабочий код:
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
#include<iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
 
int main()
{
   int i, j, n, m;
//создаем массив
   cout << "введи число уравнений: ";
         cin >> n;
         cout << "введи число неизвестных: ";
         cin >> m;
         m+=1;
    float **matrix = new float *[n];
         for (i=0; i<n; i++)
             matrix[i] = new float [m];
 
//инициализируем
 
    for (i = 0; i<n; i++)
 
        for (j = 0; j<m; j++)
        {
            cout << "Элемент " << "[" << i+1 << " , " << j+1 << "]: "  ;
 
            cin >> matrix[i][j];
}
 
 //выводим массив
    cout << "matrix: " << endl;
      for (i=0; i<n; i++)
       {
          for (j=0; j<m; j++)
            cout << matrix[i][j] << " ";
        cout << endl;
       }
    cout << endl;
 
//Метод Гаусса
//Прямой ход, приведение к верхнетреугольному виду
    float  tmp, xx[m];
    int k;
 
    for (i=0; i<n; i++)
     {
       tmp=matrix[i][i];
         for (j=n;j>=i;j--)
             matrix[i][j]/=tmp;
           for (j=i+1;j<n;j++)
          {
             tmp=matrix[j][i];
               for (k=n;k>=i;k--)
             matrix[j][k]-=tmp*matrix[i][k];
          }
      }
  /*обратный ход*/
    xx[n-1] = matrix[n-1][n];
     for (i=n-2; i>=0; i--)
       {
           xx[i] = matrix[i][n];
           for (j=i+1;j<n;j++) xx[i]-=matrix[i][j]*xx[j];
       }
 
//Выводим решения
       for (i=0; i<n; i++)
           cout << xx[i] << " ";
       cout << endl;
 
    delete[] matrix;
 
   return 0;
}
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru