Ćwiczenia

  1. Dodaj wyrażenie print do funkcji, realizującej algorytm Newtona obliczania pierwiastka kwadratowego, tak by wyrażenie drukowało zmienną better za każdym razem, gdy ją oblicza. Wywołaj napisaną przez siebie funkcję, podając 25 jako argument i zapisz resultat.


    
    
    

    (ex_7_7)


    
    
    

    (q1_answer)

    Show Comments
  2. Napisz funkcję print_triangular_numbers(n), która wydrukuje pierwsze n liczb trójkątnych. Wywołanie print_triangular_numbers(5) powinno wyprodukować:

    1       1
    2       3
    3       6
    4       10
    5       15
    

    (uwaga: poszukaj w sieci informacji o liczbach trójkątnych.)


    
    
    

    (ex_7_8)

  3. Napisz funkcję is_prime, która pobiera jako argument pojedynczą liczbę całkowitą i zwraca True, jeżeli jest ona liczbą pierwszą oraz zwraca False w przeciwnym przypadku.


    
    
    

    (ex_7_9)


    
    
    

    (q3_answer)

    Show Comments
  4. Zmodyfikuj program, w którym poruszaliśmy żółwiem tak, żeby zamiast obracać się o 90 stopni w lewo bądź w prawo, kąt generowany był losowo.


    
    
    

    (ex_7_14)

  5. Zmodyfikuj program, w którym poruszaliśmy żółwiem, tak żebyśmy mieli dwa żółwie, oba zaczynające w losowym położeniu. Ruch żółwi utrzymuj tak długo dopóki jeden z nich nie wyjdzie za ekran.


    
    
    

    (ex_7_13)


    
    
    

    (q5_answer)

    Show Comments
  6. Zmodyfikuj poprzedni program, gdzie poruszaliśmy żółwiem w taki sposób, by dany żółw zawrócił, gdy zderzy się ze ścianą lub drugim żółwiem.


    
    
    

    (ex_7_12)

  7. Napisz funkcję usuwającą cały czerwony komponent z obrazka.

    Do tego i innych podobnych zadań użyj zdjęcie luther.jpg.


    
    
    

    (ex_7_15)


    
    
    

    (q7_answer)

    Show Comments
  8. Napisz funkcję przekształcającą obraz do skali szarości.


    
    
    

    (ex_7_16)

  9. Napisz funkcję przekształcającą obraz do skali czarno-białej.


    
    
    

    (ex_7_17)


    
    
    

    (q9_answer)

    Show Comments
  10. Tonowanie sepią objawia się w brązowawych obrazkach, które mogą przypominać o upływie czasu. Wzór przekształcenia obrazów do tonacji sepii jest następujący:

    newR = (R × 0.393 + G × 0.769 + B × 0.189)
    newG = (R × 0.349 + G × 0.686 + B × 0.168)
    newB = (R × 0.272 + G × 0.534 + B × 0.131)
    

    Napisz funkcję konwertującą obrazy do tonacji sepii. Podpowiedź: Pamiętaj, że wartości RGB muszą być liczbami całkowitymi pomiędzy 0 i 255.


    
    
    

    (ex_7_18)

  11. Npisz funkcję jednolicie powiększającą obraz dwukrotnie.


    
    
    

    (ex_7_19)


    
    
    

    (answer_7_11)

    Show Comments
  12. Po zbytnim przeskalowaniu obrazu wygląda on jakby zbudowany był z bloków. Jedną z możliwości redukcji tego efektu jest podmiana każdego piksela wartością średnią otaczających go pikseli. Da to efekt wygładzania zmian w kolorach. Napisz funkcję, która jako parametr otrzyma obraz i zwróci wygładzony. Zwrócony obraz powinien być taki sam jak oryginalny, ale wygładzony.


    
    
    

    (ex_7_20)

  13. Npisz ogólną funkcję mapującą operacje na pikselach, która jako parametry formalne pobierać będzie obraz oraz funkcję przekształcającą piksel. Funkcje przekształcająca piksel powinna przekształcać zadany piksel i zwracać nowy, zmapowany.


    
    
    

    (ex_7_21)


    
    
    

    (q13_answer)

    Show Comments
  14. Skanując rzeczywisty obraz skanerem w efekcie często dostajemy sporą ilość szumu w wyjściowym obrazie cyfrowym. Powody tego są różne - może być to kurz osiadajacy na obrazie lub skanerze czy też jakaś ułomność obrazu rzeczywistego (zagięcia itp). Jedną z możliwości eliminacji takiego szumu jest zastąpienie każdego piksela poprzez medianę pikseli go otaczających.


    
    
    

    (ex_7_22)

  15. Znajdź informację o algorytmie Sobela detekcji krawędzi i zaimplementuj go.


    
    
    

    (ex_7_23)


    
    
    

    (q15_answer)

    Show Comments
Następna część - Strings Revisited