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

Кто может дать пояснения к программе на С++? Метод Жордана-Гаусса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ оператор "или" на С++ http://www.cyberforum.ru/cpp-beginners/thread272024.html
"ИЛИ" на С++
C++ Найти сумму тех элементов, в запись которых входит ровно две цифры Задача: Дан одномерный массив из N элементов. Найти сумму тех элементов, в запись которых входит ровно две цифры. Пример: 112212 Делал все это через циклы определяя последние 2 цифры элемента и сравнивал с ними остальные. Получилась большая программа. Говорят можно сделать проще, а именно через некую функцию (которой я естественно не знаю). Не подскажите что за функция? Добавлено через 1... http://www.cyberforum.ru/cpp-beginners/thread272021.html
C++ Исправить ошибки
Вывести через String. Спасибо заранее. #include "stdafx.h" using namespace System; void main(void) { System::String^St = gcnew String ("ababab cdcd f"); int i=0;
C++ Работа с экраном в текстовом режиме
Ниже дана программа которая до нажатия Esc повторяет действия: случайным образом выбирает размеры (соотношение 25х80) и положение окна на экране закрашивает его в случайный цвет помещает в него двойную рамку и текст “Привет!” со случайным цветом и включает источник звука со случайной частотой Все окна полностью размещаются на экране Задание: после нажатия Esc программа модифицируется: Окно...
C++ Как сделать так, чтобы в массив вводилось, рэндомно, НЕ целочисленное число???? http://www.cyberforum.ru/cpp-beginners/thread271993.html
Например если есть массив из 100 элементов... а надо чтобы вводились именно не целочисленные числа. Не буду же я вводить каждое число ?! ВОт тока не могу догнать как это сделать.... подскажите пожалуйста, что для этого надо использовать????
C++ сделать пользовательскую функцию Необходимо Вычислить интеграл с заданной точностью, программа работает , но вычесление суммы s1 нужно сделать ввиде пользовательской функции #include <stdio.h> #include <stdlib.h> double f(double x) { return 1/(sqrt(1+3*x+2*x*x)); } int main(int argc, char *argv) { double a = 0.0, b = 1.0,h,s2=0,s1,s=0,epsilon; подробнее

Показать сообщение отдельно
Дарья Дмитренко
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 44

Кто может дать пояснения к программе на С++? Метод Жордана-Гаусса - C++

07.04.2011, 20:04. Просмотров 1741. Ответов 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
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
 
void main()
{
     int colPos, rowPos;
     int i, j, k, razm;
     double max;
     double temp;
     int m_nCols;
     int m_nRows;
     double** array;
     double*  parray;
     unsigned int* ListVar;
     double* x;
     cout<<"введите размерность\n";
     cin>>razm;
     cout<<"введите матрицу:\n";
 
     m_nRows=razm;
     m_nCols=m_nRows+1;
     parray=new double[m_nRows*m_nCols];
     array=new double*[m_nRows];
     for (i=0; i<m_nRows; i++)
     {
          *(array+i)=parray+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[razm];
 
     for (i=0; i<m_nRows-1; i++)
          x[i]=i+1;
 
     for (i=0; i<razm; i++)
          for (j=0;j<(razm+1); j++)
                cin>>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];
                }
 
     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;
     }
     cout<<"решение системы:\n";
     for (i=0; i<m_nRows; i++)
          cout<<"X"<<i+1<<"="<<x[i]<<endl;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru