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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в коде http://www.cyberforum.ru/cpp-beginners/thread1188126.html
Помогите с ошибкой пожалуйста, компилю на линуксе, суть такова, изменение порядка строк в текстовом файле, он зацикливается и не может сделать это, считывает с первого файла, а записать во второй не может или пишет без остановки. #include "myfunk.h" #include <stdio.h> #include <stdlib.h> #include <string.h> int filikx (char*sF1, char*sF2) { FILE *F1, *F2; int i; F1=fopen (sF1,"r"); if...
C++ Заданный текст распечатать по строкам Заданный текст распечатать по строкам, понимая под строкой либо очередные 10 символов, если среди их нет запятой, либо часть текста до запятой включительно. помогите пожалуйста разобраться разобраться http://www.cyberforum.ru/cpp-beginners/thread1188117.html
C++ Удалить буквы из строки
Здравствуйте, нужна ваша помощь: необходимо удалить из строки группы букв "abcd", написал программу, но нужна помощь в цикле, думал таким образов if (line == "abcd") и после удалять, но что-то и с удалением не клеится, и с циклом выдает ошибку, помогите пожалуйста. #include <iostream> #include <cstring> #include <ctype.h> #include <cstdlib> class bulb { private: char str;
Параллельные потоки: найти произведение элементов числового массива 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(); for (i = 0; i < l; i++) { for (t = '0'; t <= '9'; t++) {
C++ Дерево дерево, странное дерево Нужна помощь в построении дерева. Задание таково: Вершина дерева содержит N целых значений и два указателя на потомков. Запись значений производится таким образом, что меньшие значения оказываются ближе к корню дерева (то есть все значения в поддеревьях больше самого большого значения у предка). Разработать функции включения и поиска данных в таком дереве. Если новое значение «проходит» через... подробнее

Показать сообщение отдельно
Alek70694
 Аватар для Alek70694
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 240
26.05.2014, 01:18     Комментарии к программе
Напишите, пожалуйста, комментарии к программе. И если не затруднит, объясните пожалуйста, как сделать тестовый пример.
Не пойму как она работает. Заранее, благодарю!
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 минут
Задание: Разработать программу для численного решения системы линейных алгебраических уравнений (СЛАУ) методом Гаусса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru