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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zmei89
31 / 6 / 1
Регистрация: 10.09.2010
Сообщений: 835
#1

прокомментируйте мне каждую строку программы - C++

10.12.2011, 13:06. Просмотров 302. Ответов 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
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
#include "stdafx.h"
#include <iostream>//i/o
#include <conio.h> //getch
#include <cmath>   //fabs, abs
using namespace std;
 
void ShowVector(int n, double * vec);
void PryamoiHod(int n, double **a, double *b);
void ObratniHod(int n, double **a, double *b, double *x);
 
int main()
{
        int i,j,n;
        double **a, *b, *x;
        do
        {
                std::cout<<"Enter NUM of equations: ";
                std::cin>>n;
                //Выделяем память под матрицу А и векторы В и Х
                a = new double *[n];
                b = new double  [n];
                x = new double  [n];
                for(i = 0; i < n; i++)
                {
                        a[i] = new double[n];
                        //Ввод a
                        for(j = 0; j < n; j++)
                        {
                                std::cout<<"a["<<i + 1<<"]["<<j + 1<<"] = ";
                                std::cin>>a[i][j];
                        }
                }
                //Ввод b
                for(i = 0; i < n; i++)
                {
                        std::cout<<"b["<<i + 1<<"] = ";
                        std::cin>>b[i];
                }
                
                std::cout<<"\tSee input\r\n";
                std::cout<<"Matrix A:\r\n";
                for(i = 0; i < n; i++)
                        ShowVector(n, a[i]);
                std::cout<<"Vector B:\r\n";
                ShowVector(n, b);
                
                std::cout<<"\tSolving on Gauss method\r\n";
                PryamoiHod(n, a, b);
                std::cout<<"Forvard Gauss course\r\n";//Прямой ход
                std::cout<<"Matrix A:\r\n";
                for(i = 0; i < n; i++)
                        ShowVector(n, a[i]);
                std::cout<<"Vector B:\r\n";
                ShowVector(n, b);
 
                ObratniHod(n, a, b, x);
                std::cout<<"Back Gauss course\r\n";//Обратный ход
                std::cout<<"Matrix A:\r\n";
                for(i = 0; i < n; i++)
                        ShowVector(n, a[i]);
                std::cout<<"Vector B:\r\n";
                ShowVector(n, b);
 
                std::cout<<"Results :\r\n";
                ShowVector(n, x);
 
                std::cout<<"Press Y for new input\r\n";
                //Чистим память
                delete [] a;
                delete [] b;
                delete [] x;
        }
        while(toupper(getch()) == 'Y');
        return 0;
}
 
void ShowVector(int n, double * vec)
{
        for(int i = 0; i < n; i++)
                std::cout<<vec[i]<<" ";
        std::cout<<endl;
}
 
void PryamoiHod(int n, double **a, double *b)
{
        double v;
        for(int k = 0,i,j,im; k < n - 1; k++)
        {
                im = k;
                for(i = k + 1; i < n; i++)
                {
                        if(abs(a[im][k]) < abs(a[i][k]))
                        {
                                im = i;
                        }
                }
                if(im != k)
                {
                        for(j = 0; j < n; j++)
                        {
                                v                = a[im][j];
                                a[im][j] = a[k][j];
                                a[k][j]  = v;
                        }
                        v     = b[im];
                        b[im] = b[k];
                        b[k]  = v;
                }
                for(i = k + 1; i < n; i++)
                {
                        v               = 1.0*a[i][k]/a[k][k];
                        a[i][k] = 0;
                        b[i]    = b[i] - v*b[k];
                                                if(v != 0)
                        for(j = k + 1; j < n; j++)
                        {
                                a[i][j] = a[i][j] - v*a[k][j];
                        }
                }
        }
}
 
void ObratniHod(int n, double **a, double *b, double *x)
{
        double s = 0;
        x[n - 1] = 1.0*b[n - 1]/a[n - 1][n - 1];
        for(int i = n - 2, j; 0 <= i; i--)
        {
                s = 0;
                for(j = i + 1; j < n; j++)
                {
                        s = s+a[i][j]*x[j];
                }
                x[i] = 1.0*(b[i] - s)/a[i][i];
        }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 13:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос прокомментируйте мне каждую строку программы (C++):

Прокомментируйте мне каждую строчку программы. Массивы - C++
#include “stdafx.h” #include “iostream” #include &lt;conio.h&gt; using namespace std; int main() { setlocale (LC_ALL, “rus”);...

Прокомментируйте мне каждую строчку программы. Структура, сортировка, массив, вывод - C++
//Библиотеки #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &quot;iostream&quot; #include &lt;string.h&gt; using namespace std; //Объявление...

прокомментируйте каждую строчку программы, у самой не получается (максимальный массив) - C++
#include &lt;iostream&gt; using namespace std; void main() { int A,i,j,max; for(i=0;i&lt;3;i++) for(j=0;j&lt;3;j++)...

Прокомментируйте каждую строчку кода - C++
1. Типы данных в C++. Целочисленные типы (с примерами). Модификатор signed (с примерами). 2. Арифметические операции в C++ (с...

Прокомментируйте каждую строчку кода - C++
1. Типы данных в C++. Тип чисел с плавающей точкой float (с примерами). 2. Арифметические выражения в C++ (с примерами). Комбинированные...

Ребята, объясните пожалуйста каждую строку этой программы - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; using namespace std; int main(); const int* arr_mmin(const int* f, const int* l){ ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2011, 13:06
Привет! Вот еще темы с ответами:

Прокомментируйте мне программу - C++
поясняю...преподаватель сказал нам рассказать как работает программу помогите мне пожалуйста... надо написать каждую строчку что она...

Прокомментировать каждую строку кода (или хотя бы каждую функцию) - C++
нашел программу в интернете, только ничего не понял) можете прокомментировать каждую строку (ну или хотя бы каждую функцию) #include...

Прокомментируйте,пожалуйста, участки программы - C++
Здравствуйте! Кому не сложно, помогите, пожалуйста, прояснить некоторые части программы. Суть программы заключается в следующем -...

Прокомментируйте, пожалуйста, код программы. - C++
Доброго дня всем! Перед Вами - 2 программы - 1 шифрует текст методом гаммирования, вторая - генератор простых чисел. Если не трудно -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru