ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

Помогите перевести прогу с паскаля в С++
  #1  
Старый 23.03.2009, 17:42
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
Провел на форуме:
14678

Репутация: 0
Exclamation Помогите перевести прогу с паскаля в С++

Задача: реализовать метод Тихоновна по решению некорректных задач.
пример тут: http://letitbit.net/download/fedbf2800813/-------.doc.html

сама прога на паскале:
Текст программы для реализации метода Тихонова на языке PASCAL

Uses CRT;
type
real=extended;

const
matrixA: array[1..3,1..3] of real = ((-19/20,1/5, 3/5),
(-1 ,0.1, 0.5),
(-0.01 ,0 ,1/200));
One: array [1..3,1..3] of real = ((1,0,0),
(0,1,0),
(0,0,1));
U:array[1..3] of real = (1,1,1.1);

var
i,j,k,q:byte;
A,At,A1,A2,Ar,One1:array[1..3,1..3] of real;
delta,Det,S,alpha:real;
B,Z,U1:array[1..3] of real;
f:text;

Procedure TransA;
begin
for i:=1 to 3 do
for j:=1 to 3 do
At[i,j]:=A[j,i]
end;

Function Koef(par1,par2:byte):real;
var
Sum:byte;
Tmp:real;
begin
Sum:=par1+par2;
Tmp:=1;
for k:=1 to sum do
Tmp:=Tmp*(-1);
Koef:=Tmp;
end;

Function AlAdd(par1,par2:byte):real;
type
element=record
value:real;
flag:boolean;
end;
var
BB:array[1..2,1..2] of real;
AA:array[1..3,1..3] of element;
k,v,w:byte;
N:array[1..4] of real;
P1:real;
begin
for v:=1 to 3 do
for w:=1 to 3 do begin
AA[v,w].value:=A2[v,w];
AA[v,w].flag:=true
end;
for v:=1 to 3 do AA[par1,v].flag:=false;
for v:=1 to 3 do AA[v,par2].flag:=false;
{ for v:=1 to 3 do begin
for w:=1 to 3 do write(AA[i,j].value:2:3,' ');
writeln
end; }
k:=1;
for v:=1 to 3 do
for w:=1 to 3 do
begin
if AA[v,w].flag then
begin
N[k]:=AA[v,w].value;
{ writeln(N[k]);}
k:=k+1
end;
end;
BB[1,1]:=N[1]; BB[1,2]:=N[2];
BB[2,1]:=N[3]; BB[2,2]:=N[4];
{ writeln('alg dop',par1,par2,' ',BB[1,1]*BB[2,2]-BB[1,2]*BB[2,1]);}
AlAdd:=BB[1,1]*BB[2,2]-BB[1,2]*BB[2,1];
end;

Function DetCount:real;
var
S1:real;
z:byte;
begin
S1:=0;
for z:=1 to 3 do S1:=S1+A2[1,z]*Koef(1,z)*AlAdd(1,z);
DetCount:=S1;
end;

Procedure RevMatr;
begin
for i:=1 to 3 do
for j:=1 to 3 do
Ar[j,i]:=Koef(i,j)*AlAdd(i,j)/DetCount;
{ for i:=1 to 3 do begin
for j:=1 to 3 do write(Ar[i,j],' ');
writeln;
end;}
end;

Function AllRight:boolean;
begin
writeln(f,'*Ґўп§Є Ї® 1-¬г н«-вг',(abs(U[1]-U1[1])));
writeln(f,'*Ґўп§Є Ї® 2-¬г н«-вг',(abs(U[2]-U1[2])));
writeln(f,'*Ґўп§Є Ї® 3-¬г н«-вг',(abs(U[3]-U1[3])));
writeln(F);
if (abs(U[1]-U1[1])<0.001) and (abs(U[2]-U1[2])<0.001) and
(abs(U[3]-U1[3])<0.001) then AllRight:=true
else AllRight:=false
end;

Function Pow(par1:real;par2:byte):real;
var
S2:real;
z:byte;
begin
S2:=1;
if par2=0 then begin
Pow:=1;
exit
end
else
for z:=1 to par2 do S2:=S2*par1;
Pow:=S2;
end;

BEGIN
clrscr;
Assign(f,'c:\tikh.txt');
Rewrite(f);
for i:=1 to 3 do
for j:=1 to 3 do
A[i,j]:=matrixA[i,j];
TransA;
Det:=0.000125;
{----------------------------}
for i:=1 to 3 do begin
S:=0;
for j:=1 to 3 do begin
S:=S+At[i,j]*U[j];
B[i]:=S
end;
end;
{----------------------------}
for i:=1 to 3 do
for j:=1 to 3 do
begin
S:=0;
for k:=1 to 3 do begin
S:=S+At[i,k]*A[k,j];
A1[i,j]:=S
end
end;
{-----------------------------}
q:=1;
repeat
alpha:=q/pow(4,q);
for i:=1 to 3 do
for j:=1 to 3 do
One1[i,j]:=One[i,j]*alpha;
for i:=1 to 3 do
for j:=1 to 3 do
A2[i,j]:=One1[i,j]+A1[i,j];
RevMatr;
{------------------------------}
for i:=1 to 3 do begin
S:=0;
for j:=1 to 3 do begin
S:=S+Ar[i,j]*B[j];
Z[i]:=S
end;
end;
for i:=1 to 3 do begin
S:=0;
for j:=1 to 3 do begin
S:=S+A[i,j]*Z[j];
U1[i]:=S
end
end;
q:=q+1;
until AllRight;
{------------------------------}
clrscr;
writeln('ЏаЁЎ«Ё¦Ґ*ЁҐ Є *®а¬ «м*®¬г аҐиҐ*Ёо');
for i:=1 to 3 do writeln('Z(',i,')=',z[i]);
writeln;
writeln('‡* зҐ*ЁҐ Їа ў®© з бвЁ ЇаЁ Ї®¤бв *®ўЄҐ ЇаЁЎ«. аҐиҐ*Ёп');
for i:=1 to 3 do writeln('U1(',i,')=',U1[i]);
writeln;
writeln('‡* зҐ*ЁҐ Ї а ¬Ґва ॣг«паЁ§ жЁЁ:');
writeln(alpha);
Close(f);
readln;
END.
Помогите за вознаграждение плиз.
 

  #2  
Старый 23.03.2009, 18:41
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

а что не понятно? О_о

Код:
     matrixA: array[1..3,1..3] of real =
                    ( (-19/20,1/5, 3/5),
                      (-1 ,0.1, 0.5),
                      (-0.01 ,0 ,1/200)
                    );
     One: array [1..3,1..3] of real = (
                      (1,0,0),
                      (0,1,0),
                      (0,0,1)
                    );
     U:array[1..3] of real = (1,1,1.1);
на:
Код:
double matrixA[3][3] =
	{{-19/20,1/5, 3/5},
	 {-1 ,0.1, 0.5},
	 {-0.01 ,0 ,1/200}
        };
double One[3][3] =
        {{1,0,0},
         {0,1,0},
         {0,0,1}
        };
double U[3] ={1,1,1.1};

Код:
var
i,j,k,q:byte;
A,At,A1,A2,Ar,One1:array[1..3,1..3] of real;
delta,Det,S,alpha:real;
B,Z,U1:array[1..3] of real;
f:text;
Ha:
Код:
BYTE i,j,k,q;
DOUBLE A[3][3],At[3][3],A1[3][3],A2[3][3],Ar[3][3],One1[3][3]
DOUBLE delta,Det,S,alpha
DOUBLE B[3],Z[3],U1[3]
FILE *f
 

  #3  
Старый 23.03.2009, 18:48
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

вот структура программи на с++ и пример:
Код:
#include <iostream>
#include <cstring>
using namespace std;
int func(double param1)
{
  int i = 55;
  return i;
}
void main(){
 cout<< func(5);
}
Примери:

Код:
Procedure TransA;
begin
for i:=1 to 3 do
for j:=1 to 3 do
At[i,j]:=A[j,i]
end;
Ha:
Код:
void TransA(){
  for(i=1;i<3;i++){
     for(j:=1;j<3;j++){
        At[i][j] = A[j][i];
     }
  }
}


Код:
Function Koef(par1,par2:byte):real;
var
Sum:byte;
Tmp:real;
begin
Sum:=par1+par2;
Tmp:=1;
for k:=1 to sum do
Tmp:=Tmp*(-1);
Koef:=Tmp;
end;
На:
Код:
double Koef(BYTE par1,par2){
       byte Sum;
       double Tmp;
       Sum = par1 + par2;
       Tmp = 1;
       for(k=1;k<Sum;k++){
           Tmp = Tmp * (-1);
       }
       return Tmp;
}
Дальше заменяй сам)
Ничего сложного нету
 

  #4  
Старый 23.03.2009, 19:28
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
Провел на форуме:
14678

Репутация: 0
По умолчанию

спс))
 

  #5  
Старый 23.03.2009, 19:51
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

a где вознаграждение?


main:
Код:
clrscr;
for i:=1 to 3 do writeln('Z(',i,')=',z[i]);
writeln;
for i:=1 to 3 do writeln('U1(',i,')=',U1[i]);
writeln;
writeln(alpha);
Close(f);
readln;
END.
Ha:
Код:
void main(void){
     system("CLS");
     for(int i=1;i<3;i++){
        stdout>>"Z[",i,"] = ",Z[i];
     }
     for(int i=1;i<3;i++){
        stdout>>"U1[",i,"] = ",U1[i];
     }
     stdout>> alpha;
     fclose(f);
}

Робота с файлами:
Код:
FILE *f;
Открытие:
<поток> = fopen("путь к файлу", "тип")
r - открыть для чтения;
w - для записи;
w+ - для чтения и записи;

Ввод и вывод данных в файл
getc();
putch();

соответсвенно посимвольно....
fgets();
fputs();

соответсвенно построчно
getw();
putw();
 

  #6  
Старый 24.03.2009, 16:32
WeReWoLf777
Новичок
Регистрация: 23.03.2009
Сообщений: 11
Провел на форуме:
14678

Репутация: 0
По умолчанию

WMZ кошелек скажи вознагрожу)
 

  #7  
Старый 24.03.2009, 21:55
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Цитата:
WMZ кошелек скажи вознагрожу)
да ну ты что) мне приятно помогать)

тему close
 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите сделать прогу такой-которой он была alex777 С/С++, C#, Delphi, .NET, Asm 5 11.01.2009 20:09
помогите НАЙТИ ПРОГУ Nodexxx ICQ 13 11.11.2006 23:53
Помогите найти прогу bike Разное - Покупка, продажа, обмен 6 24.04.2006 18:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ