F1420 - cvičenie na funkcie 1 Napíšte funkciu, ktorá premení uhol v stupňoch na radiany a funkciu inverznú. Číslo π nájdete v knižnici math: import math print(math.pi) 2 Turtle! Knižnica turtle je štandardná knižnica Pythonu (je nainštalovaná s Pythom) pre deti, ktorá vám dovoľuje kresliť geometrické útvary. My ju použijeme na precvičenie použitia funkcí a premenných. Myšlienka turtle je, že príkazmi (konkrétne volaniami metód) ovládate pohyb korytnačky (želvy), ktorá pohybom po “papieri” kreslí čiary. Korytnačka môže ísť dopredu, dozadu, otáčať sa, prípadne presunúť sa na konkrétne miesto na papieri. Tu je príklad (náhodná, nezmyselná kresba): import turtle moje_zelva = turtle.Turtle() moje_zelva.color("blue") moje_zelva.shape("turtle") moje_zelva.speed(1) moje_zelva.forward(100) moje_zelva.left(90) moje_zelva.forward(50) moje_zelva.circle(60, 100) 1 moje_zelva.right(30) moje_zelva.backward(100) moje_zelva.penup() moje_zelva.right(30) moje_zelva.forward(150) moje_zelva.pendown() moje_zelva.forward(150) moje_zelva.reset() Dokumentácia je vynikajúca a pravdepodobne tam nájdete všetko čo chcete vedieť. 1. Nakreslite číslo “2”. 2. Nakreslite základné tvary - rovnostranný trojuholník, štvorec, šesťuholník, päťuholník a pentagram. 3. Presuňte váš kód na kresbu geometrických tvarov do funkcií a parametrizujte na korytnačku a dĺžku strany. 4. Vyrobte nasledjúci obrázok. Obr. 1: Relatívne škálovanie dĺžky strany pentagramu a polomeru kružnice. 2 3 Viac turtle! Ukazovali sme si, že funkcie je možné predávať ako argumenty iným funkciam. Tento koncept môžete využiť pre implementáciu jednoduchého opakovania: def run_2(fun): fun() fun() def run_3(fun): run_2(fun) fun() # ... atď. Vyrobte pyramídu s trojuholníkov ako na obrázku: 3 4 Ešte viac turtle! Nakreslite tento bizarný útvar. Je zaujímavý tým, že všetky čiary sú rovnako dlhé. Hviezda je pootočená o π 2 relatívne k pentagonu.1 Niektoré uhly som vám spočítal a zakreslil do obrázku: α = arccos 1 2 cos(18◦) − 18◦ (1) β = 126◦ − α (2) 4 5 Vyriešte príklady 3.2 a 3.3 z knižky Think Python. Referencie 1. Griffiths, M. 103.27 a property of a particular unit-distance graph. The Mathematical Gazette 103, 353–356 (2019). 5