1. Sudé-liché. Napište program, který zjistí a vypíše, zda je zadané číslo sudé nebo liché.
In [1]:
x = int(input("Zadej celé číslo:"))
if x % 2 == 0:
    print(x, "je sudé.")
else:
    print(x, "je liché.")
15 je liché.
  1. Je větší. Napište program, který zjistí a vypíše, které ze dvou zadaných čísel je větší.
In [1]:
x = float(input("Zadej první číslo:"))
y = float(input("Zadej druhé číslo:"))
if x > y:
    print(f"x = {x} je větší než y = {y}.")
elif (x < y):
    print(f"y = {y} je větší než x = {x}.")
else:
    print(f"Zadaná čísla jsou stejná, x = y = {y}.")    
Zadaná čísla jsou stejná, x = y = 3.0.
  1. Je největší. Napište program, který zjistí a vypíše, které ze tří zadaných čísel je největší.
In [1]:
x = float(input("Zadej první číslo:"))
y = float(input("Zadej druhé číslo:"))
z = float(input("Zadej třetí číslo:"))

if x >= y  and x >= z:
    print("Největší je první číslo", x)
if y >= x  and y >= z:
    print("Největší je druhé číslo", y) 
if z >= x  and z >= y:
    print("Největší je třetí číslo", z) 

print("Největší je", max(x,y,z))
Největší je první číslo 4.0
Největší je třetí číslo 4.0
Největší je 4.0
  1. Seřaď. Napište program, který vypíše tři zadaná čísla v pořadí od největšího po nejmenší.
In [2]:
x = float(input("Zadej první číslo:"))
y = float(input("Zadej druhé číslo:"))
z = float(input("Zadej třetí číslo:"))

print("Pořadí čísel od největšího:", end = " ")
if x >= y >= z :
    print(x, y, z)
elif x >= z >= y :
    print(x, z, y)
elif y >= x >= z :
    print(y, x, z)
elif y >= z >= x :
    print(y, z, x)
elif z >= y >= x :
    print(z, y, x)   
else:
    print(z, x, y)
Pořadí čísel od největšího: 8.0 7.0 4.0
In [7]:
x = float(input("Zadej první číslo:"))
y = float(input("Zadej druhé číslo:"))
z = float(input("Zadej třetí číslo:"))

print("Pořadí čísel od největšího:", end = " ")
if x >= y and x >= z :
    if y >= z :
        print(x, y, z)
    else:
        print(x, z, y)
elif y >= x and y >= z :
    if x >= z :
        print(y, x, z)
    else:
        print(y, z, x)
elif (y >= x):
    print(z, y, x) 
else:
    print(z, x, y)
Pořadí čísel od největšího: 15.0 2.0 2.0
  1. Trojúhelník. Napište program, který zjistí a vypíše, zda lze sestrojit trojúhelník zadaný pomocí tří délek stran.
In [10]:
a = float(input("Zadej délku strany a:"))
b = float(input("Zadej délku strany b:"))
c = float(input("Zadej délku strany c:"))

if (a + b > c) and (a + c > b) and (b + c > a):
    print("Trojúhelník lze sestrojit")
else:
    print("Trojúhelník nelze sestrojit")
Trojúhelník nelze sestrojit
  1. Test plnoletosti. Napište program, který se zeptá uživatele na věk a odpoví, zda je plnoletý.
In [13]:
a = int(input("Kolik je ti let?"))
if a >= 18:
    print("Jsi plnoletý.")
else:
    print("Nejsi plnoletý.")

# alternativně:
print("Jsi plnoletý.") if a >= 18 else print("Nejsi plnoletý.")
Nejsi plnoletý.
Nejsi plnoletý.

Cykly¶

  1. Součet čísel pomocí for cyklu. Napište program, který sečte čísla od 1 do n (pomocí for cyklu).
In [15]:
n = int(input("Zadej číslo:"))
součet = 0
for i in range(1,n+1):
    součet += i
    
print("Součet čísel je", součet) #, n*(n+1)/2)    
Součet čísel je 120 120.0
  1. Sudé-liché podruhé.

Napište program, který bude pořád dokola žádat uživatele, aby zadal celé číslo, a poté vypíše, jestli je zadané číslo sudé nebo liché. Jakmile uživatel napíše "konec", tak program skončí.

In [9]:
while True:
    s = input("Zadej celé číslo:")
    if s == "konec":
        break
    x = int(s)
    if (x % 2 == 0):
        print(f"x = {x} je sudé.")
    else:
        print(f"x = {x} je liché.")
            
x = 14 je sudé.
x = 7 je liché.
In [3]:
# alternativně:
s = ""
while s != "konec":
    s = input("Zadej celé číslo:")
    if s != "konec":
        x = int(s)
        if (x % 2 == 0):
            print(f"x = {x} je sudé.")
        else:
            print(f"x = {x} je liché.")
            
x = 14 je sudé.
x = 7 je liché.
  1. Načti a sečti čísla. Napište program, který postupně načítá čísla ze vstupu, dokud nepřijde prázdný řetězec "". Pak vypíše počet zadaných čísel a jejich součet.
In [10]:
součet = 0
počet = 0
while True:
    s = input("Zadej číslo:")
    if s == "":
        break
    součet += int(s)     # float(s)
    počet += 1
print(f"Počet čísel je {počet} a jejich součet je {součet}.")
Počet čísel je 2 a jejich součet je 21
  1. Chci číslo z intervalu. Program-kecálek čte čísla od uživatele, dokud uživatel nezadá číslo z požadovaného intervalu. Pak mu poděkuje a vypíše počet neúspěšných pokusů.
In [13]:
a = 5
b = 10
počet = 0
while True:
    s = input(f"Zadej číslo z intervalu ({a},{b}):")
    x = float(s)
    if a < x < b:
        break
    počet += 1
print(f"Děkuji. Zadal jsi číslo {x}. Počet neúspěšných pokusů je {počet}")   
    
Děkuji. Zadal jsi číslo 6.0. Počet neúspěšných pokusů je 2
  1. Posloupnost. Napište program, který vypíše prvních n členů následující posloupnosti: 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 ...
In [ ]:
 
In [ ]:
 

1. Kvadratická rovnice¶

Napište program pro vyřešení kvadratické rovnice $ax^2 + bx + c = 0$, kde čísla $a,b,c$ jsou reálné parametry.

In [1]:
# vstupní data - zadá uživatel
import math
a = float(input("Zadej a:"))
b = float(input("Zadej b:"))
c = float(input("Zadej c:"))
typ = None

D = b * b - 4 * a * c
x1 = (-b + D**0.5)/(2*a)
x2 = (-b - D**0.5)/(2*a)
if D < 0 :
    typ = "komplexní kořeny"
elif D == 0 :
    typ = "dvojnásobný kořen"
else:
    typ = "reálné kořeny"
print(f"Typ řešení: {typ}, kořeny: {x1:.2}, {x2:.2}")
Typ řešení: komplexní kořeny, kořeny: (-0.5+0.87j), (-0.5-0.87j)

2. BMI podruhé¶

Napište program, který spočítá BMI uživatele a vypíše, zda má nadváhu, podváhu nebo normální váhu (normální váze odpovídá BMI mezi 18.5 a 25). Dále program napíše uživateli, jaké je jeho rozmezí optimální hmotnosti.

In [3]:
m = float(input("Jaká je tvoje hmotnost (v kg):"))
v = float(input("Jaká je tvoje výška (v cm):"))
v /= 100
bmi = m / (v ** 2)

if (bmi < 18.5):
    print ("Máš podváhu.")
elif (bmi > 25):
    print("Máš nadváhu.")
else:
    print("Tvoje váha je optimální.")

m_min = 18.5 * (v ** 2)
m_max = 25 * (v ** 2)
print(f"Vaše optimální hmotnost je od {m_min:.1f} do {m_max:.1f}.")
Tvoje váha je optimální.
Vaše optimální hmotnost je od 45.6 do 61.6.

3. Ověření prvočíselnosti¶

Napište program, který ověří, jestli je vstupní celé číslo $n$ prvočíslo nebo ne.

In [ ]:
 

4. Ciferný součet¶

Napište program, který sečte jednotlivé cifry zadaného celého kladného celého čísla.

In [ ]:
 

5. Collatzova posloupnost¶

Napište program, který vypíše Collatzovu posloupnost (do dosažení hodnoty 1) pro dané počáteční přirozené číslo $n$.

Collatzova posloupnost: vezmeme celé kladné číslo $n$. Pokud je $n$ sudé, vydělíme ho dvěma, pokud je $n$ liché, vynásobíme ho třemi a přičteme jedničku, postup opakujeme.

Hypotéza je, že posloupnost pro každé přirozené $n$ nakonec dojde k číslu 1.

In [1]:
n = int(input("Zadejte celé kladné číslo: "))
while n >= 1:
    print(n, end=' ')
    if n == 1:
        break
    if n % 2 == 0:
        n = n // 2
    else:
        n = 3 * n + 1
       
10 5 16 8 4 2 1 

6. Prvočíselný rozklad¶

Napište program, který vypíše prvočíselný rozklad přirozeného čísla $n$.

In [ ]: