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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2012, 14:24   #1
EndryHolms
Новичок
Джуниор
 
Регистрация: 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.
EndryHolms вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переадаптация кода из Visual Basic в Turbo Pascal КРИЖ Помощь студентам 2 22.01.2012 20:45
Перевод кода из Turbo Pascal на Fortran abit-2010 Помощь студентам 0 07.07.2011 02:39
Ошибка в переводе кода с Turbo Pascal на Fortran abit-2010 Помощь студентам 0 05.07.2011 22:55
Переделка кода hen Общие вопросы C/C++ 6 24.10.2009 17:58
Turbo Pascal Объяснение кода hills Паскаль, Turbo Pascal, PascalABC.NET 0 14.04.2009 16:18