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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 22:19   #1
Levhik
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 33
Счастье аргументы функции

Вот есть функция:
Код:
void solveGaussJordan(double** A, double* b, int n) {
  double largest;                            
  int    pivotRow = 0;                      
  int    pivotCol = 0;                      
  int*   pivot = new int[n];             
                                              
  int i = 0;
  for(i = 0; i < n; i++) {
    pivot[i] = 0;
  }

  int j = 0;
  int l = 0;
  for(i = 0; i < n; i++) {
    largest = 0;
    for(j = 0; j < n; j++) {
      if(pivot[j] != 1) {
        for(int k = 0; k < n; k++) {
          if(pivot[k] == 0) {
            if(fabs(A[j][k]) >= largest) {   
              largest = fabs(A[j][k]);        
              pivotRow = j;
              pivotCol = k;
            }
          } else if(pivot[k] > 1) {           
            cerr << "Error: Singular matrix A in the system Ax = b." << endl;
            exit(2);
          }
        }
      }
    }
    (pivot[pivotCol])++;                      

    if(pivotRow != pivotCol) {            
      for(l = 0; l < n; l++) {           
        swap(A[pivotRow][l], A[pivotCol][l]); 
      }
      swap(b[pivotRow], b[pivotCol]);
    }

    if(A[pivotCol][pivotCol] == 0.0) {   
      return;                               
    }                                        
                                

    double pivotInverse = 1.0/A[pivotCol][pivotCol];
    for(l = 0; l < n; l++) {           
      A[pivotCol][l] *= pivotInverse;    
    }
    b[pivotCol] *= pivotInverse;           

    for(l = 0; l < n; l++) {                 
      if(l != pivotCol) {                    
        double temp = A[l][pivotCol];
        for(int m = 0; m < n; m++) {
          A[l][m] -= A[pivotCol][m] * temp;
        }
        b[l] -= b[pivotCol] * temp;
      }
    }
  }

  delete[] pivot;                  
}
которая вызывается вот так:
Код:
solveGaussJordan(covariance, dTestParams, parameterCount);
вот не могу понять, если эта функция ничего не возвращает и использует только локальные переменные, то зачем она нужна?
Levhik вне форума
Старый 03.05.2009, 22:39   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
вот не могу понять, если эта функция ничего не возвращает и использует только локальные переменные, то зачем она нужна?
Функции передается два массива. Вот их она и меняет.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 04.05.2009, 11:20   #3
GrIfFiN
 
Регистрация: 29.04.2009
Сообщений: 8
По умолчанию

Levhik Изучи что такое указатели в Си и все станет ясно.
GrIfFiN вне форума
Старый 04.05.2009, 17:17   #4
Levhik
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 33
По умолчанию

да, походу надо поучить. Всем спасибо за совет!!!
Levhik вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функции surovii Помощь студентам 10 28.03.2009 13:12
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Функции в С++ bullvinkle Помощь студентам 5 08.12.2008 07:36
Функции xxxPascalxxx Помощь студентам 2 28.12.2007 18:04
Функции Vinni_puh Microsoft Office Excel 1 20.12.2007 05:51