Pomoc w zadaniu z Pascala

0

Proszę o pomoc w tym zadaniu:
Napisz program rysujący na ekranie monitora n okręgów o promieniu r i pozycji środka okręgu (x, y). Program powinien poprosić użytkownika o wprowadzenie liczby okręgów n oraz dla każdego z okręgów wylosować r, x, y, gdzie 0<= x< 640, 0<= y< 480, 0<= r<100. Wskazówka: Do losowania należy użyć funkcji random ().
a) okręgi nie powinny wychodzić poza obieg monitora
b) po naciśnięciu klawisza program oblicza promienie okręgów

Próbowałem to ugryźć, mam 3 fragmenty i chciałbym to zgodnie z treścią zadania połączyć w całość.

TO Okręgi :n
{czynności wstępne}
MAKE ?Trójki [ ]
MAKE ?Licznik :n
CS HT
{właściwy algorytm}
REPEAT :n [DorysujOkrąg]
{czynności końcowe}
SETCURSOR [0 18]
TYPE [Liczba narysowanych okręgów:] TYPE :n PR [.]
END

TO DorysujOkrąg
MAKE ?Trzy LosujTrzy :Trójki
MAKE ?r1 LAST :Trzy
Hop (FIRST :Trzy) - :r1 (FIRST BF :Trzy)
Okrąg :r1
MAKE ?Licznik :Licznik - 1
CT
SETCURSOR [0 17]
TYPE [LOSOWE OKRĘGI . ]
IF :Licznik > 0
[TYPE ?Jeszcze TYPE CHAR 32 TYPE :Licznik PR [.]]
MAKE ?Trójki LPUT :Trzy :Trójki
PU HOME PD
END

TO LosujTrzy :ListaTrójek
MAKE ?L3 SE (0 + INT RANDOM 640) (0 + INT RANDOM 480)
MAKE ?L3 SE :L3 (0 + INT RANDOM 100)
IF Sprawdź :ListaTrójek :L3 [OP :L3]
OP LosujTrzy :ListaTrójek
END

0
program okregN;
{program rysuje N okregow, ktorych wspolrzedne}
{xn,yn,rn wybrane sa losowo}

uses Graph,Crt;
var   sterownik,tryb,k,xn,yn,rn,n  :Integer;

procedure tekst;
begin
 TextMode(CO80);
 TextColor(Red);
 TextBackground(White);
 GotoXY(28,3);
 Write('PROGRAM RYSUJE n OKREGOW');
 GotoXY(20,6);
 Write('o parametrach xn,yn,rn wybranych losowo');
 GotoXY(20,8);
 Writeln('podaj ile okregow n');
 Readln(n);
end;

procedure egraf;
begin
{inicjacja trybu graficznego}
sterownik:=Detect;
InitGraph(sterownik,tryb,'C:\pascal\TP\BGI');{sciezka do BGI-podaj swoja}
SetViewPort(0,0,639,479,ClipOn);
ClearViewPort;
SetBkColor(White);
end;

procedure wybieranie;
begin
{wybieranie losowo xn,yn,rn}
Randomize;
  for k:=1 to n do
  begin
   xn:=Random(640);
   yn:=Random(480);
   rn:=Random(100);
   if ((xn>=rn) and (xn<=(639-rn))) and ((yn>=rn) and (yn<=(479-rn))) then
    begin
     if (k>=1) and (k<=14) then
      SetColor(k)
     else SetColor(Red);
      Circle(xn,yn,rn);
     end;
     
  end;
  OutTextXY(5,470,'tylko te spelnialy warunki');
end;
{program podstawowy}
begin
 tekst;
 egraf;
 wybieranie;
 ReadLn;
 CloseGraph;
end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1