Ćwiczenia¶
Użyj funkcji draw_square, którą zdefiniowaliśmy w tej części w programie, rysującym poniższy rysunek. Załóż, że każdy bok ma 20 jednostek. (Wskazówka: zauważ, że żółw odszedł od punktu końcowego ostatniego kwadratu w końcu programu.)
(ex_5_1)
(q1_answer)
Napisz program rysujący poniższy rysunek. Załóż, że najmniejszy wewnętrzny kwadrat ma bok o długości 20 jednostek, a kolejny, większy kwadrat ma bok większy o 20 jednostek od poprzedniego.
(ex_5_2)
Napisz funkcję nie zwracającą wartości draw_poly(zolw, boki, wielkosc) która za pomocą żółwia rysuje wielokąt regularny. Jeżeli wywołamy draw_poly(tess, 8, 50), to narysuje taki oto kształt:
(ex_5_3)
(q3_answer)
Narysuj ten piękny wzorek.
(ex_5_4)
(q5_answer)
Napisz funkcję nie zwracającą wartości draw_equitriangle(someturtle, somesize), która bezpośrednio wywoła funkcję draw_poly z jednego z poprzednich zadań po to ,by narysować trójkąt równoboczny za pomocą żółwia.
(ex_5_6)
Napisz funkcję, zwracającą wartość sum_to(n), która oblicza sumę wszystkich liczb naturalnych mniejszych lub równych n. W takim przypadku wywołanie sum_to(n), będzie oznaczać 1+2+3+...+10, i powinniśmy dostać 55. Do obliczenia tej sumy użyj równania (n * (n + 1)) / 2.
(ex_5_7)
(q7_answer)
Napisz funkcję area_of_circle(r), zwracającą pole koła o promieniu r. Upewnij się, że do rozwiązania użyjesz modułu math.
(ex_5_8)
Napisz funkcję niezwracającą wartości, aby narysować gwiazdę pięcioramienną, której ramiona mają długość 100 jednostek.
(ex_5_9)
(q9_answer)
Rozwiń powyższy program. Narysuj pięć gwiazd, ale pomiędzy każdą podnieś rysik, przenieś się do przodu o 350 jednostek, obróć o 144, opuść rysik i narysuj kolejną gwiazdę. Powinieneś dostać podobny rysunek (zauważ, że musisz przesunąć się w lewo rysując pierwszą gwiazdę, by zmieścić wszystko w jednym oknie):
Jak by wyglądał rysunek, gdybyście nie podnieśli rysika?
(ex_5_10)
Rozwiń funkcję rysującą gwiazdę, aby móc narysować gwiazdę n-ramienną. (Wskazówka: n musi być liczbą nieparzystą większą lub równą 3).
(ex_5_11)
(q11_answer)
Napisz funkcję draw_sprite, rysującą gąsiennicę. Funkcja będzie potrzebować parametrów, trzymających instancję żółwia, liczbę nóg oraz ich długość. Wywołaj tę funkcję, by narysowała gąsiennicę z 15 nogami o długości 120 jednostek.
(ex_5_12)
Przepisz funkcję sum_to(n) zwracającą sumę wszystkich liczb naturalnych do n włącznie. Tym razem użyj wzorca inkrementalnego.
(ex_5_13)
(q13_answer)
Napisz funkcję my_sqrt, która będzie przybliżała pierwiastek kwadratowy danej liczby n, używając algorytmu Newtona. Jest to algorytm iteracyjny, gdzie pierwsza rozwiązanie dane jest przez n/2, a każde kolejne obliczane jest ze wzoru newguess = (1/2) * (oldguess + (n/oldguess)).
(ex_5_14)
Skonstruuj funkcję my_pi, która zwróci przybliżenie liczby PI (3,1415…). Użyj przybliżenia Leibniza
(ex_5_15)
(q15_answer)
Napisz funkcję my_pi, która obliczy przybliżoną wartość PI (3,1415…) za pomocą metody Madhava
(ex_5_16)
Zbuduj funkcję draw_fancy_square, która narysuje kwadrat z fantazyjnymi rogami (z kolcami w rogach). Użyj funkcji draw_sprite z zadania wcześniejszego. Aby dostać jeszcze ciekawszy wygląd można na końcach kolców dorysować małe trójkąty.
(ex_5_17)
(q17_answer)