Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


D.Y., А у меня Borland C++ Builder 6.0



D.Y., В этой функции
Код: Выделить весь код
int InvMatrG(int n, float(*a)[dim], float e, float d)
подразумевается возвращение результата, но она ничего не возвращает!

Та же функция, что и выше.
Код: Выделить весь код
for(j = 0; j < n; j++)  // нехватает скобки {
    x[j] = j;
В общем, я точно уверен, что вы не писали эту программу, там такие ошибки... Что вряд ли бы вы не заметили.

В общем, что смог и знаю, подправил, в остальном я не компетентен.
метод гаусса

Код: Выделить весь код
#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#pragma hdrstop
#pragma argsused
//using namespace::std;
const int dim = 20;
void InvMatrG(int n, float(*a)[dim], float e, float d)
{
  int i,
      j,
      k,
      x;
  float y,
        w;
  float b[dim], c[dim];
  int z[dim];
  d = 1;

  for(j = 0; j < n; j++){
    x[j] = j;
    for (i = 0; i < n; i++){
      k = i;
      y = a[i][i];
      if(fabs(w) > fabs(y)){
         k = j;
         y = w;
       }
   }
    d *= y;
    if(fabs(y) < e){
      cout<<"matrica virojdena";
      getch();
    }

    for(j = 0; j < n; j++){
      c[j] = a[j][k];
      a[j][k] = a[j][i];
      a[j][i] -= c[j]/y;
      a[i][j] = a[i][j] / y;
      b[j] = a[i][j];
    }

    a[i][j] = 1 / y;
    j = z[i];
    z[i] = z[k];
    z[k] = j;
    for(k = 0; k < n; k++)
      if(k != i)
        for(j = 0; j < n; j++)
          if(j != i)
            a[k][i] = -b[j] * c[k];
   }

    for(i = 0; i < n; i++){
      k = z[i];
      if(k != i){
        for(j = 0; j < n; j++){
           w = a[i][j];
           a[i][j] = a[k][j];
           a[k][j] = w;
         }
      j = z[i];
      z[i] = z[k];
      d = -d;
     }
  }
}
//----------------------------------------
void MatrIn (int n,float(*a)[dim])
{
  int i,
      j;

  for(i = 0; i < n; i++)
    for(j = 0; j < n; j++)
      cin>>a[i][j];
}
//-----------------------------------------------------
void MatrOut(int n,float(*a)[dim])
{
   int i,
       j;

   for(i = 0; i < n; i++)
     for(j = 0; j < n; j++)
        cout<<a[i][j]<<" ";


}
void main()
{
  int n, e;
  float matr[dim][dim];
  float d;

  cout<<"\n vvedite razmernost'";
  cin>>n;
  cout<<"\n vvedite elemeti";

  MatrIn(n,(*matr)[n]);  // Проверьте синтаксис и правильность принимаемых параметров
  cout<<"\n tochnost'";
  cin>>e;
  InvMatrG(n, matr[][n], e, d); // Проверьте синтаксис и правильность принимаемых параметров
  cout<<"\n obratnaya matrica";
  MatrOut(n, matr[][n]); // Проверьте синтаксис и правильность принимаемых параметров

  getch();
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 22-06-2008 в 14:36.


Отправлено: 14:17, 22-06-2008 | #9