Люди........нид срочный хелп....Есть прога на Паскале.. до завтра надо
сдать на СИ!!!!!!!!! Кто может, поможите!!!!! Плиз......... PROGRAM planpo; USES Crt; CONST a1= 0.3870986; exc1=0.2056306; a2= 0.7233316; exc2=0.0067826; a3= 1.0000000; exc3=0.0167180; a4= 1.5236883; exc4=0.0933865; a5= 5.2025610; exc5=0.0484658; a6= 9.5547470; exc6=0.0556155; a7=19.2181400; exc7=0.0463232; a8=30.1095700; exc8=0.0090021; a9=39.7845900; exc9=0.2538700; epsx=0.000001; VAR ee,M,E,k,t,a:real; i,b,n:integer; (*--------------------------------------------------------------------------*) (* CS: Косинус-функция (градусы) *) FUNCTION CS(X: REAL): REAL; CONST RAD=0.0174532925199433; BEGIN CS:=COS(X*RAD) END; (*--------------------------------------------------------------------------*) (*TN: тангенс-функция (градусы)*) FUNCTION TN(X: REAL): REAL; CONST RAD=0.0174532925199433; VAR XX: REAL; BEGIN XX:=X*RAD; TN:=SIN(XX)/COS(XX); END; (*--------------------------------------------------------------------------*) (* ATN: Арктангенс-функция (градусы)*) FUNCTION ATN(X: REAL): REAL; CONST RAD=0.0174532925199433; BEGIN ATN:=ARCTAN(X)/RAD END; (*--------------------------------------------------------------------------*) { function kepler(E:real):real; begin dE:=dB/(1-a*Cos(E)); E:=E-dE; (*Тоша. Эту функцию надо доделать и сунуть | *) dB:=E-a*Sin(E)-M; | kepler:= | end; | } (*-------------------------------------------------------------------|------*) Procedure formyls(var t,M,E,k:real); { | } Var { | } dE,dB,v,R,ht,Tp:real; { | } Begin { | } 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 ABS(dB)<epsx then { | } E:=E { | } else { | } begin { | } k:=1; { | } while ABS(dB)>epsx do { | } begin { | } dE:=dB/(1-ee*Cos(E)); {-----------------сюда----------------| } E:=E-dE; dB:=E-ee*Sin(E)-M; k:=k+1; end; E:=E; end; R:=a*(1-e*Cos(E)); v:=2*ATn(Sqrt((1+ee)/(1-ee))*Tn(E/2)); End; (*--------------------------------------------------------------------------*) BEGIN ClrScr; WriteLn('Введите количество точек дробления периода оборота: '); ReadLn(n); WriteLn('Введите планету: '); WriteLn(' Меркурий-> 1 Венера-> 2'); WriteLn(' Земля-> 3 Марс-> 4'); WriteLn(' Юпитер-> 5 Сатурн-> 6'); WriteLn(' Уран-> 7 Нептун-> 8'); WriteLn(' Плутон-> 9'); ReadLn(b); if b=1 then begin ee:=exc1; a:=a1; end; if b=2 then begin ee:=exc2; a:=a2; end; if b=3 then begin ee:=exc3; a:=a3; end; if b=4 then begin ee:=exc4; a:=a4; end; if b=5 then begin ee:=exc5; a:=a5; end; if b=6 then begin ee:=exc6; a:=a6; end; if b=7 then begin ee:=exc7; a:=a7; end; if b=8 then begin ee:=exc8; a:=a8; end; if b=9 then begin ee:=exc9; a:=a9; end; for i:=0 to n do begin formyls(t,M,E,k); Write('i= ',i); Write(' t= ',t:10:6); Write(' M= ',M:10:6); Write(' E= ',E:10:6); Write(' k= ',k:10:6); WriteLn(' epsx= ',epsx:8:6); end; ReadLn; END. |
BigMac
Вот, код. Абсолютно непроверенный: Код:
#include <stdio.h> Всё, вплоть до "мельчайшей отвратительной детали"(ц)РЛА оставлено как есть... Даже дурацкие операторы вроде E:=E; зы в следующий раз поставлю замечание! (мысленно:) ) (Отредактировал(а) ivank - 20:14 24-12-2001) |
В некоторых местах не стоят точки с запятой, сам расставь...
|
ivank
Огромное спасибо...... я посмотрю и исправлю глюки...... Я перед тобой в долгу |
All
Ну вот, опоздал :( Я по этому случаю Си начал учить... Уже кстати написал свой вариант проги :) |
noname00.pas
После C сразу учи его же с плюсамь -- гораздо полезней... А лучше сразу C++... |
Это я сказал, просто глюк какой-то произошол :(
|
ivank
Ну так у меня книжка называется "C/C++ вводный курс". А ещё у меня по умолчанию компилится в C++, я удивился, когда переключив в Си я получил еррор типа "Declaration is not allowed here" -:) |
noname00.pas
О, кинь мне на мыло, плизззз, потому что это че-то глючит...... пытаюсь исправить, но пока не получается.......... Кинь на мыло, ок?? или тут повесь, ок??? |
BigMac
Щас сижу в школе - на мыол кинуть не могу... Предыдущие несколько дней не мог зайти на форум - "URL не может быть доставлен..." Вобщем лови сдесь... Компилятор - Borland C 3.1 Код:
# include <stdio.h> Старался переводить близко к тексту. Вроде даже работает, но там есть куча тупых бессмысленных операторов типа "E := E;" ("*E=*E;"). |
noname00.pas
Я знаю.... я уже прогу всю исправил в Универе....... Но все равно спасибо |
BigMac
Ну и ладно... Зато я теперь вроде как на Си пишу... :biglaugh: |
BigMac
А чё хотя в моём варианте некомпилялось? noname00.pas На плюсы переходи :) |
ivank
Ты забыл в функции * поставить... а при вызове ее & и в одном scanf'е ошибка была noname00.pas Так держать |
ivank
И на плюсах тоже :) |
Время: 01:49. |
Время: 01:49.
© OSzone.net 2001-