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

Метод Гаусса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить сечение http://www.cyberforum.ru/cpp-beginners/thread273311.html
В понедельник зачет...помогите пожалуйста с программой!( В правильной четырехугольной пирамиде построить сечение, проходящее через диагональ основания и вершину пирамиды.
C++ что в коде не так? #include <string.h> #include <iomanip> #include <conio.h> #include <fstream> #include <stdlib.h> #include <windows.h> void summa(int , int a1); void main(void) { http://www.cyberforum.ru/cpp-beginners/thread273308.html
обратите внимание C++
Здравствуйте. я обращаюсь с прозьбой. пожалуйста, дайте мне совет. я вот немного знаю синтаксис языка С. но незнаю как программировать, незнаю как делать блог схемы. ну вообщем не могу понять как это...
C++ перевод величин из радианной в градусную
Составить программу, осуществляющую перевод величин из радианной меры в градусную и наоборот. Программа должна запрашивать, какой перевод нужно осуществить, и выполнить указанное действие.
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread273282.html
Заполнить файл N действительными числами, полученными с помощью генератора случайных чисел. Найти сумму минимального и максимального элементов этого файла Спасибо
C++ На побочной диагонали матрицы разместить суммы элементов, которые лежат той же строке и столбце Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов, которые лежат той же строке и столбце. помогите решить пожалуйста. Заранее спасибо!) подробнее

Показать сообщение отдельно
Uxxzz
9 / 9 / 0
Регистрация: 05.04.2011
Сообщений: 67
10.04.2011, 04:13
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#include <windows.h>
 
int main()
{
    int n,i,j,k,p,m,z,y,l;
    char f;
    double **a,**v,*b,*x,*pr,s,c,h,r,*u,*pog,e;
y=1;
 
    
    
               while (y>0)
{
 l=1;
 y=0;
 
      cout<<"Vvedite razmer:";
  cin>>n;
  if (n<2) {cout<<"ne imeet smisla!"<<endl; l=0;}
  a = new double *[n+1];
  v = new double *[n+1];
    for (i=0;i<=n;i++)
       a[i]= new double[n+1];
    for (i=0;i<=n;i++)
       v[i]= new double[n+1];
 b= new double[n+1];
 x= new double[n+1];
 u= new double[n+1];
 pog= new double[n+1];
 
 if (n>1)     
 {
 for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
   {cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j];v[i][j]=a[i][j];}
 
 
 for(i=1;i<=n;i++)
  {cout<<"Svobpdnii 4len "<<i<<"="; cin>>b[i]; u[i]=b[i];}
 
  cout<<"Vid sistemi:"<<endl;
for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
   {cout<<setw(3)<<a[i][j]<<" "; if(j==n) cout<<"= "<<setw(3)<<b[i]<<endl;}
 
 
 for(k=1;k<=n-1;k++)
  {
      p=k;
      for(m=k+1;m<=n;m++)
          if(fabs(a[p][k])<fabs(a[m][k])) p=m;
     //usaem ykazateli^_^
          pr=a[k];
          a[k]=a[p];
          a[p]=pr;
     r=b[k];b[k]=b[p];b[p]=r;
    //Vremya gausa!!
     for(m=k+1;m<=n;m++)
     {
         c=a[m][k]/a[k][k];
        b[m]=b[m]-c*b[k];
         for(i=k;i<=n;i++)
             a[m][i]-=c*a[k][i];
     }
  }
 
               }
 
//proverka diagonali
   z=1;
    for (i=1;i<=n;i++)
    {if (a[i][z]==0)  {cout<<"Vashe sistema ne imeet rewenii libo ih beskonechno mnogo"<<endl;l=0;i=n+1; }z++;}
        
//check
   if (l!=0)
     {
 cout<<"Posle preobrazovaniya:"<<endl;
 for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    {cout<<setw(3)<<a[i][j]<<" "; if(j==n) cout<<"= "<<setw(3)<<b[i]<<endl;}
  
 //idem nazad!!!! 
  x[n]=b[n]/a[n][n];
   for(k=n-1;k>=1;k--)
   {
      s=0;
      for(i=k+1;i<=n;i++)
           s+=a[k][i]*x[i];
      x[k]=(b[k]-s)/a[k][k];
   }
  cout<<"----------------------------------------"<<endl;
  cout<<"Korni:"<<endl;
  for(i=1;i<=n;i++)  cout<<"x["<<i<<"]="<<x[i]<<endl;
 
 for(i=1;i<=n;i++)
  {   h=0;
    for(j=1;j<=n;j++) h+=x[j]*v[i][j];
    pog[i]=fabs(u[i]-h);
  }  
 e=pog[1];
 for(i=1;i<n;i++)
   if (pog[i+1]<pog[i]) e=pog[i];
 cout<<"Obsolutnaya pogreshnost'="<<e<<endl;
 cout<<"----------------------------------------"<<endl;
   }
 
for(i=0;i<n+1;i++)
  delete[]v[i];
for(i=0;i<n+1;i++)
  delete[]a[i];
delete []a;
delete []v;
delete []b;
delete []u;
delete []pog;
 
cout<<"  -Gelaete li rewit' drygyu sistemy(y/n)?"<<endl;
cin>>f;
          if (f=='y') 
          {  y=1; system("cls"); if(l!=0){ cout<<"Korni prevedyshei sistemi:"<<endl; 
             for(i=1;i<=n;i++)
                   cout<<"x["<<i<<"]="<<x[i]<<"  "; cout<<endl<<endl;
             cout<<"Obsolutnaya pogreshnost'="<<e<<endl;}}
          else 
          {system("cls");  cout<<"Korni prevedyshei sistemi:"<<endl; 
             for(i=1;i<=n;i++)
                   cout<<"x["<<i<<"]="<<x[i]<<"  "; cout<<endl<<endl;
          cout<<"Obsolutnaya pogreshnost'="<<e<<endl;
 
    }
delete []x;
}
 
return 0;
}
Добавлено через 9 минут
Тут есть и метод Гаусса и обратный метод Гаусса....разберетесь сами уже....
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru