Desafio 4

   Iremos aproveitar algumas ideias do desafio 2, quando desenhamos um círculo:

MegaLogo

 linhapoligonal [360 [2.1 1]
Desenhando SuperLogo
FMSLogo

 elipse 120 120
Imagine

t1'desenhar parapontos [repetir 360 [pf 2.1 gd 1]]
xLogo

círculo 120

   Também precisamos de algum procedimento em que o usuário entre com o valor do numerador (:numr) e o valor para o denominador (:denr).
MegaLogo
 atr "numr pri ( lêcaixa [Qual o numerador?][Fração] )
 atr "denr pri ( lêcaixa [Qual o denominador?][Fração] )
Solicitando
SuperLogo & FMSLogo
 atr "numr primeiro caixadequestão [Fração][Qual o numerador?]
 atr "denr primeiro caixadequestão [Fração][Qual o denominador?]
Imagine
 atrlocal "numr primeiro ( lercaixa [Qual o numerador?][Fração] )
  atrlocal "denr primeiro ( lercaixa [Qual o denominador?][Fração] )
MicroMundos
 pergunte [Qual o numerador?]
atr "numrresposta
pergunte [Qual o denominador?]
atr "denrresposta
xLogo
leia [Qual o numerador?] "numr
atr "numr pri :numr
leia [Qual o denominador?] "denr
atr "denr pri :denr

   Depois disso, o círculo será dividido em fatias de acordo com o valor do denominador (:denr) e pintadas de acordo com o valor do numerador (:numr).
MegaLogo

 repita :denr[mudexy 0 50 gd 360 / :denr pf 120]
 repita :numr[mudexy 0 50 pf 100 pinte gd 360 / :denr]
SuperLogo & FMSLogo

 repita :denr[mudexy 0 50 pd 360 / :denr pf 120]
 repita :numr[mudexy 0 50 pf 100 pinte pd 360 / :denr]
Imagine

 repetir :denr[mudecoorxy 0 50 gd 360 / :denr pf 120]
 repetir :numr[mudecoorxy 0 50 pf 100 preencher gd 360 / :denr]
xLogo
repita :denr [mudexy 0 50 
pd 360 / :denr pf 120]
repita :numr [mudexy 0
50 pf 100 ul pinte un
pd 360/:denr]
MicroMundos

repita :denr[mudepos [0 0] pd 360 / :denr pf 120]
repita :numr [mudepos [0 0] pf 100 pinte pd 360 / :denr]

   Com os devidos ajustes, o procedimento fica assim:

MegaLogo
para startup
 novo dt mcl 0 mcp 2
 un mudexy -120 50 ul
fazlocal "numr pri ( lêcaixa [Qual o
numerador?][Fração] )
fazlocal "denr pri ( lêcaixa [Qual o
denominador?][Fração] )
linhapoligonal [360 [2.1 1]]
un mudexy 0 50 ul
repita :denr [mudexy 0 50 gd 360 / :denr pf 120]
un mudexy 0 50 gd 180 / :denr
repita :numr [mudexy 0 50 pf 100 pinte gd 360 / :denr]
mudexy -150 160 rotule ( lista :numr "/ :denr )
fim
SuperLogo & FMSLogo
aprenda vai
 tat mudecl 0 mudecp "verde
un mudexy 0 50 ul
 elipse 120 120 pf 120
 atr "numr pri caixadequestão
[Fração][Qual o numerador?]
 atr "denr pri caixadequestão
[Fração][Qual o denominador?]
 repita :denr [mudexy 0 50 pd 360/:denr pf 120]
 un paracentro pd 180/:denr
repita :numr [mudexy 0 50 pf 100 pinte pd 360/:denr]
mudexy -150 160 rotule (lista :numr "/ :denr)
fim
Imagine
aprender vai
 mudarcoorxy 0 0 mudarrumo 0 limpar ot mudarcl 0 mudarcp 2
 un mudarcoorxy -120 50 ul
atrlocal "numr primeiro ( lercaixa [Qual o
numerador?][Fração] )
 atrlocal "denr primeiro ( lercaixa [Qual o
denominador?][Fração] )
limpar t1'polígono [repetir 360 [pf 2.1 gd 1]]
un mudarcoorxy 0 50 ul
repetir :denr [mudarcoorxy 0 50 gd 360 / :denr pf 120]
un mudarcoorxy 0 50 gd 180 / :denr
repetir :numr [mudarcoorxy 0 50 pf 100 preencher gd 360 /
:denr]
mudarcoorxy -150 160 rotular ( lista :numr "/ :denr )
fim
MicroMundos

aprenda vai
ld at mudecl 9
un mudepos [-120 0] ul
círculo 120
pergunte [Qual o numerador?]
atr "numr resposta
pergunte [Qual o denominador?]
atr "denr resposta
un posinicial ul
repita :denr [mudepos [0 0] pd 360 / :denr pf 120]
un posinicial pd 180 / :denr mudecl 67
repita :numr [mudepos [0 0] pf 100 pinte pd 360 / :denr]
mo (lista :numr "/ :denr)
fim

aprenda círculo :r
repita 360 [pf pi * :r / 180 pd 1]
fim
xLogo

aprenda vai
ld dt mudecl 0
un mudexy 0 50 ul
 círculo 120 pf 120
leia [Qual o numerador?] "numr
atr "numr pri :numr
leia [Qual o denominador?] "denr
atr "denr pri :denr
repita :denr [mudexy 0 50 pd 360/:denr pf 120]
 un centro pd 180/:denr mudecl verde
repita :numr [mudexy 0 50 pf 100 ul pinte un pd 360/:denr]
mudecl 0 mudedç 0 mudexy -150 160
rotule ji :numr (lista "/ :denr)
fim

* * * * *