9 Nisan 2010 Cuma

kuculen kareler

program kare;
uses dos,crt,graph,printer;
var gs, gm, i, j , p,L,K:integer;
DIZI : ARRAY[1..8] of integer;

PROCEDURE kareciz (X,Y,a: INTEGER );
BEGIN
DIZI[1] := X; {X1}
DIZI[2] := Y;
DIZI[3] := X;
DIZI[4] :=Y-a;
DIZI[5] := X +a;
DIZI[6] := Y-a;
DIZI[7] := X+ a;
DIZI[8] := Y;
FILLPOLY(4,DIZI);
END;

procedure nestedkare (X,Y,aYeni:integer);
var Xsol, Ysol, aYenisol: integer;

begin
aYenisol:= aYeni;
Xsol:= X;
Ysol:= Y;
repeat
kareciz (X,Y, aYeni);
kareciz (Xsol,Ysol, aYeni);
X:= X+ aYeni;
Y:= Y- aYeni;
aYenisol:= round (aYenisol* 2/3);
Xsol:= Xsol - aYenisol;
Ysol:= Ysol- aYeni;

aYeni := round (aYeni* 2/3);
until aYeni < 10;
end;

begin
gs:=detect;
initgraph(gs,gm, 'c:\tp\bgi');
if graphresult <>grok then halt(1);
cleardevice;

setfillstyle(4,5);
nestedkare (getmaxx div 2, getmaxy , 100);

readln;
closegraph;
end.

Hiç yorum yok:

Yorum Gönder