Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Metoda Gaussa - Borland C++ (błąd)

Ostatnio zmodyfikowano 2015-05-01 23:49
Autor Wiadomość
Xvn
Temat założony przez niniejszego użytkownika
Metoda Gaussa - Borland C++ (błąd)
» 2015-05-01 23:49:58
Witam, wyświetlając wynik ciągle wyskakują te same liczby, które nie mają nic wspólnego z rozwiązaniem. Ktoś naprowadziłby o co chodzi? Jestem laikiem...
C/C++
// dane programu
double ** A;
int r = rozmiar;

A =( double ** ) malloc( r * sizeof( double * ) ); //alokacja pamieci
for( i = 0; i < r; i++ )
{
    A[ i ] =( double * ) malloc( r * sizeof( double ) );
    for( j = 0; j < r; j++ ) //wpisanie wartosci do tablicy
         A[ i ][ j ] = StrToFloat( a->Cells[ j + 1 ][ i + 1 ] );
   
};

double * B = new double[ r ];
double * X = new double[ r ];
// funkcja
for( int k = 0; k < r - 1; k++ )
{
    for( int i = k + 1; i < r; i++ )
    {
        A[ i ][ k ] = A[ i ][ k ] / A[ k ][ k ];
        for( int j = k + 1; j < r + 1; j++ )
        {
            if( j == r ) B[ i ] = B[ i ] - A[ i ][ k ] * B[ k ];
            else A[ i ][ j ] = A[ i ][ j ] - A[ i ][ k ] * A[ k ][ j ];
           
        }
        A[ i ][ k ] = 0;
    }
}
for( int i = r - 1; i >= 0; i-- )
{
    X[ i ] = B[ i ];
    for( int j = i + 1; j < r; j++ )
    {
        if( j == r ) X[ i ] = X[ i ] - B[ i ] * X[ j ];
        else X[ i ] = X[ i ] - A[ i ][ j ] * X[ j ];
       
    }
    X[ i ] = X[ i ] / A[ i ][ i ];
}
// koniec liczenia
for( int i = 0; i < r; i++ )
     x->Cells[ 1 ][ i + 1 ] = CurrToStrF( X[ i ], ffNumber, dokladnosc );

Label5->Visible = true;
x->Visible = true;
P-131686
« 1 »
  Strona 1 z 1