C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Pascal ->Cbuilder
Guest
Отправлено: 26.01.2004, 17:29


Не зарегистрирован







Народ помогите перевести програмку с паскаля в билдер а то я уже совсем с кодом замучился.

[CODE]Procedure frenel (x:Real; VAR c,s:Real);

CONST e=0.001; {точность вычисления}

VAR h,r,s1,s2,t,w,x1 :Real
n :Integer

BEGIN
IF Abs(x) begin c:=0; s:=0; Exit END;

w=Pi*x*x/2; s1:=0; s2:=0; n:=0; r:=1;

if w<13.1 then

begin
repeat
s1=s1+r; n=n+1; r=r*w*(2*n-1)/(n*(2*n+1));
s2=s2+r; n=n+1; r=-r*w*(2*n-1)/(n*(2*n+1));
untill Abs(r/s2)
c:=s1*x; s:=s2*x;
end

ELSE
BEGIN
REPEAT

x1=0.5/w; s1=s1+r; n=n+2; r=r*x1*(n-1);
s2=s2+r; n=n+2; r=-r*x1*(n-1);

UNTILL (Abs®33);

if x<0 then h=-0.5 else h=0.5;

r:=Cos(w); t:=Sin(W); x1:=x*Pi;

c:=h+(t*s1-r*s2)/x1
s:=h-(t*s1+t*s2)/x1

end;
end;
CODE]
Pro
Отправлено: 27.01.2004, 12:20


Ученик-кочегар

Группа: Участник
Сообщений: 10



[CODE]
//---------------------------------------------------------------------------
#include
#include
#pragma hdrstop
void frenel (float x, float c, float s)
{
#define e=0.001;
float h,r,s1,s2,t,w,x1;
float Pi=3.14;
int n;
if (abs(x)) {c=0; s=0; exit(1); }
w=Pi*x*x/2; s1=0; s2=0; n=0; r=1;
if (w<13.1)
{
do
{
s1=s1+r; n=n+1; r=r*w*(2*n-1)/(n*(2*n+1));
s2=s2+r; n=n+1; r=-r*w*(2*n-1)/(n*(2*n+1));
}
while (abs(r/s2));
c=s1*x; s=s2*x;
}
else
{
do
{
x1=0.5/w; s1=s1+r; n=n+2; r=r*x1*(n-1);
s2=s2+r; n=n+2; r=-r*x1*(n-1);
}
while (abs®33);
if (x<0) h=-0.5;
else h=0.5;
r=cos(w); t=sin(w); x1=x*Pi;
c=h+(t*s1-r*s2)/x1;
s=h-(t*s1+t*s2)/x1;
}
}
//---------------------------------------------------------------------------
[CODE]
wink.gif
Guest
Отправлено: 27.01.2004, 17:22


Не зарегистрирован







Болшое СПАСИБА biggrin.gif biggrin.gif
Pro
Отправлено: 30.01.2004, 05:07


Ученик-кочегар

Группа: Участник
Сообщений: 10



Welcome wink.gif

Вернуться в Вопросы программирования в C++Builder