Помощь - Поиск - Пользователи - Календарь
Полная версия: Компьютерное моделирование
Форум «Всё о Паскале» > 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]:='Ї®«гбдҐа*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 вариант.
Нажмите для просмотра прикрепленного файла
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
закройте тему пжлста
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.