Кстати! вот к чему может привести лень програмера ...
volvoЦитата
...
inc(i, 18)
...
Было слегка лень подберать это число просто перебором... потому чучуть модернизировал прогу ...

Вводятся только 2 радиуса ... ну и так всё видно наверно ...
Код
uses
graph;
const
r1=100;
r2=200;
var
dr,lo,hi,x,y,i,step:integer;
r3,r4:real;
begin
dr:=detect;
getmoderange(dr,lo,hi);
initgraph(dr,hi,'e:\bp\bgi');
setcolor(12);
circle(getmaxx div 2, getmaxy div 2,r1);
circle(getmaxx div 2, getmaxy div 2,r2);
i:=0;
r3:=r1+(r2-r1)/2;
r4:=(r2-r1)/2;
step:=round(2*(180-360*arctan(2*sqrt(sqr(r3)-sqr(r4/2))/(r4))/pi));
while (360 mod step <> 0) do inc(step);
setcolor(10);
while i<=360 do begin
x:=round(r3*cos(i*pi/180)) + getmaxx div 2;
y:=round(r3*sin(i*pi/180)) + getmaxy div 2;
circle(x,y,round(r4));
inc(i,step);
end;
readln;
closegraph;
end.