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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Visual C++ тема функции. Построить последовательность чисел Фибоначчи. http://www.cyberforum.ru/cpp-beginners/thread121983.html
Для заданного числа N>1 построить последовательность чисел фибоначчи А(0), А(1), .... А(n), которые изменяются по закону А(0)=А(i-1)+A(i-2). Определить значение третьего четного числа. Добавлено через 1 час 1 минуту подскажите как функцию для фибоначчи для числа n построить?
C++ Заменить цифры в строке на '*' Ввести с клавиатуры символьную строку. Длина строка не более 80 символов. Заменить все цифры, находящиется на нечетных позициях на символ '*'. Замену выполнить, начиная с позиции с номером N, который ввести с клавиатуры. Вывести обработанную строку на экран. Напишите пожалуйста.:p http://www.cyberforum.ru/cpp-beginners/thread121982.html
C++ Два вопроса по циклу for
1. Нужно два условия и два модификатора в цикле for. Правильно ли я делаю? for (int j=0, k=0; j<n && k<m; j++, k++) { //Работа цикла } 2. Имеется тот же самый цикл. or (int j=0, k=0; j<n && k<m; j++, k++) { if (условие1) оператор1; if (условие2) оператор2;
Перегрузка орератора ++ для графических объектов C++
Помогите понять в чем ошибка перегрузки оператора ++; При использовании метод рисования вылетает с ошибкой на раб. стол. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h>
C++ Считывание из файла (Организация таблиц идентификаторов) http://www.cyberforum.ru/cpp-beginners/thread121935.html
Всем доброй ночи, помогите пожалуйста доделать задачу: Требуется написать программу, которая получает на выходе набор идентификаторов, организует таблицы идентификаторов с помощью заданных методов (простой список и рехэширование с использованием псевдослучайных чисел), позволяет осуществить многократный поиск произвольного идентификатора в таблицах и сравнить эффективность методов организации...
C++ Тип bool Может кто-нибудь поможет на простейшем но понятном примере объяснить как работает тип bool. Знаю что это тип может быть ложный или истинный но что-то никак его работу не могу понять.... для чего он нужен... подробнее

Показать сообщение отдельно
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.04.2010, 19:56     Метод Гаусса в С++
fazanaka, ознакомьтесь с правилами форума. Все допустимые ссылки уже давно есть на форуме Бесплатные среды (IDE) для программирования на С/С++

Shakira, вот, исправил ошибки
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
#include <conio.h>
const int n=3;
 
double A[n][n]; // матрица коэффицентов Гаусса
double B[n]; // рабочий массив свободных членов
void ReadData()
{
    FILE*f=fopen("l1.txt","rt");
    if (f!=NULL)
        printf("CAN'T OPEN FILE\nPlease, f**k off!");
    else
    {
 
        fscanf(f,"%d",&n);
        printf("Sborka matritsi m- na n-:\n");
        for (int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                fscanf(f,"%d",&A[i][j]);
                printf("%d",A[i][j]);
            }
            printf("\n");
        }
        printf("\n\n");
        fclose(f);
    }
}
 
void Gauss( double X[n], const double Z[n][n], const double Y[n])
{
    ReadData();
 
    int i, j, k; // рабочие переменные
    for( i = 0; i < n; i++ ) // копирование в рабочую матрицу A
    {
        for( j = 0; j < n; j++ )
            A[i][j] = Z[i][j];
        B[i] = Y[i]; // копирование свободных членов
        X[i] = 0;
    }
    for( k = 0; k < n-1; k++ )
        for( i = k+1; i < n; i++ ) // преобразование строк
        {
            double r = A[i][k] / A[k][k];
            for( j = k; j < n; j++ )
                A[i][j] -= A[k][j] * r;
            B[i] -= B[k] * r;
        }
        X[n-1] = B[n-1] / A[n-1][n-1];
 
        for( i = n-2; i >= 0; i-- )
        {
            double s = 0;
            for( j = i+1; j < n; j++ )
                s += A[i][j] * X[j];
            X[i] = ( B[i] - s ) / A[i][i];
        }
 
        printf( "\n" );
        for( i = 0; i < n; i++ )
        { printf( "\n" );
        for( j = 0; j < n; j++ )
            printf( "%8.2lf", A[i][j] );
        printf( " %8.2lf", B[i] );
        }
}
 
/* ------------------------------------------------- */
 
void main( void )
{
    ReadData();
    double X[n];// корни системы линейных уравнений
    short i, j; // рабочие переменные
    printf( " matritsa A* matritsa B\n" );
    for( i = 0; i < n; i++ ) // цикл строк
    {
        printf( "\n" ); // новая строка на мониторе
        for( j = 0; j < n; j++ )
 
            printf( "%8.2lf", A[i][j] );
        printf( " %8.2lf", B[i] );
 
    }
    printf( "\n" );
    printf( "stypen4atii vid matritsi \n" );
    Gauss( X, A, B ); // решение методом Гаусса
    printf( "\n" );
    printf( "\n" );
    printf( " zna4enia peremennih x1,x1,x3\n" );
    printf( "\n X = " );
 
    for( i = 0; i < n; i++ )
 
        printf( "%8.2lf", X[i] );
    printf( "\n" );
    printf( "\n" );
    printf( "rang=\n" );
 
    getch();
}
Судя по вашему коду, то программа писалась в MS VS. Можете ее скачать по ссылке MS VC++ 9 EE или MS VS 9 EE
 
Текущее время: 02:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru