Számírás
A ciszterci szerzetesek egy érdekes számírást fejlesztettek ki a régmúltban, amellyel 1 és 9999 közötti egész számokat tudtak leírni. A számírás alapja egy függőleges vonal, erre a szárra írják a jobb felső sarokban az egyeseket, a bal fölsőbe a tízeseket, a jobb alsóba a százasokat, a bal alsóba az ezreseket. Ezt a táblázatot használták (forrás: Wikipédia):
A feladatodban legfeljebb négyjegyű számokat kell ezekkel a jelekkel kirajzolnod, amelyben bármelyik számjegy szerepelhet.
Írd meg a számírás :szám :h eljárást a :szám kiírására, ahol :h a jelekben szereplő hosszú függőleges szakasz hossza! A legrövidebb szakaszok hossza ennek harmada. Az egyes számjegyek ne érjenek össze, arányos távolságot használj közöttük, kb. az alábbi mintának megfelelőt:
számírás(1789)
Hivatalos megoldás (HTML)
A ciszterci szerzetesek egy érdekes számírást fejlesztettek ki a régmúltban, amellyel 1 és 9999 közötti egész számokat tudtak leírni. A számírás alapja egy függőleges vonal, erre a szárra írják a jobb felső sarokban az egyeseket, a bal fölsőbe a tízeseket, a jobb alsóba a százasokat, a bal alsóba az ezreseket. Ezt a táblázatot használták (forrás: Wikipédia):
A feladatodban legfeljebb négyjegyű számokat kell ezekkel a jelekkel kirajzolnod, amelyben bármelyik számjegy szerepelhet. Írd meg a számírás :szám :h eljárást a :szám kiírására, ahol :h a jelekben szereplő hosszú függőleges szakasz hossza! A legrövidebb szakaszok hossza ennek harmada. Az egyes számjegyek ne érjenek össze, arányos távolságot használj közöttük, kb. az alábbi mintának megfelelőt: számírás(1789) |
Egyes számjegyek két másikból eklőállíthatók, így nem kell mind külön megírni. A második paraméter értéke mindig 1, a tükörképeket ennek változtatásával kapjuk.
eljárás számírás :szám :h
tollvaszagság! 2
ha elemszám :szám=4 [előre :h számjegy első :szám (-:h) 90
hátra :h jobb :h/2]
ha elemszám :szám>2
[tollatfel előre :h tollatle számjegy utolsó utolsónélküli
utolsónélküli :szám (-:h) (-90)
tollatfel hátra :h tollatle
ha 0< utolsó utolsónélküli utolsónélküli :szám
[jobb :h/2+:h/3]]
ha elemszám :szám>1
[számjegy utolsó utolsónélküli :szám :h (-90)
ha 0<utolsó utolsónélküli :szám [jobb :h/2]]
számjegy utolsó :szám :h 90
vége
eljárás számjegy :sz :h :s
ha :sz=1 [egy :h :s]
ha :sz=2 [kettő :h :s]
ha :sz=3 [három :h :s*1.5]
ha :sz=4 [négy :h :s*0.5]
ha :sz=5 [egy :h :s négy :h :s*0.5]
ha :sz=6 [hat :h :s]
ha :sz=7 [egy :h :s hat :h :s]
ha :sz=8 [kettő :h :s hat :h :s]
ha :sz=9 [egy :h :s kettő :h :s hat :h :s]
vége
eljárás egy :h :s
előre :h jobbra :s előre :h/3 hátra :h/3 balra :s hátra :h
vége
eljárás kettő :h :s
előre :h hátra :h/3 jobbra :s előre :h/3 hátra :h/3 balra :s
hátra 2*:h/3
vége
eljárás három :h :s
előre :h jobbra :s előre :h/3*gyök(2) hátra :h/3*gyök(2)
balra :s hátra :h
vége
eljárás négy :h :s
előre :h hátra :h/3 jobbra :s előre :h/3*gyök(2)
hátra :h/3*gyök(2) balra :s hátra 2*:h/3
vége
eljárás hat :h :s
előre :h tollatfel jobbra :s előre :h/3 jobbra :s tollatle
előre :h/3 jobbra :s tollatfel előre :h/3 jobbra :s tollatle
hátra 2*:h/3
vége
eljárás jobb :h
tollatfel jobbra 90 előre :h balra 90 tollatle
vége
A. számírás 8 1 pont
B. számírás 306 2 pont
C. számírás 1345 3 pont
D. számírás 1749 3 pont
E. számírás 4005 2 pont
F. számírás 4567 3 pont
G. számírás 5432 3 pont
H. számírás 9000 2 pont
I. számírás 1111 3 pont
J. számírás 7878 3 pont