to aaa ;UCBLogo ;Drugi zadatak sa zupanijskih natjecanja 1999. ; ;(pocetak sluzbenog tekst zadatka): ;Napisite proceduru LIK :n :m :d koja ce nacrtati mnogokut ;s :n stranica duljine :d te na svakoj stranici ;(s vanjske strane mnogokuta) mnogokut s :m stranica takodjer ;duljine :d ;(kraj sluzbenog tekst zadatka) ; ;Pozvati s: ;--------------- ;cs lik 4 3 100 ;--------------- ;NAPOMENA: ;U ovom se rijesenju koristimo rekurzijom kako bi izbjegli ;prekid koji bi nastao mogucim upisom prvog inputa 0 uz repeat i ;kontroliramo inpute. Znaci, ako se upise 1 ili 2 za mnogokut, ;to se ne crta jer ne postoji takav mnogokut. end
to lik :n :m :d if (and (numberp :n) (numberp :m) (numberp :d) (:n>2)) ~ [lik1 :n :m :d quotient 360 :n] end
to lik1 :n :m :d :kut if or (:n<1) (not (:d>0)) [stop] if :m>2 [mnogokut :m :d quotient 360 :m] fd :d rt :kut lik1 difference :n 1 :m :d :kut end
to mnogokut :kutova :duljina :kut if :kutova<1 [stop] fd :duljina lt :kut mnogokut difference :kutova 1 :duljina :kut end