Показать сообщение отдельно
Старый 21.10.2012, 20:46   #21 (permalink)
Гульназ.М.
Member
 
Регистрация: 01.02.2012
Сообщений: 75
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Код:
uses crt,graph;
var xc,yc,x,y,d1,d2,r1,r2,d:integer;
    k:char;
procedure Fig(x,y,c:integer);
begin
setcolor(c);
r1:=10;r2:=20;d1:=r2+r1;
d2:=r2+2*r1;
circle(x,y,r2);
circle(x-r2-r1,y,r1);
circle(x,y-r2-r1,r1);
circle(x+r2+r1,y,r1);
circle(x,y+r2+r1,r1);
rectangle(x-d1,y-d1,x+d1,y+d1);
rectangle(x-d2,y-d2,x+d2,y+d2);
line(x-d2,y+d2,x+d2,y-d2);
line(x-d2,y-d2,x+d2,y+d2);
end;
begin
initgraph(xc,yc,'');
xc:=getmaxX div 2;
yc:=getmaxY div 2;
outtextXY(xc-80,20,'Upravlenie - Strelki');
outtextXY(xc-50,40,'Exit - Esc');
x:=xc;y:=yc;
Fig(x,y,12);
repeat
if keypressed then
  begin
    k:=readkey;
    if k=#80 then
      begin
        delay(100);
        Fig(x,y,0);
        if y>getmaxY-d2-10 then d:=0
        else d:=10;
        y:=y+d;
        Fig(x,y,12);
       end;
    if k=#72 then
      begin
        delay(100);
        Fig(x,y,0);
        if y<2*d2+10 then d:=0
        else d:=10;
        y:=y-d;
        Fig(x,y,12);
      end;
    if k=#77 then
      begin
        delay(100);
        Fig(x,y,0);
        if x>getmaxX-d2-10 then d:=0
        else d:=10;
        x:=x+d;
        Fig(x,y,12);
       end;
    if k=#75 then
      begin
        delay(100);
        Fig(x,y,0);
        if x<d2+10 then d:=0
        else d:=10;
        x:=x-d;
        Fig(x,y,12);
      end;
    if k=#27 then exit;
  end;
until k=#27;
end.
а эта как вам?правилна ли?почему то ошибка выходит,про деление на ноль.-Error 200: by zero
Гульназ.М. вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070