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

Комментарии к программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в коде http://www.cyberforum.ru/cpp-beginners/thread1188126.html
Помогите с ошибкой пожалуйста, компилю на линуксе, суть такова, изменение порядка строк в текстовом файле, он зацикливается и не может сделать это, считывает с первого файла, а записать во второй не...
C++ Заданный текст распечатать по строкам Заданный текст распечатать по строкам, понимая под строкой либо очередные 10 символов, если среди их нет запятой, либо часть текста до запятой включительно. помогите пожалуйста разобраться... http://www.cyberforum.ru/cpp-beginners/thread1188117.html
C++ Удалить буквы из строки
Здравствуйте, нужна ваша помощь: необходимо удалить из строки группы букв "abcd", написал программу, но нужна помощь в цикле, думал таким образов if (line == "abcd") и после удалять, но что-то и с...
Параллельные потоки: найти произведение элементов числового массива C++
помогите решить задачу Найти произведение элементов числового массива.
C++ Проверка введенного значения. Является ли оно числовым http://www.cyberforum.ru/cpp-beginners/thread1188108.html
Если цифры в числе идут в порядке возрастания, то проверка успешна, если же в порядке убывания, то появляется ошибка bool is_int(string a) { int i = 0, fl = 0, l = 0; char t; l = a.length();...
C++ Написать код обработки одномерного массива Написать код обработки одномерного массива,(задание вложено ниже) подробнее

Показать сообщение отдельно
Alek70694
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 247

Комментарии к программе - C++

26.05.2014, 01:18. Просмотров 141. Ответов 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
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
#define FOR_k  for (int k = 0; k < dim; ++k)
#define FOR_j  for (int j = 0; j < dim; ++j)
#define FOR_i  for (int i = k + 1; i < dim; ++i)
void swap(double &a, double &b)
{
    double temp = a;
    a = b;
    b = temp;
 
}
 
void Gauss(double **A, double *B, int dim)
{
    FOR_k
    {
        if (A[k][k] == 0.0)
        {
           FOR_i
            {
                if (A[i][k] != 0.0)
                {
                    FOR_j
                        swap(A[i][j], A[k][j]);
 
                    swap(B[i], B[k]);
 
                    break;
                }
            }
        }
 
        double div = A[k][k];
 
        FOR_j
            A[k][j] /= div;
 
        B[k] /= div;
 
       FOR_i
        {
            double multi = A[i][k];
 
            for (int j = 0; j < dim; ++j)
                A[i][j] -= multi * A[k][j];
 
            B[i] -= multi * B[k];
        }
    }
 
    for (int k = dim - 1; k > 0; --k)
    {
        for (int i = k - 1; i + 1 > 0; --i)
        {
            double multi = A[i][k];
 
            for (int j = 0; j < dim; ++j)
                A[i][j] -= multi * A[k][j];
 
            B[i] -= multi * B[k];
        }
    }
}
 
int main()
{
     FILE *k,*k1;
    int n;
    double **A;
    double *B;
      k=fopen("D:\\aaa.txt","a+");
                 if(!k)
                       {
                      printf("Otkritie faila ne vozmojno");
                          system("pause");
                          exit(1);
                       }
    fscanf(k,"%d",&n);
     k1=fopen("D:\\bbb.txt", "a+");
             if(!k1)
                     {
                            printf("Otkritie faila ne vozmojno");
                            system("pause");
                            exit(1);
                          }
    B=new double[n];
          A=new double *[n];
    for (int i = 0; i < n; ++i)
        A[i] = new double [n];
         for(int i=0;i<n;i++)
         {
            for(int j=0;j<n;j++)
            {
            fscanf(k,"%lf",&A[i][j]);
             }
            fscanf(k1,"%lf",&B[i]);
             }
    Gauss(A, B, n);
 
    std::cout << "X = {";
    for(int i=0;i<n;i++)
    {
    std::cout<< B[i] <<" ";
    }
    std::cout<<" }";
    for (int i = 0; i < n ; ++i)
        delete [] A[i];
   getch();
    return 0;
}
Добавлено через 5 минут
Задание: Разработать программу для численного решения системы линейных алгебраических уравнений (СЛАУ) методом Гаусса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru