diff --git a/05-funkce/fibonacci.py b/05-funkce/fibonacci.py new file mode 100755 index 0000000000000000000000000000000000000000..a3da97eb49f4a3d4fa7e2b2a77c393b19e53f99c --- /dev/null +++ b/05-funkce/fibonacci.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 + +def fibonacci(n): + if n <= 1: + return n + a, b = 0, 1 + for i in range(2, n+1): + a, b = b, a+b + return b diff --git a/05-funkce/kvadrov.py b/05-funkce/kvadrov.py new file mode 100755 index 0000000000000000000000000000000000000000..33e2d7d702dc3039a5ffb7b1f0f34855a7f9d482 --- /dev/null +++ b/05-funkce/kvadrov.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +from math import sqrt + +# Vrátí seznam kořenů rovnice ax**2 + bc + c = 0 +def kvadraticka_rovnice(a, b, c): + if a == 0: + print("Lineární rovnice neřešíme") + return [] + d = b**2 - 4*a*c # Diskriminant + if d < 0: + return [] + elif d == 0: + return [-b/(2*a)] + else: + q = sqrt(d) + return [(-b - q) / (2*a), (-b + q) / (2*a)] + +# Příklady: +print(kvadraticka_rovnice(4, 0, -64)) # 2 kořeny +print(kvadraticka_rovnice(4, 0, 64)) # žádný kořen +print(kvadraticka_rovnice(1, -2, 1)) # 1 kořen diff --git a/05-funkce/min3.py b/05-funkce/min3.py new file mode 100755 index 0000000000000000000000000000000000000000..0de8f4e7965f18468f3d08b57e1ef3237d16a6c5 --- /dev/null +++ b/05-funkce/min3.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +def min2(x, y): + if x < y: + return x + else: + return y + +def min3(x, y, z): + return min2(min2(x, y), z) diff --git a/05-funkce/prunik.py b/05-funkce/prunik.py new file mode 100755 index 0000000000000000000000000000000000000000..12bf17b1bd3637f2e7c94d75362b173be1734370 --- /dev/null +++ b/05-funkce/prunik.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +# Spočítá průnik dvou setříděných seznamů +def prunik_seznamu(a, b): + vystup = [] + j = 0 + for x in a: + while j < len(b) and b[j] < x: + j += 1 + if j < len(b) and b[j] == x: + vystup.append(x) + j += 1 + return vystup diff --git a/05-funkce/suda.py b/05-funkce/suda.py new file mode 100755 index 0000000000000000000000000000000000000000..3556733b68589c616e852dadb382e30860700fb5 --- /dev/null +++ b/05-funkce/suda.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 + +def kolik_sudych(seznam): + c = 0 + for x in seznam: + if x % 2 == 0: + c += 1 + return c + +def vyber_suda(seznam): + vystup = [] + for x in seznam: + if x % 2 == 0: + vystup.append(x) + return vystup