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

Название темы: Нужно перевсти прогу
Показать сообщение отдельно

Студент


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

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


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;".

-------
*Origin: Lots of people talking, few of them - no... (2:5020/****.**)


Отправлено: 12:48, 29-12-2001 | #10

Название темы: Нужно перевсти прогу