1. 28.09.2019-zadania
  2. 01.10.2019-zadania

    01.10.2019-rozwiazania

  3. 03.10.2019-zadania

    03.10.2019-rozwiazania

  4. 07.10.2019-zadania

    07.10.2019-rozwiazania

  5. 10.10.2019-zadania

    10.10.2019-rozwiazania

  6. 15.10.2019-zadania

Funkcje - proszę przeczytać podaną stronę https://www.learnpython.org/pl/Funkcje

Biblioteka random: https://docs.python.org/3.7/library/random.html Szukanie porzebnych funkcji należy teraz do Ciebie.

Iteracja:

Iteracja (łac. iteratio – powtarzanie) – czynność powtarzania tej samej operacji w pętli z góry określoną liczbę razy lub aż do spełnienia określonego warunku.

Rekurencja:

Funkcje rekurencyjne to funkcje, które wywołują same siebie bezpośrednio lub za pośrednictwem innych funkcji. Istotne jest zapewnienie, że rekurencja będzie przerwana i nie wystąpi pętla nieskończona. Przykładem funkcji rekurencyjnej był program przeszukiwania binarnego zaprezetowania na zajęciach jak i sumowanie i mnożenie elementów listy.

Zadania (Przetestuj działania każdego napisanego programu)

1. Napisz funkcje która obliczy (x + y) * (x + y) i zwróci wynik

2. Napisz funkcje która pobiera w argumencie liste, a zwraca co 3 element tej listy. Przypomij sobie jak działają slice'y.

input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
output: [3, 6, 9]

3. Dokończyć zadania 15.10.2019 Zadanie 3 oraz 15.10.2019 Zadanie 4, jednakże rozmieść kod w sposób zaprezentowany na obrazku.

Architektura

4. Sprawdzić czas wykonania wyszukiwania przez 2 metody napisane podczas zajęć: wyszukiwanie, oraz binary_search dla danych:

ilość wywołań funkcji: 10
lista: range(1, 1000000)
szukana liczba: losowa liczba całkowita z przedziału 10 000 9 990 000

Przypomnij sobie jak działa fukcja now() z modułu time. Poniżej znajduje się pomoc:

In [ ]:
import time

a = time.time()
time.sleep(1) # To zastąpić wywołaniami fukcji 
b = time.time()
print(b - a)

5. Napisz w sposób iteracyjny (z wykorzystaniem petli for) oraz rekurencyjny program, który wypisze na ekran konsoli znak * zadaną przez użytkownika liczbę razy. Napisz to w dwóch różnych funkcjach

Przykład

odliczanie(5)
# Powinno wypiswać
*
*
*
*
*

6. Napisz w sposób iteracyjny (z wykorzystaniem petli for) oraz rekurencyjny program, który będzie symulował odliczanie od zadanej liczbę cyfry. Napisz to w dwóch różnych funkcjach

Przykład

odliczanie(5)
# Powinno wypiswać
5
4
3
2
1
Koniec

7. Napisz kalkulator obsługujący 2 liczby oraz operacje ['+', '-', '*', '/']. Koniecznie napisz ten program pisząć własne funkcje takich jak (add, sub, mul, div, pobierz_liczbę_od_użytkownika, pobierz_operacje_od_użytkownika). Możesz założyć, że użytkownik będzie podawał tylko wartości liczbowe. Co się stanie jeżeli będziemy dzielić przez 0. Obsłuż ten przypadek np. wypisując odpowiednią informację użytkownikowi.

8. Napisz funkcje obsługujące potęgowanie 2 liczb.

Napisz je na trzy sposoby:

  • używając pythonowej komendy do obliczenia potęgi,
  • używając iteracji przy pomocy komendy for,
  • używając rekurencji.
  • Obsłuż wszystkie przypadki. Co gdy wykładnik jest równy zero, co gdy wykładnik jest równy jeden, co gdy podstawa potęgi jest równa jeden, lub 0

9. Coś łatwego na koniec. Napisz program, który wyświetli wszystkie parzyste liczby z podanej listy w tej samej kolejności, co więcej jeżeli program natrafi na element o wartości 237 powinien przewać wypisywanie. Wykorzystaj funkcje. Na zajęciach zostały podane 2 przykłady przerwań pętli, mogą okazać się przydatne.

numbers = [    
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
    958,743, 527
    ]