Ćwiczenia

  1. 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.)

    ../_images/five_squares.png

    
    
    

    (ex_5_1)


    
    
    

    (q1_answer)

    Show Comments
  2. 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.

    ../_images/nested_squares.png

    
    
    

    (ex_5_2)

  3. 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:

    ../_images/regularpolygon.png

    
    
    

    (ex_5_3)


    
    
    

    (q3_answer)

    Show Comments
  4. Narysuj ten piękny wzorek.

    ../_images/tess08.png

    
    
    

    (ex_5_4)

  5. Te spirale na rysunku poniżej różnią się tylko kątem obrotu. Narysuj obie.

    ../_images/tess_spirals.png

    
    
    

    (ex_5_5)


    
    
    

    (q5_answer)

    Show Comments
  6. 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)

  7. 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)

    Show Comments
  8. 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)

  9. Napisz funkcję niezwracającą wartości, aby narysować gwiazdę pięcioramienną, której ramiona mają długość 100 jednostek.

    ../_images/star.png

    
    
    

    (ex_5_9)


    
    
    

    (q9_answer)

    Show Comments
  10. 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):

    ../_images/five_stars.png

    Jak by wyglądał rysunek, gdybyście nie podnieśli rysika?


    
    
    

    (ex_5_10)

  11. 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)

    Show Comments
  12. 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)

  13. 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)

    Show Comments
  14. 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)

  15. Skonstruuj funkcję my_pi, która zwróci przybliżenie liczby PI (3,1415…). Użyj przybliżenia Leibniza


    
    
    

    (ex_5_15)


    
    
    

    (q15_answer)

    Show Comments
  16. Napisz funkcję my_pi, która obliczy przybliżoną wartość PI (3,1415…) za pomocą metody Madhava


    
    
    

    (ex_5_16)

  17. 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)

    Show Comments
Następna część - Boolean Values and Boolean Expressions