Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 22:40   #1
Pian1st
 
Регистрация: 17.04.2009
Сообщений: 2
По умолчанию Компьютерное моделирование

не могу переделать под свой вариант, не пойму че надо исправить
Код:
Uses Crt, Graph;
Type
  TC=array[1..6] of real;
  TT=array[1..6] of string;
  TMenu=array[1..5] of String;
  Const g=9.8; m=30;ro=10;
Var
  c:TC;tf:TT;
  P,i,j:integer;
  menuit:TMenu;
  a1,a2,a3,a4,a,b1,b2,b3,b4,b,t,xk,yk,h,k,ste,ft,s0:Real;
  x,y,dx,dy,q,x1,x2,y1,y2,gd,gm,sht:Integer;
  st,sh,sv:string;
Function f1(t,x,y:Real):Real;
Begin;
  f1:=y
End;
Function f2(t,x,y:Real):Real;
Begin;
  f2:=(m*g-k*y+ft)/m
End;
Function sx(x,x1,x2:Real):Integer;
Begin;
  sx:=trunc(640*(x-x1)/(x2-x1));
End;
Function sy(y,y1,y2:Real):Integer;
Begin;
  sy:=trunc(480*(y-y2)/(y1-y2));
End;
Function Menu(P:TMenu;x,y:Integer;ct,cf,cat,caf:Byte):Integer;{¬Ґ*о}
Var
    i,k:Integer;
    Key:Char;
Begin
  for i:=1 to 4 do begin
    GoToXY(x,y+i-1);write(P[i]);
  end;
  GoToXY(x,y);write(P[1]);
  i:=1;k:=1;
  key:=#0;
  Repeat
    if KeyPressed then
      Key:=ReadKey;
      if(Key=#080) then begin
      GOTOXY(x,y+i-1);write(P[i]);
      k:=k+1;
      If k>4 then k:=1;
            TextColor(cat);TextBackGround(caf);
      GoTOXY(x,y+k-1);write(P[k]);
      i:=k;
      key:=#0;
    end;
    If(Key=#072) then begin
      GOTOXY(x,y+i-1);write(P[i]);
      k:=k-1;
      If k<1 then k:=4;
      TextColor(cat);TextBackGround(caf);
      GoTOXY(x,y+k-1);write(P[k]);
      i:=k;
      key:=#0;
    end;
    Until Key=#13;
    Menu:=k;
End; 
BEGIN 
    c[1]:=1.11;  tf[1]:='¤ЁбЄ';
    c[2]:=1.33;  tf[2]:='Ї®«гбдҐа*1';
    c[3]:=0.55;  tf[3]:='Ї®«гбдҐа*2';
    c[4]:=0.4;   tf[4]:='и*а';
    c[5]:=0.045; tf[5]:='Є*Ї«п1';
    c[6]:=0.1;   tf[6]:='Є*Ї«п2';
ClrScr;
ClrScr;
        menuit[1]:='   ‚ў®¤ Ї*а*¬Ґва®ў   ';
    menuit[2]:=' ’*Ў«Ёж* १г«мв*в®ў ';
    menuit[3]:=' Џ®бв஥*ЁҐ Ја*дЁЄ®ў ';
    menuit[4]:='        ‚л室        ';
    sht:=0;
    Repeat
      P:=Menu(menuit,2,3,15,Blue,Yellow,Green);
     case P of
       1:begin
           TextBackGround(Black);ClrScr;
                   GoToXY(3,3);Write('‚ўҐ¤ЁвҐяЈ«гЎЁ*г ў§алў* (¬)   ');ReadLn(s0);
           GoToXY(3,4);Write('‚ўҐ¤ЁвҐ бЁ«г впЈЁ (Ќ)  ');ReadLn(ft);
           GoToXY(4,5);Write('„«п ў®§ўа*в* ў ¬Ґ*о **¦¬ЁвҐ [Enter]');
           ReadLn;TextBackGround(Black);ClrScr;
         end;
       2: begin {Џа®б¬®ва в*Ў«Ёжл}
ClrScr;
       For j:=1 to 6 do
       Begin
          t:=0;xk:=0;yk:=0;h:=0.01;
          k:=2*c[j]*ro/2;
          Repeat
            a1:=f1(t,xk,yk);b1:=f2(t,xk,yk);
            a2:=f1(t+h/2,xk+a1*h/2,yk+b1*h/2);
            b2:=f2(t+h/2,xk+a1*h/2,yk+b1*h/2);
            a3:=f1(t+h/2,xk+a2*h/2,yk+b2*h/2);
            b3:=f2(t+h/2,xk+a2*h/2,yk+b2*h/2);
            a4:=f1(t+h,xk+a3*h,yk+b3*h);
            b4:=f2(t+h,xk+a3*h,yk+b3*h);
            a:=1/6*(a1+2*a2+2*a3+a4);
            b:=1/6*(b1+2*b2+2*b3+b4);
            sht:=sht+1;
            if sht=10 then sht:=0;
            t:=t+h;
            xk:=xk-a*h;
            yk:=yk+b*h;
            Until xk<-s0;
            ste:=ste+0.5;
         gotoxy(6,3); WriteLn('‚६пя(ᥪ)':16,' ѓ«гЎЁ** ў§алў* (¬)':16,' ”®а¬* ⥫* ');
         gotoxy(6,j+4); WriteLn(t-h:14:3,-(xk+a*h):14:3,tf[j]:16);
       end;
         write;
         Write('    „«п ў®§ўа*в* ў ¬Ґ*о **¦¬ЁвҐ [Enter]');
         ReadLn;
         ClrScr;
         end;
       3:begin
         For j:= 1 to 6 do
         Begin
           t:=0;xk:=0;yk:=0;h:=0.01;
           k:=2*c[j]*ro/2;
           gd:=Detect; InitGraph(gd,gm,'C:\BP\BGI');
           t:=0;xk:=s0;yk:=0;h:=0.01;
           x1:=-1;x2:=60;y1:=-1;y2:=round(s0);
           Line(0,sy(0,y1,y2),640,sy(0,y1,y2));
           Line(sx(0,x1,x2),0,sx(0,x1,x2),480);
           x:=x1;dx:=1;dy:=100;y:=y1;
           Repeat
             Line(sx(x,x1,x2),sy(0,y1,y2)-5,sx(x,x1,x2),sy(0,y1,y2)+5);
             x:=x+dx;
           Until x>x2;
           Repeat
           Line(sx(0,x1,x2)-5,sy(y,y1,y2),sx(0,x1,x2)+5,sy(y,y1,y2));
           y:=y+dy;
           Until y>y2;
           OutTextXY(sx(0,x1,x2)+16,16,'S(t) (¬)');
           OutTextXY(640-40,sy(0,y1,y2)-16,'t (б)');
           OutTextXY(1,463,'0');
           Repeat
             PutPixel(sx(t,x1,x2),sy(xk,y1,y2),12);
             a1:=f1(t,xk,yk);b1:=f2(t,xk,yk);
             a2:=f1(t+h/2,xk+a1*h/2,yk+b1*h/2);
             b2:=f2(t+h/2,xk+a1*h/2,yk+b1*h/2);
             a3:=f1(t+h/2,xk+a2*h/2,yk+b2*h/2);
             b3:=f2(t+h/2,xk+a2*h/2,yk+b2*h/2);
             a4:=f1(t+h,xk+a3*h,yk+b3*h);
             b4:=f2(t+h,xk+a3*h,yk+b3*h);
             a:=1/6*(a1+2*a2+2*a3+a4);
             b:=1/6*(b1+2*b2+2*b3+b4);
             t:=t+h;xk:=xk-a*h;yk:=yk+b*h;
          Until xk<-s0;
          ReadLn;
          CloseGraph;
        end;
     end;
     end;
  Until P=4;
END.
Это код для варианта 15, а мне надо сделать 16 вариант.
Pian1st вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моделирование (маятник) alexmikt Общие вопросы C/C++ 0 21.04.2010 23:01
моделирование voron.kz Помощь студентам 0 15.12.2009 02:07
Задача на моделирование qaqa Microsoft Office Excel 8 20.11.2009 20:53
Компьютерное моделирование. Создание модели движения тел по определенной траектории. AnaVare Помощь студентам 7 18.03.2009 05:09