Новичок
Джуниор
Регистрация: 19.05.2012
Сообщений: 1
|
Переделка кода Turbo Pascal на Borlan С
Вот на Pascal написана табуляция, а нужно переделать на Borland С
Код:
program tabul;
uses crt,graph;
const m=25;
var
grdr,grm,pattern:integer;
b,x,y,dx:real;
xm,ym,xc,yc,xi,yi,xl,yl:integer;
s:string;
begin
clrscr;
DetectGraph(grdr,grm);
InitGraph(grdr,grm,'C:\TPASCAL7\BGI\egavga.bgi');
SetBkColor(0);
ClearDevice;
xm:=GetMaxX;
ym:=GetMaxY;
xc:=xm div 2;
yc:=ym div 2;
x:=-pi;
b:=pi;
dx:=0.2;
SetColor(8);
MoveTo(0,yc); LineTo(xm,yc);
MoveTo(xc,0); LineTo(xc,ym);
OutTextXY(325,10,'Y');
OutTextXY(10,10,'zoom 1:25');
OutTextXY(625,245,'x');
OutTextXY(310,245,'0');
OutTextXY(316,2,'^');
OutTextXY(632,236,'>');
moveto(250,300);
outtext('y=f(x)');
xl:=-1; yl:=-1;
while x<=b do
begin
if x<pi/2 then y:=sin(x)/cos(x)
else y:=sqr(cos(x));
xi:=xc+Round(x*m);
yi:=yc-Round(y*m);
SetColor(13);
if not((xl<0)or(yl<0)) then
begin
Moveto(xl,yl);
Lineto(xi,yi);
end;
xl:=xi;
yl:=yi;
x:=x+dx;
end;
readln;
end.
Вот меню на Pascal, тоже нужно на Борланд переделать:
program menu;
uses crt,graph;
procedure circle_;
begin
setcolor(15);
circle(300,300,100);
end;
procedure ClearDevice_;
begin
SetFIllStyle(1,0);
Bar(0,30,640,480);
end;
procedure Line_;
begin
setcolor(11);
Line(200,340,220,340);
end;
procedure Elips_;
begin
setcolor(9);
ellipse(200,200,50,40,25,50);
end;
procedure pidmenu;
const kr=5; rw=90; rh=10; rca=10; rcp=7; tpc=0;
var ch:char;
j,txtc,kk,bcc:byte;
xrn,yrn:array[1..kr] of integer;
nr:array[1..kr] of string;
grdr,grm:integer;
begin
DetectGraph(grdr,grm);
{ InitGraph(grdr,grm,'E:\files\tp\bin\Egavga.bgi'); }
{ ClearDevice; }
SetFillStyle(1,rcp);
bar(150,30,150+rw,30+rh);
xrn[1]:=150; yrn[1]:=30; nr[1]:='Љ®«®';
xrn[2]:=150; yrn[2]:=40; nr[2]:='ЋзЁбвЁвЁ ';
xrn[3]:=150; yrn[3]:=50; nr[3]:='‹i*iп';
xrn[4]:=150; yrn[4]:=60; nr[4]:='…«iЇб';
xrn[5]:=150; yrn[5]:=70; nr[5]:='‚Ё©вЁ';
kk:=1;
repeat
case ch of
#72: if kk>1 then kk:=kk-1 else kk:=kr;
#80: if kk<kr then kk:=kk+1 else kK:=1;
#27: Halt(0);
#13,#32:case kk of
1: circle_;
2: ClearDevice_;
3: Line_;
4: Elips_;
5:halt(0);
end;
end;
for j:=1 to kr do
begin
if J=kk then begin bcc:=rca end
else begin bcc:=rcp end;
setcolor(tpc);
SetFillStyle(1,bcc);
bar(xrn[j],yrn[j], xrn[j]+rw,yrn[j]+rh);
OutTextXY(xrn[j]+2,yrn[j],nr[j]);
end;
ch:=readkey;
until false;
end;
{MENU}
const km=4; w=60; h=10; tca=14; tcp=15; bca=14; bcp=2;
var
c:char;
k,i,tc,bc:byte;
xmn,ymn:array [1..km] of integer;
name:array [1..km] of String;
grdr,grm:integer;
begin
DetectGraph(grdr,grm);
InitGraph(grdr,grm,'C:\tp\bin\Egavga.bgi');
xmn[1]:=10; ymn[1]:=10; name[1]:='Љ®«®';
xmn[2]:=80; ymn[2]:=10; name[2]:='ЋзЁбвЄ*';
xmn[3]:=150; ymn[3]:=10; name[3]:='ЋЇжii';
xmn[4]:=220; ymn[4]:=10; name[4]:='‚Ёеi¤';
k:=1;
repeat
case c of
#72: ; {Up}
#75: if k>1 then k:=k-1 else k:=km; {Left}
#77: if k<km then k:=k+1 else k:=1; {Right}
#80: if k=3 then pidmenu; {Dn}
#13,#32: case k of
1:circle(300,300,100);
2:cleardevice;
3:pidmenu;
4:Halt(0);
end;
end;
for i:=1 to km do
begin
if i=k then
begin
bc:=bca;
tc:=tca;
end
else
begin
bc:=bcp;
tc:=tcp;
end;
SetColor(bc);
Rectangle(xmn[i],ymn[i],xmn[i]+w,ymn[i]+h);
SetColor(tc);
OutTextXY(xmn[i]+2,ymn[i]+2,name[i]);
end;
c:=readkey;
until false;
CloseGraph;
end.
И наконец движение по Эпицеклоиде на Борланд:
Program Pyx;
uses Crt,Graph;
const
a=4;
b=10;
h1=0.01;
h2=0.1;
pi=3.14;
m=10;
c1=14;
c2=2;
var
gd,gm:integer;
t1,x1,y1,t2,x2,y2:Real;
xm,ym,yc,xc,xi,yi,xj,yj:integer;
begin
gd:=DETECT;
InitGraph(gd,gm,'');
xm:=GetMaxX;
ym:=GetMaxY;
xc:=xm div 2;
yc:=ym div 2;
SetColor(8);
Line(xc,0,xc,ym);
Line(0,yc,xm,yc);
t2:=0;
repeat
t1:=0;
repeat
x1:=(a+b)*cos(t1)-a*cos((a+b)*t1/a);
y1:=(a+b)*sin(t1)-a*sin((a+b)*t1/a);
xi:=xc+Round(x1*m);
yi:=yc-Round(y1*m);
SetColor(c1);
PutPixel(xi,yi,c1);
t1:=t1+h1;
until (t1>=2*pi*a);
x2:=(a+b)*cos(t2)-a*cos((a+b)*t2/a);
y2:=(a+b)*sin(t2)-a*sin((a+b)*t2/a);
xj:=xc+Round(x2*m);
yj:=yc-Round(y2*m);
SetFillStyle(1,c2);
FillEllipse(xj,yj,10,10);
Delay(5000);
ClearDevice;
t2:=t2+h2;
until KeyPressed;
CloseGraph;
end.
Помогите пожалуйста, очень надо въехать что к чему)
Последний раз редактировалось Stilet; 19.05.2012 в 18:03.
|