Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Построить группу окружностей

Автор: Sensitive 16.05.2007 20:08

Задача:
Построить группу окружностей с постоянно убывающим радиусом, центры которых равномерно смещаются по оси Y.
Вот всё на что меня хватило((

uses Graph;
var x,y:array[1..100] of integer;
r:array[1..100] of word;
i,n:byte;
begin
writeln('Vvedite kol-vo kil');
readln(n);
writeln('Vvedite radius 1-go kola');
readln(r[1]);
writeln('Vvedite koordinati tsentra 1-go kola');
readln(x[1],y[1]);
init; {процедура инициализации граф. режима}
for i:=2 to n do begin
x[i]:=x[1];
y[i]:=y[i-1]-30;
r[i]:=r[i-1]-5;
end;
for i:=1 to n do
circle(x[i],y[i],r[i]);
readln;
end.


Подскажите плиз, как такое реализовать, чтобы не вводить кол-во кругов... не могу понять что тогда нужно вместо n ставить в цикле...

Автор: volvo 16.05.2007 20:18

Вполне достаточно будет сделать:

uses Graph;
var
r, x, y: integer;
begin
writeln('Vvedite radius 1-go kola');
readln®;
writeln('Vvedite koordinati tsentra 1-go kola');
readln(x, y);

initgraph(gd, gm, '');

repeat
circle(x, y, r);
r := r - 5;
y := y - 30;
until (y <= 0) or (r <= 0);

readln;
closegraph;
end.
(т.е., прекратить отрисовку как только Y станет отрицательным, или R станет отрицательным...)

Автор: Sensitive 16.05.2007 20:46

Спасибо. Действительно так)