Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2011, 16:11   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию из C++ в C# метод Гаусса

если есть добрый человек который знает C++ и C# и ему не трудно будет перевести из плюсов в # прощу помощи)
вот код на плюсах:
Код:
#include<iostream>
#include<conio.h>
#include<cstdlib>
#include<cmath>

#define NUNKNOWN 4

using namespace std;

void main()
{
    int colPos, rowPos;
    int i, j, k;
    double max;
    double temp;
    int m_nCols;
    int m_nRows;
    double** array;
    double*  parray;
    unsigned int* ListVar;
    double* x;

    m_nRows=4;
    m_nCols=m_nRows+1;
    parray=new double[m_nRows*m_nCols];//20
    array=new double*[m_nRows];//4
    for (i=0; i<m_nRows; i++)
    {
        *(array+i)=parray+i*m_nCols;
    }

    ListVar=new unsigned int[m_nCols-1];//4
    for (j=0; j<m_nCols-1; j++)
        ListVar[j]=j+1;

    x=new double[NUNKNOWN];

    for (i=0; i<m_nRows-1; i++)
        x[i]=i+1;

    for (i=0; i<4; i++)//вводимо 20 чисел
        for (j=0;j<5; j++)
		{
            cin>>array[i][j];
	cout<<"i- "<<i<<"\n"<<"j- "<<j;
	cout<<"\n";
		}
    for (k=0; k<m_nRows-1; k++)
    {
        colPos=rowPos=k;
        max=array[k][k];
		//cout<<"k= "<<k<<"\n";
        for (i=k; i<m_nRows; i++)
            for (j=k+1; j<m_nCols-1; j++)
			{		
                if (abs(array[i][j])>max)
                {
                    max=array[i][j];
                    rowPos=i;
                    colPos=j;
					cout<<"rowPos- "<<rowPos<<"\n"<<"colPos- "<<colPos<<"\n";
                }
				//cout<<"i- "<<i<<"       "<<"j- "<<j<<"\n";
			}

        for (i=0; i<m_nRows; i++)
        {
            temp=array[i][k];
            array[i][k]=array[i][colPos];
            array[i][colPos]=temp;
			//cout"  "<<temp;
        }

        for (j=0; j<m_nCols; j++)
        {
            temp=array[k][j];
            array[k][j]=array[rowPos][j];
            array[rowPos][j]=temp;
			//cout<<"  "<<temp;
        }
		cout<<"\n";

        temp=ListVar[k];
        ListVar[k]=ListVar[colPos];
        ListVar[colPos]=temp;

		cout<<temp;


        for (j=m_nCols-1; j>=0; j--)
        {
            array[k][j]/=array[k][k];
			cout<<array[k][j]<<"\n";
			cout<<array[k][k]<<"\n";

        }
        for (j=0; j<m_nCols; j++)
            array[k][j];
        for (i=k+1; i<m_nRows; i++)
            for (j=m_nCols-1; j>=0; j--)
                array[i][j]-=array[k][j]*array[i][k];

        for (i=0; i<m_nRows; i++)
        {
            for (j=0; j<m_nCols; j++)
                cout<<array[i][j]<<" ";
            cout<<endl;
        }
        cout<<endl;
    }

    double s=0;
    x[m_nRows-1]=array[m_nRows-1][m_nCols-1] /array[m_nRows-1][m_nCols-2];
    for (i=m_nRows-2; i>=0; i--)
    {
        s=0;
        for (k=i+1; k<m_nRows; k++)
            s+=array[i][k]*x[k];
            x[i]=array[i][m_nCols-1]-s;
    }
    for (i=0; i<m_nRows; i++)
        cout<<"X"<<ListVar[i]<<"="<<x[i]<<endl;

    for (i=0; i<m_nRows; i++)
        delete [] array[i];
    delete [] array;
    delete [] parray;
    getch();
}
зарание спасибо)
Pein95 вне форума Ответить с цитированием
Старый 18.05.2011, 17:03   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Вот готовые решение: http://sources.codenet.ru/download/1464/Gauss.html
Hollander вне форума Ответить с цитированием
Старый 18.05.2011, 18:53   #3
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

спс, оч благодарен
Pein95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод гаусса jennis Помощь студентам 1 30.10.2010 15:51
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08
Help!!! Метод Гаусса Надя Microsoft Office Excel 7 07.05.2008 00:45