BigMac
Щас сижу в школе - на мыол кинуть не могу... Предыдущие несколько дней не мог зайти на форум - "URL не может быть доставлен..."
Вобщем лови сдесь... Компилятор - Borland C 3.1
Код:
# include <stdio.h>
# include <conio.h>
# include <math.h>
# define a1 0.3870986
# define exc1 0.2056306
# define a2 0.7233316
# define exc2 0.0067826
# define a3 1.0000000
# define exc3 0.0167180
# define a4 1.5236883
# define exc4 0.0933865
# define a5 5.2025610
# define exc5 0.0484658
# define a6 9.5547470
# define exc6 0.0556155
# define a7 19.2181400
# define exc7 0.0463232
# define a8 30.1095700
# define exc8 0.0090021
# define a9 39.7845900
# define exc9 0.2538700
# define epsx 0.000001
# define RAD 0.0174532925199433
# define pi 3.14159265358979324
int n, b, i;
float ee, M, E, k, t, a;
float sn(float x) {
return sin(x*RAD);
}
float cs(float x) {
return cos(x*RAD);
}
float tn(float x) {
return tan(x*RAD);
}
float atn(float x) {
return atan(x)/RAD;
}
//**************************************************************************
/*
float kepler (float E) {
dE=dB/(1-a*cos(E));
E=E-dE; /*Тоша. Эту функцию надо доделать и сунуть | *//*
dB=E-a*sin(E)-M; //
return //... //
} //
*/ //
//
//****************************************************************//********
//
void formyls (float *t, float *M, float *E, float *k) { //
float dE,dB,v,R,ht,Tp; //
Tp = sqrt(a*a*a); //
ht=Tp/n; //
*t=i*ht; //
*M=pi*2*pi**t/(Tp*180); //
*E=*M; //
dB=0.016718*sin(*E); //
if (fabs(dB)<epsx)
*E=*E; //
else { //
*k=1; //
while (fabs(dB)>epsx) { //
dE=dB/(1-ee*cos(*E));// <<<<< вот сюда.......................
*E=*E-dE;
dB=*E-ee*sin(*E)-*M;
*k=*k+1;
}
*E=*E;
}
R=a*(1-*E*cos(*E));
v=2*atn(sqrt((1+ee)/(1-ee))*tn(*E/2));
}
void main () {
clrscr();
printf("Введите количество точек дробления оборота: ");
scanf("%d", &n);
printf("Введите планету: \n");
printf(" Меркурий-> 1 Венера-> 2\n");
printf(" Земля-> 3 Марс-> 4\n");
printf(" Юпитер-> 5 Сатурн-> 6\n");
printf(" Уран-> 7 Нептун-> 8\n");
printf(" Плутон-> 9\n");
scanf("%d", &b);
if (b==1) {
ee = exc1;
a = a1;
}
if (b==2) {
ee = exc2;
a = a2;
}
if (b==3) {
ee = exc3;
a = a3;
}
if (b==4) {
ee = exc4;
a = a4;
}
if (b==5) {
ee = exc5;
a = a5;
}
if (b==6) {
ee = exc6;
a = a6;
}
if (b==7) {
ee = exc7;
a = a7;
}
if (b==8) {
ee = exc8;
a = a8;
}
if (b==9) {
ee = exc9;
a = a9;
}
for (i=0;i<=n;i++) {
formyls(&t,&M,&E,&k);
printf("i= %d",i);
printf(" t= %f",t);
printf(" M= %f",M);
printf(" E= %f",E);
printf(" k= %f",k);
printf(" epsx= %f",epsx);
}
getch();
}
As Is (я не несу никакой ответственности за последствия получения тобой этой програмки
)
Старался переводить близко к тексту. Вроде даже работает, но там есть куча тупых бессмысленных операторов типа "E := E;" ("*E=*E;"
.