9. Python – instrukcje warunkowe if…elif…else


Instrukcje warunkowe to mechanizm pozwalający programowi podejmować decyzje i wykonywać różny kod w zależności od spełnienia określonych warunków. Są fundamentem logiki programowania – pozwalają odpowiadać na pytanie „co jeżeli?”.

Wyobraź sobie instrukcje warunkowe jak rozdroże:

  • if – „jeżeli warunek jest prawdziwy, idź tą drogą”
  • elif – „a jeżeli to nie działa, sprawdź następny warunek”
  • else – „w każdym innym przypadku, idź tą drogą”

Instrukcja if

UWAGA!!! PAMIĘTAJCIE O WCIĘCIACH!!!

Podstawowa składnia

if warunek:
    # kod wykonywany gdy warunek jest True
    instrukcja1
    instrukcja2

Kluczowe elementy:

  • Słowo kluczowe if
  • Warunek (wyrażenie zwracające True lub False)
  • Dwukropek :
  • Wcięcie 4 spacji (bardzo ważne!)

Najprostszy przykład:

liczba = 10

if liczba > 0:
print("Liczba jest dodatnia")

#wynik:
#Liczba jest dodatnia

Jak to działa:

  • Python sprawdza warunek liczba > 0
  • 10 > 0 to True
  • Wykonuje kod w bloku (z wcięciem)

Przykład bez spełnionego warunku

liczba = -5

if liczba > 0:
print("Liczba jest dodatnia")

print("Koniec programu")

#wynik:
#Koniec programu

Blok if został pominięty, ponieważ warunek był False.

Instrukcja else

Gdy potrzebujesz reakcji na „w przeciwnym wypadku”, używasz else.

if warunek:
# kod gdy warunek True
else:
# kod gdy warunek False

Przykład

liczba = -5

if liczba > 0:
    print("Liczba jest dodatnia")
else:
    print("Liczba nie jest dodatnia")

#wynik
#Liczba nie jest dodatnia

Jak to działa:

  • Warunek liczba > 0 to False
  • Python pomija blok if
  • Wykonuje blok else

Instrukcja elif

Gdy masz więcej niż dwa scenariusze, używasz elif (else if).

if warunek1:
    # kod gdy warunek1 True
elif warunek2:
    # kod gdy warunek1 False, ale warunek2 True
else:
    # kod gdy wszystkie warunki False

Przykład – klasyfikacja liczby

liczba = 0

if liczba > 0:
    print("Liczba jest dodatnia")
elif liczba == 0:
    print("Podano zero")
else:
    print("Liczba jest ujemna")

#wynik
#Podano zero

Jak to działa:

  • liczba > 0 to False – pomijamy
  • liczba == 0 to True – wykonujemy ten blok
  • Pomijamy resztę (else nie będzie wykonane)

Wiele warunków elif

Możesz mieć dowolną liczbę elif:

ocena = 85

if ocena >= 90:
    print("Ocena: 5")
elif ocena >= 80:
    print("Ocena: 4")
elif ocena >= 70:
    print("Ocena: 3")
elif ocena >= 60:
    print("Ocena: 2")
else:
    print("Ocena: 1")

#wynik
#Ocena: 4

Zagnieżdżanie instrukcji warunkowych

Możesz umieszczać instrukcje if wewnątrz innych instrukcji if.

wiek = 20
ma_prawo_jazdy = True

if wiek >= 18:
    print("Jesteś pełnoletni")
    
    if ma_prawo_jazdy:
        print("Możesz prowadzić samochód")
    else:
        print("Musisz zrobić prawo jazdy")
else:
    print("Jesteś niepełnoletni")

#wynik
#Jesteś pełnoletni
#Możesz prowadzić samochód

Operatory porównania w warunkach

UWAGA: w warunkach nie stosujemy pojedyńczego znaku „=”

a = 10
b = 5

# Równość
if a == b:
    print("Równe")

# Nierówność
if a != b:
    print("Różne")

# Większe
if a > b:
    print("a jest większe od b")

# Mniejsze
if a < b:
    print("a jest mniejsze od b")

# Większe lub równe
if a >= b:
    print("a jest większe lub równe b")

# Mniejsze lub równe
if a <= b:
    print("a jest mniejsze lub równe b")

Operatory logiczne

and – i (oba warunki muszą być True)

wiek = 25
ma_prawo_jazdy = True

if wiek >= 18 and ma_prawo_jazdy:
    print("Możesz wypożyczyć samochód")

or – lub (przynajmniej jeden warunek True)

dzien = "sobota"

if dzien == "sobota" or dzien == "niedziela":
    print("Weekend!")

not – negacja

jest_deszcz = False

if not jest_deszcz:
    print("Nie potrzebujesz parasola")

Łączenie operatorów

wiek = 25
wzrost = 180
waga = 75

if (wiek >= 18 and wiek <= 40) and (wzrost >= 170 and waga <= 90):
    print("Spełniasz wymagania")

Operator in

Operator in sprawdza czy element znajduje się w kolekcji.

# Sprawdzanie w liście
owoce = ["jabłko", "banan", "gruszka"]

if "jabłko" in owoce:
    print("Jabłko jest na liście")

Przykład – walidacja wyboru

odpowiedz = input("Wybierz: papier, kamień lub nożyce: ")
odpowiedz = odpowiedz.lower()

opcje = ["papier", "kamień", "nożyce"]

if odpowiedz in opcje:
    print(f"Wybrałeś: {odpowiedz}")
else:
    print("Podałeś niepoprawną wartość")

#wynik
#Wybierz: papier, kamień lub nożyce: Papier
#Wybrałeś: papier

in z różnymi kolekcjami

# Lista
if "a" in ["a", "b", "c"]:
    print("Jest w liście")

# Krotka
if 5 in (1, 2, 3, 4, 5):
    print("Jest w krotce")

# Zestaw
if "Python" in {"Python", "Java", "C++"}:
    print("Jest w zestawie")

# Słownik (sprawdza klucze)
slownik = {"name": "Jan", "age": 25}
if "name" in slownik:
    print("Klucz 'name' istnieje")

# String (sprawdza podciąg)
if "Py" in "Python":
    print("'Py' jest w 'Python'")

Operator not in

Sprawdza czy elementu NIE MA w kolekcji.

name = "Kama"

if name not in ["Ania", "Kasia", "Zosia"]:
    print("Nie ma na liście")

#wynik
#Nie ma na liście

Operator not

Negacja wartości logicznej

cos = False

if not cos:
    print("Zmienna 'cos' jest False")

Różnica między not i !=

# != używamy do porównania dwóch wartości
a = 5
b = 10

if a != b:
    print("a nie równa się b")

# not używamy do negacji wartości logicznej
is_logged_in = False

if not is_logged_in:
    print("Użytkownik nie jest zalogowany")

Operator is vs ==

== sprawdza równość wartości

a = [1, 2, 3]
b = [1, 2, 3]

if a == b:
    print("Wartości są równe")  # To się wyświetli

is sprawdza tożsamość (ten sam obiekt w pamięci)

a = [1, 2, 3]
b = [1, 2, 3]
c = a

if a is b:
    print("To ten sam obiekt")  # To się NIE wyświetli

if a is c:
    print("To ten sam obiekt")  # To się wyświetli

Kiedy używać is:

  • Głównie do porównań z None
  • Porównań z True i False
x = None

# DOBRZE
if x is None:
    print("x jest None")

# ŹLE (działa, ale niezgodne z konwencją)
if x == None:
    print("x jest None")

Python nie ma switch/case

Uwaga: Python nie posiada konstrukcji switch znanej z C++, Java, JavaScript.

Zamiast switch używamy if-elif-else

wybor = 2

# W innych językach byłby switch
if wybor == 1:
    print("Opcja 1")
elif wybor == 2:
    print("Opcja 2")
elif wybor == 3:
    print("Opcja 3")
else:
    print("Nieznana opcja")

Alternatywa – słownik (od Python 3.10 jest match-case)

# Eleganckie rozwiązanie ze słownikiem
opcje = {
    1: "Opcja 1",
    2: "Opcja 2",
    3: "Opcja 3"
}

wybor = 2
print(opcje.get(wybor, "Nieznana opcja"))

Skrócony zapis (inline if)

Operator warunkowy (ternary)

# Pełny zapis
wiek = 20
if wiek >= 18:
    status = "Pełnoletni"
else:
    status = "Niepełnoletni"

# Skrócony zapis
wiek = 20
status = "Pełnoletni" if wiek >= 18 else "Niepełnoletni"

print(status)  # Pełnoletni

Składnia: wartość_gdy_true if warunek else wartość_gdy_false

Przykład praktyczny

# Określanie znaku liczby
liczba = -5
znak = "dodatnia" if liczba > 0 else "ujemna"

# Rabat
cena = 100
ile_sztuk = 5
rabat = 0.1 if ile_sztuk >= 10 else 0
cena_koncowa = cena * (1 - rabat)

# Przywitanie
pora_dnia = "rano"
powitanie = "Dzień dobry" if pora_dnia == "rano" else "Dobry wieczór"

Przykłady praktyczne

Przykład 1: Sprawdzanie parzystości

liczba = 8

if liczba == 0:
    print("Podano zero")
elif liczba % 2 == 0:
    print("Liczba jest parzysta")
else:
    print("Liczba jest nieparzysta")

Przykład 2: Porównywanie dwóch liczb

a = 10
b = 5

print(f"Porównujemy liczby {a} i {b}")

if a > b:
    print(f"Większa jest liczba a = {a}")
elif b > a:
    print(f"Większa jest liczba b = {b}")
else:
    print("Liczby są równe")

Przykład 3: Znajdowanie największej z czterech liczb

a, b, c, d = 10, 5, 18, 1

# Zakładamy że pierwsza jest największa
najwieksza = a

# Sprawdzamy pozostałe
if b > najwieksza:
    najwieksza = b

if c > najwieksza:
    najwieksza = c

if d > najwieksza:
    najwieksza = d

print(f"Największa liczba to: {najwieksza}")

Przykład 4: Prosty kalkulator

liczba1 = 10
liczba2 = 5
wybor = "+"

if wybor == "+":
    print(f"{liczba1} + {liczba2} = {liczba1 + liczba2}")
elif wybor == "-":
    print(f"{liczba1} - {liczba2} = {liczba1 - liczba2}")
elif wybor == "*":
    print(f"{liczba1} * {liczba2} = {liczba1 * liczba2}")
elif wybor == "/":
    if liczba2 != 0:
        print(f"{liczba1} / {liczba2} = {liczba1 / liczba2}")
    else:
        print("Nie można dzielić przez zero!")
else:
    print("Niepoprawny operator")

Przykład 5: Miesiące roku

nr = 3

if nr == 1:
    print("Styczeń")
elif nr == 2:
    print("Luty")
elif nr == 3:
    print("Marzec")
elif nr == 4:
    print("Kwiecień")
elif nr == 5:
    print("Maj")
elif nr == 6:
    print("Czerwiec")
elif nr == 7:
    print("Lipiec")
elif nr == 8:
    print("Sierpień")
elif nr == 9:
    print("Wrzesień")
elif nr == 10:
    print("Październik")
elif nr == 11:
    print("Listopad")
elif nr == 12:
    print("Grudzień")
else:
    print("Nieprawidłowy numer miesiąca")

Przykład 6: Sprawdzanie rozszerzenia pliku

filename = "01012020_sales.xlsx"

if filename.endswith(".xlsx"):
    print("TAK")
else:
    print("NIE")

Przykład 7: Sprawdzanie wielkich liter

code = "DSVNDOICSN"

if code.isupper():
    print("TAK")
else:
    print("NIE")

Przykład 8: Sprawdzanie typu zmiennej

number = 0

if isinstance(number, int):
    print("TAK")
else:
    print("NIE")

Przykład 9: Walidacja długości hasła

password = "cskdnjcasa#!"

if len(password) == 11:
    print("Hasło poprawne")
else:
    print("Hasło zbyt krótkie")

Przykład 10: Złożona walidacja hasła

password = "cskdnjcasa#!"

if len(password) == 11 and "!" in password:
    print("Hasło poprawne")
else:
    print("Hasło niepoprawne")

Przykład 11: Sprawdzanie i dodawanie do listy

project_ids = ["02134", "24253"]
project_id = "02135"

if project_id not in project_ids:
    project_ids.append(project_id)

print(project_ids)

Przykład 12: Modyfikacja słownika

project_ids = {
    "01": "open",
    "02": "new",
    "03": "in progress",
    "04": "completed"
}

if project_ids["02"] == "new":
    project_ids["02"] = "open"

print(project_ids)

Przykład 13: Usuwanie z listy

items = ["001", "000", "003", "005", "006"]
item = "001"

if item in items:
    items.remove(item)

print(items)

Zadania

Podstawy instrukcji warunkowych

  1. Stwórz zmienną temperatura z wartością 22. Jeśli temperatura jest większa niż 20, wyświetl „Ciepło”, w przeciwnym razie wyświetl „Zimno”.
  2. Pobierz od użytkownika liczbę. Sprawdź czy jest większa od 100 i wyświetl odpowiedni komunikat.
  3. Stwórz zmienną wiek z wartością 16. Sprawdź czy osoba jest pełnoletnia (wiek >= 18) i wyświetl odpowiednią informację.
  4. Pobierz od użytkownika jego imię. Jeśli imię to „Admin”, wyświetl „Witaj Administratorze!”, w przeciwnym razie wyświetl „Witaj użytkowniku!”.
  5. Stwórz zmienną haslo z jakąś wartością. Sprawdź czy hasło ma długość co najmniej 8 znaków. Wyświetl „Hasło akceptowalne” lub „Hasło za krótkie”.

Instrukcja elif

  1. Pobierz od użytkownika liczbę. Sprawdź czy jest dodatnia, ujemna czy równa zero. Wyświetl odpowiedni komunikat dla każdego przypadku.
  2. Stwórz zmienną ocena z wartością od 1 do 6. Wyświetl słowną interpretację oceny (1-ndst, 2-dop, 3-dst, 4-db, 5-bdb, 6-cel).
  3. Pobierz od użytkownika wiek. Sklasyfikuj osobę jako: dziecko (0-12), nastolatek (13-17), dorosły (18-64), senior (65+).
  4. Stwórz zmienną miesiąc z numerem miesiąca (1-12). Wyświetl do jakiej pory roku należy ten miesiąc (wiosna, lato, jesień, zima).
  5. Pobierz od użytkownika ocenę procentową (0-100). Przypisz ocenę literową według skali: A (90-100), B (80-89), C (70-79), D (60-69), F (0-59).

Operatory logiczne (and, or, not)

  1. Pobierz od użytkownika wiek i sprawdź czy ma prawo jazdy (zmienną bool). Jeśli ma co najmniej 18 lat I ma prawo jazdy, wyświetl „Możesz prowadzić samochód”.
  2. Stwórz zmienną dzien z nazwą dnia tygodnia. Sprawdź czy to sobota LUB niedziela i wyświetl „Weekend!” lub „Dzień roboczy”.
  3. Pobierz od użytkownika temperaturę. Sprawdź czy jest między 18 a 24 stopniami (włącznie). Jeśli tak, wyświetl „Komfortowa temperatura”.
  4. Stwórz zmienną jest_slonecznie (bool). Jeśli NIE jest słonecznie, wyświetl „Weź parasol”.
  5. Pobierz od użytkownika wzrost (w cm) i wagę (w kg). Jeśli wzrost jest powyżej 180 cm I waga poniżej 80 kg, wyświetl „Spełniasz wymogi”.
  6. Stwórz program sprawdzający czy rok jest przestępny. Rok jest przestępny jeśli: jest podzielny przez 4 I (nie jest podzielny przez 100 LUB jest podzielny przez 400).
  7. Pobierz od użytkownika dwie liczby. Sprawdź czy przynajmniej jedna z nich jest większa od 50.
  8. Stwórz zmienną pogoda (string) i temperatura (int). Jeśli pogoda to „deszcz” LUB temperatura jest poniżej 10, wyświetl „Zostań w domu”.

Operator in i not in

  1. Stwórz listę ulubionych kolorów. Pobierz od użytkownika kolor i sprawdź czy jest na liście. Wyświetl odpowiedni komunikat.
  2. Stwórz listę dostępnych rozmiarów ubrań [„S”, „M”, „L”, „XL”]. Pobierz od użytkownika rozmiar i sprawdź czy jest dostępny.
  3. Pobierz od użytkownika nazwę owocu. Sprawdź czy NIE znajduje się w liście owoców cytrusowych [„pomarańcza”, „cytryna”, „grejpfrut”, „mandarynka”].
  4. Stwórz krotkę z nazwami miesięcy letnich. Pobierz nazwę miesiąca i sprawdź czy jest to miesiąc letni.
  5. Stwórz słownik z kodami krajów (np. {„PL”: „Polska”, „DE”: „Niemcy”}). Pobierz kod kraju i sprawdź czy istnieje w słowniku.
  6. Pobierz od użytkownika adres email. Sprawdź czy zawiera znak „@”. Jeśli nie, wyświetl „Nieprawidłowy email”.
  7. Stwórz zestaw zabronionych słów. Pobierz od użytkownika komentarz i sprawdź czy zawiera któreś z zabronionych słów.

Zagnieżdżone instrukcje warunkowe

  1. Pobierz od użytkownika wiek i czy jest studentem. Jeśli ma co najmniej 18 lat, sprawdź czy jest studentem. Jeśli tak, wyświetl „Zniżka studencka 50%”, jeśli nie „Bilet normalny”.
  2. Pobierz trzy liczby. Sprawdź czy pierwsza jest największa. Jeśli tak, sprawdź czy druga jest większa od trzeciej.
  3. Pobierz temperaturę i czy pada deszcz (bool). Jeśli temperatura jest powyżej 20 stopni, sprawdź czy pada. Jeśli nie pada, wyświetl „Idealna pogoda na spacer”.
  4. Pobierz wzrost i wagę. Oblicz BMI (waga / wzrost²). Jeśli BMI jest poniżej 25, sprawdź czy jest powyżej 18.5 (zdrowy zakres).
  5. Pobierz liczbę. Sprawdź czy jest dodatnia. Jeśli tak, sprawdź czy jest parzysta czy nieparzysta.

Operator is i isinstance

  1. Stwórz zmienną z wartością None. Sprawdź czy jest None używając operatora is.
  2. Pobierz od użytkownika wartość. Sprawdź czy jest typu int używając isinstance().
  3. Stwórz dwie listy z takimi samymi wartościami. Porównaj je używając == i is. Wyjaśnij różnicę w komentarzu.
  4. Stwórz zmienną typu float. Sprawdź czy jest instancją klasy (int, float) używając isinstance() z krotką typów.
  5. Pobierz wartość od użytkownika. Sprawdź czy NIE jest None przed wykonaniem na niej operacji.

Zadania z matematyką

  1. Pobierz trzy długości boków. Sprawdź czy można z nich zbudować trójkąt (suma dwóch krótszych boków musi być większa od najdłuższego).
  2. Pobierz współrzędne punktu (x, y). Określ w której ćwiartce układu współrzędnych się znajduje (I, II, III, IV) lub czy leży na osi.
  3. Pobierz liczbę. Sprawdź czy jest liczbą pierwszą (podzielna tylko przez 1 i siebie).
  4. Pobierz rok. Sprawdź czy jest rokiem przestępnym i wyświetl ile dni ma luty w tym roku.
  5. Pobierz trzy liczby. Sprawdź czy tworzą ciąg arytmetyczny (różnica między kolejnymi liczbami jest stała).

Walidacja danych

  1. Pobierz numer telefonu. Sprawdź czy ma dokładnie 9 cyfr i zaczyna się od cyfry (nie zawiera liter).
  2. Pobierz adres email. Sprawdź czy zawiera „@” i „.” oraz czy „@” znajduje się przed „.”.
  3. Pobierz hasło. Sprawdź czy spełnia wymagania: minimum 8 znaków, zawiera wielką literę, małą literę i cyfrę.
  4. Pobierz kod pocztowy. Sprawdź czy ma format XX-XXX (dwie cyfry, myślnik, trzy cyfry).
  5. Pobierz numer PESEL (jako string). Sprawdź czy ma dokładnie 11 cyfr.
  6. Pobierz datę w formacie DD-MM-YYYY. Sprawdź czy miesiąc jest w zakresie 1-12 i dzień w zakresie 1-31.
  7. Pobierz login. Sprawdź czy ma od 3 do 20 znaków i zawiera tylko litery i cyfry.

Zadania ze stringami

  1. Pobierz nazwę pliku. Sprawdź rozszerzenie i określ typ pliku (obraz: jpg, png; dokument: pdf, docx; kod: py, js).
  2. Pobierz zdanie. Sprawdź czy zaczyna się wielką literą i kończy kropką.
  3. Pobierz tekst. Sprawdź czy składa się tylko z małych liter używając metody islower().
  4. Pobierz kod produktu. Sprawdź czy jest w formacie: trzy wielkie litery, myślnik, trzy cyfry (np. ABC-123).
  5. Pobierz imię. Sprawdź czy pierwsza litera jest wielka, a pozostałe małe.

Zadania z listami i kolekcjami

  1. Pobierz liczbę. Sprawdź czy znajduje się w liście liczb pierwszych [2, 3, 5, 7, 11, 13, 17, 19].
  2. Stwórz listę zakupów. Pobierz produkt i sprawdź czy jest na liście. Jeśli jest, usuń go. Jeśli nie ma, dodaj.
  3. Stwórz dwie listy z imionami. Pobierz imię i sprawdź w której liście się znajduje (lub w obu, lub w żadnej).
  4. Stwórz listę numerów kont bankowych. Pobierz numer konta i sprawdź czy jest na liście (jeśli nie, wyświetl „Konto nie istnieje”).
  5. Pobierz element. Sprawdź czy występuje jednocześnie w liście i w zestawie (dwie różne kolekcje).

Zadania ze słownikami

  1. Stwórz słownik z cenami produktów. Pobierz nazwę produktu i wyświetl cenę lub „Produkt niedostępny”.
  2. Stwórz słownik z danymi logowania (login: hasło). Pobierz login i hasło, sprawdź czy są poprawne.
  3. Stwórz słownik ze statusami zamówień. Pobierz numer zamówienia i wyświetl jego status lub „Zamówienie nie znalezione”.
  4. Stwórz słownik z tłumaczeniami (polskie: angielskie). Pobierz słowo polskie i wyświetl tłumaczenie.
  5. Stwórz słownik z punktacją graczy. Pobierz imię gracza i sprawdź czy przekroczył 100 punktów.

Zadania z wieloma warunkami

  1. Stwórz prosty system logowania: pobierz login i hasło. Sprawdź kilka warunków (czy pola nie są puste, czy login istnieje, czy hasło jest poprawne).
  2. Stwórz kalkulator rabatów: pobierz cenę i ilość. Zastosuj rabat: 5% dla 10-19 sztuk, 10% dla 20-49 sztuk, 15% dla 50+ sztuk.
  3. Stwórz system oceny ryzyka kredytowego: pobierz dochód, wiek i historię kredytową (bool). Określ poziom ryzyka: niskie, średnie, wysokie.
  4. Pobierz wagę przesyłki i odległość. Oblicz koszt dostawy według zasad: waga do 1kg: 10zł, 1-5kg: 15zł, 5kg+: 20zł. Odległość powyżej 100km dodaje 5zł.
  5. Stwórz system rezerwacji biletów: pobierz wiek, czy student, dzień tygodnia. Zastosuj odpowiednie zniżki (dzieci 50%, studenci 30%, senior 40%, weekend +20%).

Zadania z operatorem warunkowym (ternary)

  1. Pobierz liczbę. Używając operatora warunkowego przypisz do zmiennej „parzysta” lub „nieparzysta”.
  2. Pobierz temperaturę. Używając operatora warunkowego przypisz do zmiennej „ciepło” jeśli >20, w przeciwnym razie „zimno”.
  3. Pobierz dwie liczby. Używając operatora warunkowego przypisz większą z nich do zmiennej.
  4. Pobierz wiek. Używając operatora warunkowego przypisz „TAK” lub „NIE” do zmiennej oznaczającej pełnoletność.
  5. Pobierz ocenę (1-6). Używając operatora warunkowego przypisz „Zaliczone” dla ocen 3-6 lub „Niezaliczone” dla 1-2.

Zadania kompleksowe

  1. Stwórz quiz z 5 pytaniami. Dla każdej odpowiedzi sprawdź czy jest poprawna. Na końcu wyświetl wynik i ocenę (5 pkt – celujący, 4 pkt – bardzo dobry, itd.).
  2. Stwórz symulator bankomatu: pobierz PIN (sprawdź poprawność), wybierz operację (wypłata/wpłata/sprawdź saldo), wykonaj operację z walidacją.
  3. Stwórz grę „Zgadnij liczbę”: komputer losuje liczbę 1-100, użytkownik zgaduje, program podpowiada „za dużo” lub „za mało” (na razie bez pętli, tylko jedna próba).
  4. Stwórz kalkulator podatku: pobierz dochód roczny, oblicz podatek według progów podatkowych (17% do 120k, 32% powyżej), uwzględnij ulgę podatkową.
  5. Stwórz system parkingowego: pobierz typ pojazdu (samochód/motocykl/ciężarówka) i czas parkowania (w godzinach). Oblicz koszt według stawek: samochód 4zł/h, motocykl 2zł/h, ciężarówka 8zł/h. Pierwsze 15 minut gratis.
  6. Stwórz walidator daty: pobierz dzień, miesiąc, rok. Sprawdź czy data jest poprawna (uwzględnij różną liczbę dni w miesiącach i lata przestępne).
  7. Stwórz konwerter jednostek: pobierz wartość i jednostkę źródłową (km/m/cm), pobierz jednostkę docelową, wykonaj konwersję.
  8. Stwórz system rekomendacji filmów: pobierz wiek, gatunek filmowy (akcja/komedia/dramat/horror), czy lubi filmy zagraniczne (bool). Na podstawie kryteriów zaproponuj konkretny film.