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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 21:33   #1
Вечно грустная...
Пользователь
 
Аватар для Вечно грустная...
 
Регистрация: 04.02.2011
Сообщений: 34
Смущение Метод гаусса для решений СЛАУ

Помогите создать метод который пребразует в нули все элементы ниже главной диагонали(прямой ход)?

Вот нашла один метод:

Помогите пожалуйста разобрать код, на бумажке решила этим методом но код разобрать не получается=)

Не могу понять все эти бесконечные циклы=)
Код:
void PryamoiHod(int n, double **a, double *b)
{
        double v;
        for(int k = 0,i,j,im; k < n - 1; k++)
        {
                im = k;
                for(i = k + 1; i < n; i++)
                {
                        if(fabs(a[im][k]) < fabs(a[i][k]))
                        {
                                im = i;
                        }
                }
                if(im != k)
                {
                        for(j = 0; j < n; j++)
                        {
                                v                = a[im][j];
                                a[im][j] = a[k][j];
                                a[k][j]  = v;
                        }
                        v     = b[im];
                        b[im] = b[k];
                        b[k]  = v;
                }
                for(i = k + 1; i < n; i++)
                {
                        v               = 1.0*a[i][k]/a[k][k];
                        a[i][k] = 0;
                        b[i]    = b[i] - v*b[k];
                                                if(v != 0)
                        for(j = k + 1; j < n; j++)
                        {
                                a[i][j] = a[i][j] - v*a[k][j];
                        }
                }
        }
}
Хочу жить... а не существовать...
Вечно грустная... вне форума Ответить с цитированием
Старый 21.09.2011, 23:17   #2
gamer-25
Пользователь
 
Регистрация: 21.09.2011
Сообщений: 25
По умолчанию

Вот по другому
Код:

#include <iostream.h>
#include <windows.h>


const int ArrSIZE = 5;
void PryamoiHod(int matrix[ArrSIZE][ArrSIZE]);

int main()
{
   int Matrix[ArrSIZE][ArrSIZE] =             {{5,3,7,8,1},
                                               {2,7,9,0,3},
                                               {4,2,8,7,1},
                                               {0,5,7,6,4},
                                               {2,4,9,8,5} };

   PryamoiHod(Matrix);


   cout << endl << endl;
   system("pause");
   return 0;
}

void PryamoiHod(int matrix[ArrSIZE][ArrSIZE])
{
   int row, column;
   
   for (row = 0; row < ArrSIZE; row++)
      for (column = 0; column < ArrSIZE; column++)
         if (row > column)
            matrix[row][column] = 0;

   // Печать матрицы
   for (row = 0; row < ArrSIZE; row++)
   {
      for (column = 0; column < ArrSIZE; column++)
         cout << matrix[row][column] << "  ";
      cout << endl;
   }

}

Последний раз редактировалось gamer-25; 22.09.2011 в 00:36.
gamer-25 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для решения СЛАУ методом Гаусса Natalie023 Помощь студентам 5 17.07.2011 13:31
метод Гаусса для С++ korsaru Общие вопросы C/C++ 4 16.10.2010 20:46
Метод Гаусса с выбором главного элемента для решения СЛАУ lira_slava Помощь студентам 3 21.05.2009 20:56