Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Си ==> Паскаль 
:(
    Опции темы
Lomiren
Дата 29.12.2004, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



Есть прога на Си - вычисление Системы линейных уравнениний с помошью обратной матрицы Помогите ее на Турбо паскаль переписать...

Код

//MARTIX by Lomiren...
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <complex.h>

double Reload(double MatrixR[20][20], int Len)
{
// ENTER THR MARTRIX
//cout << "\nENTER THE MATRIX\n";
int l=0,k=0,i=0,j=0,c=0;
double MatrixY[20][20];
double p=1,s=0,z=0;
for (i=0;i<Len;i++)
{
 MatrixY[i][0]=MatrixR[i][0];
 for (j=1;j<Len;j++)
 {
   if(i>=j)
   {
     k=j;
   }
   else
   {
     k=i;
   }
   s=0;
   for (l=0;l<k;l++)
   {
     s=s+MatrixY[i][l]*MatrixY[l][j];
   }
   MatrixY[i][j]=MatrixR[i][j]-s;
   if (j>i)
   {
     if(MatrixY[i][i]!=0)
     {
MatrixY[i][j]=MatrixY[i][j]/MatrixY[i][i];
     }
     else
     {
MatrixY[i][j]=0;
     }
   }
 }
   z=MatrixY[i][i];
   if(z==0)
   {
     p=0;
     goto g28;
   }
   else
   {
   g23:if (abs(z)>=1)
   {
     goto g25;
   }
   z=z*10;
   c=c-1;
   goto g23;
   g25:p=p*z;
   g26:if (abs(p)<=10)
   {
     goto g28;
   }
   p=p/10;
   c+=1;
   goto g26;
 }
  g28:

//cout << "vel opred D=p*10 c, gde p="<<p<<"c="<<c;
}
double Back=0;
if (p!=0)
{
Back=p*pow(10,c);
}
else
{
Back=0;
}
return Back;

// EXIT THE MATRIX

}
main()
{
clrscr();
cout << "\n  Wake up Neo...\n";
int MaxLen,i,j;
cout << "\n  Enter max lenght of matrix\n";
cin >> MaxLen;
double Matrix[20][20];
double MatrixA[20][20];
double MatrixB[20];
double MOpr;
for (i=0;i<MaxLen;i++)
{
 for(j=0;j<MaxLen;j++)
 {
   cin >> Matrix[i][j];
 }
 cin >> MatrixB[i];
}
MOpr=Reload(Matrix,MaxLen);
cout <<"\nMatrix:\n";
for (i=0;i<MaxLen;i++)
{
 for(j=0;j<MaxLen;j++)
 {
   cout << Matrix[i][j]<<" | ";
 }
 cout<< MatrixB[i]<<"\n";
}
cout << "\n=====\n";
int counter=0,DRow=0,DCol=0,Row=0,Col=0;
double Opr[20][20];
// ANTI MATRIX
for (DRow=0;DRow<MaxLen;DRow++)
{
for (DCol=0;DCol<MaxLen;DCol++)
{
Row=0;Col=0;
for (i=0;i<MaxLen;i++)
{
 for(j=0;j<MaxLen;j++)
 {
   if ((i!=DRow) & (j!=DCol))
   {
     MatrixA[Row][Col]=Matrix[i][j];
     Col++;
   }
  }
 Col=0;
 if(i!=DRow)
 {
   Row++;
 }
}
//cout <<"\n ROW="<<Row<<"\n COL="<<Col;

/*cout <<"\nMatrix A:\n";
for (i=0;i<Row;i++)
{
 for(j=0;j<Row;j++)
 {
   cout << MatrixA[i][j]<<" | ";
 }
 cout<<"\n";
}
//cout << "\n=====\n";
// ENTER THE MATRIX*/
Opr[DRow][DCol]=pow(-1,(DRow+DCol))*Reload(MatrixA, Row);
cout<<"\nOPR="<< Opr[DRow][DCol]<<" | ";
//cout <<"\nOPR= "<<Opr;

}

//cout<<"\n";
}

// END ANTI MATRIX
double X[20], temp=0;
cout <<"\n MOPR="<<MOpr;
for (i=0;i<MaxLen;i++)
{
 temp=0;
 for (j=0;j<MaxLen;j++)
 {
   cout<<"\n B="<<MatrixB[j]<<" opr="<<Opr[j][i];
   temp=temp+Opr[j][i]*MatrixB[j];
 }
   cout<<"\n temp="<<temp<<" * "<<MatrixB[i];


 X[i]=(1/MOpr)*temp;
 cout <<"\n X="<<X[i];
}
return 0;
}



PM MAIL   Вверх
bel_nikita
  Дата 29.12.2004, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Какой-то грустный топик smile
Как же тебе помочь, коли pascal не помню
С этим я думаю в раздел Delphi нужно обращаться



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.