Помощь - Поиск - Пользователи - Календарь
Полная версия: Компьютерное моделирование
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Pian1st
не могу переделать под свой вариант, не пойму че надо исправить

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]:='Ї(r)«гбдҐа*1';
    c[3]:=0.55;  tf[3]:='Ї(r)«гбдҐа*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]:='   ‚ў(r)¤ Ї*а*¬Ґва(r)ў   ';
    menuit[2]:=' ’*Ў«Ёж* १г«мв*в(r)ў ';
    menuit[3]:=' Џ(r)бва(r)Ґ*ЁҐ Ја*дЁЄ(r)ў ';
    menuit[4]:='        ‚ле(r)¤        ';
    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('„«п ў(r)§ўа*в* ў ¬Ґ*о **¦¬ЁвҐ [Enter]');
           ReadLn;TextBackGround(Black);ClrScr;
         end;
       2: begin {Џа(r)б¬(r)ва в*Ў«Ёжл}
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,' ”(r)а¬* ⥫* ');
         gotoxy(6,j+4); WriteLn(t-h:14:3,-(xk+a*h):14:3,tf[j]:16);
       end;
         write;
         Write('    „«п ў(r)§ўа*в* ў ¬Ґ*о **¦¬ЁвҐ [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 вариант.
Нажмите для просмотра прикрепленного файла
Unconnected
И с каким увеличением очки надо одевать, чтобы прочесть эти варианты?
Lapp
Цитата(Pian1st @ 6.06.2010 22:55) *
не пойму че надо исправить
Исправить надо интерфейс между креслом и клавиатурой.

Выучи Паскаль и приходи. Тут на богадельня для лентяев.. Будешь делать сам - поможем обязательно. Переделывать чужие программы, чтоб ты спихнул задание - уж лучше жабу в рот..
Успехов тебе.
Pian1st
Unconnected нажми на картинку она увеличиться
Lapp, я же не говорю напишите за меня прогу, сделайте огромную работу лентяю и т.д., а всего лишь исправить пару строк кода, если это чересчур наглая просьба и здесь не допускается такое, ок! больше вопросов не имею закройте эту тему, пожалуйста
Lapp
Цитата(Pian1st @ 7.06.2010 8:23) *
я же не говорю напишите за меня прогу, сделайте огромную работу лентяю и т.д., а всего лишь исправить пару строк кода, если это чересчур наглая просьба и здесь не допускается такое, ок! больше вопросов не имею закройте эту тему, пожалуйста

Дело не в объеме работы, тут много раз помогали в немалом размере - можешь сам найти много подтверждений.
И если бы вопрос был поставлен помочь сделать задание, реакция была бы другой. Если в вопросе звучит хоть малейшее проявление желания хоть чему-то научиться - тут всегда помогают. Но ты поставил вопрос четко: переделать чужую прогу и свалить задание.

Помоги себе сам: перестань врать и лениться.
Pian1st
если человек хочет в этом помочь то какая ему разница заинтересован я в этом(в паскале, в этой задаче) или нет ?
или просто хочу сдать и мне все равно.
Lapp
Цитата(Pian1st @ 7.06.2010 14:02) *
если человек хочет в этом помочь то какая ему разница заинтересован я в этом(в паскале, в этой задаче) или нет ?
или просто хочу сдать и мне все равно.
Разница есть, и немалая )). Если ты идешь по улице и видишь человека, лезущего в окно - я полагаю (или надеюсь) ты все же сначала постараешься понять, прежде, чем подсобить - он просто забыл ключи, или он вор. Но с точки зрения общей демагогии твой довод очень неплох, признаю )).

Я же не закрыл тему. Кто захочет "помочь" - ответит. Правда, с моей точки зрения это скорее вред, чем помощь - но это всего лишь мое мнение..
Pian1st
закройте тему пжлста
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.