Otóż robię program w którym: podaje się najpierw ilość kroków, a następnie program w pierwszym kroku rysuje kwadrat w 2 rysuje na środku zamalowany kwadrat, potem na środku każdej ćwiartki czyli 4 kwadraty potem następne 16, 32 itd. zależnie od liczby kroków. Program już zrobiłem nawet rysuje kwadraty poprawnie, problem w tym, że rysuje te kwadraty niezależnie od tego ile razy miały być one narysowane, z pętli wychodzi znacznie później. pierwsze 2 kroki rysuje bez problemu bo nie są zawarte w pętli przy 3 i więcej się gubi
oto treść programu
program kwadraty;
uses crt,graph;
var y,krok,j,poz,pio,m,i,f:integer;
sterownik, tryb:integer;
begin
clrscr;
j:=2;
i:=2;
writeln('wprowadź liczbę kroków');
readln(krok);
sterownik:=detect;
InitGraph(sterownik, tryb,'c:\tp\bgi');
repeat
setfillstyle(1,white);
setcolor(white);
if krok>0 then rectangle(1,1,getmaxy,getmaxy);
if krok>1 then bar((getmaxy div 5)*2,(getmaxy div 5)*2,(getmaxy div 5)*3,(getmaxy div 5)*3);
if krok>2 then
begin
repeat
f:=0;
poz:=0;
pio:=1;
y:=1;
i:=i+i;
repeat
f:=f+1;
if (f div 2)*2<f then
begin
m:=getmaxy div (i*2);
bar(f*m-(m div 5),y*m-(m div 5),f*m+(m div 5),y*m+(m div 5));
poz:=poz+1
end;
if poz=i then
begin
repeat y:=y+1 until (y div 2)*2<y;
pio:=pio+1;
poz:=0;
f:=0;
end;
until pio=i+1;
j:=j+1;
until j>=krok;
end;
until(keypressed);
end.