Liceum Klasa I 45 minut PP: II.1 | s. 343

Lekcja 9: Wyrazenia arytmetyczne i logiczne w programowaniu

Operatory arytmetyczne, porownania, logika, tabele prawdy

📋 Podstawa programowa: II.1
andnotoperatoryorprogramowaniewyrazenia
00:00
Wprowadzenie
3 min
00:03
Teoria
20 min
00:23
Cwiczenia
17 min
00:40
Podsumowanie
5 min
📚

Teoria

Operatory arytmetyczne

Python udostepnia nastepujace operatory do dzialan matematycznych:

Operator  | Opis                  | Przyklad       | Wynik
----------+-----------------------+----------------+------
   +      | Dodawanie             | 7 + 3          | 10
   -      | Odejmowanie           | 7 - 3          | 4
   *      | Mnozenie              | 7 * 3          | 21
   /      | Dzielenie (float)     | 7 / 3          | 2.3333...
   //     | Dzielenie calkowite   | 7 // 3         | 2
   %      | Reszta z dzielenia    | 7 % 3          | 1
   **     | Potegowanie           | 2 ** 10        | 1024
Roznica miedzy / a //: Operator / zawsze zwraca float (np. 10/2 = 5.0), natomiast // zwraca wynik dzielenia calkowitego (obcina czesc ulamkowa, np. 7//3 = 2).

Operator modulo (%) - reszta z dzielenia

Operator % to jeden z najwazniejszych operatorow w programowaniu. Zwraca reszte z dzielenia:

# Zastosowania modulo
print(10 % 3)   # 1  (10 = 3*3 + 1)
print(15 % 5)   # 0  (15 = 5*3 + 0)
print(17 % 4)   # 1  (17 = 4*4 + 1)

# Sprawdzanie parzystosci
liczba = 42
if liczba % 2 == 0:
    print("Parzysta")   # Wyswietli sie
else:
    print("Nieparzysta")

# Sprawdzanie podzielnosci
if 15 % 3 == 0:
    print("15 dzieli sie przez 3")  # TAK

# Wyciaganie ostatniej cyfry
print(1234 % 10)   # 4 (ostatnia cyfra)

Kolejnosc wykonywania dzialan

Python przestrzega standardowej kolejnosci dzialan matematycznych (PEMDAS):

  1. ( ) - nawiasy (najwyzszy priorytet)
  2. ** - potegowanie
  3. +x, -x - jednoargumentowe plus/minus
  4. *, /, //, % - mnozenie, dzielenie, modulo
  5. +, - - dodawanie, odejmowanie (najnizszy)
# Przyklady kolejnosci dzialan
print(2 + 3 * 4)      # 14 (nie 20!)
print((2 + 3) * 4)    # 20
print(2 ** 3 ** 2)     # 512 (= 2^9, potegowanie od prawej!)
print(10 - 2 * 3 + 1)  # 5
print(10 // 3 % 2)     # 1 (10//3=3, 3%2=1)

Operatory porownania (relacyjne)

Zwracaja wartosc logiczna True lub False:

Operator  | Opis                  | Przyklad    | Wynik
----------+-----------------------+-------------+------
   ==     | Rowne                 | 5 == 5      | True
   !=     | Rozne                 | 5 != 3      | True
   >      | Wieksze               | 5 > 3       | True
   <      | Mniejsze              | 5 < 3       | False
   >=     | Wieksze lub rowne     | 5 >= 5      | True
   <=     | Mniejsze lub rowne    | 5 <= 3      | False
Uwaga! Nie mylmy = (przypisanie) z == (porownanie)!
x = 5 - przypisz wartosc 5 do zmiennej x
x == 5 - sprawdz, czy x jest rowne 5

Operatory logiczne (boolean)

Sluza do laczenia warunki logicznych:

Operator  | Opis        | Przyklad
----------+-------------+-----------------------------
  and     | Koniunkcja  | True and True -> True
          | (i)         | True and False -> False
  or      | Alternatywa | False or True -> True
          | (lub)       | False or False -> False
  not     | Negacja     | not True -> False
          | (nie)       | not False -> True

Tabele prawdy

    A     |    B     |  A and B  |  A or B  |  not A
----------+----------+-----------+----------+--------
  True    |  True    |   True    |   True   | False
  True    |  False   |   False   |   True   | False
  False   |  True    |   False   |   True   | True
  False   |  False   |   False   |   False  | True

Przyklady wyrazen logicznych

wiek = 17
ocena = 4.5
obecnosc = True

# Polaczone warunki
print(wiek >= 18 and ocena > 4.0)     # False (bo wiek < 18)
print(wiek >= 16 or ocena > 5.0)      # True (bo wiek >= 16)
print(not (wiek < 15))                 # True (bo wiek nie < 15)

# Sprawdzanie zakresu
x = 15
print(10 <= x <= 20)                   # True (Python pozwala!)
# To samo co:
print(x >= 10 and x <= 20)            # True

# Praktyczny przyklad
zdal_egzamin = ocena >= 3.0 and obecnosc
print(f"Zdal egzamin: {zdal_egzamin}")  # True

Przypisanie rozszerzone

# Skrocone operatory przypisania
x = 10
x += 5    # x = x + 5  -> 15
x -= 3    # x = x - 3  -> 12
x *= 2    # x = x * 2  -> 24
x /= 4    # x = x / 4  -> 6.0
x //= 2   # x = x // 2 -> 3.0
x %= 2    # x = x % 2  -> 1.0
x **= 3   # x = x ** 3 -> 1.0
✏️

Zadania

Latwe

Zadanie 1: Obliczanie wyrazen

Oblicz (bez komputera!) wartosc nastepujacych wyrazen w Pythonie, a potem sprawdz w interpreterze:
a) 15 // 4
b) 15 % 4
c) 2 ** 3 + 4 * 2
d) 20 / 3 // 2
e) (10 + 5) % 7
f) 3 ** 2 ** 1

Pokaz przykladowe rozwiazanie
a) 15 // 4 = 3       (dzielenie calkowite)
b) 15 % 4 = 3       (reszta: 15 = 4*3 + 3)
c) 2**3 + 4*2 = 8 + 8 = 16  (potega przed mnozeniem)
d) 20/3//2 = 6.666...//2 = 3.0  (od lewej do prawej)
e) (10+5) % 7 = 15 % 7 = 1
f) 3 ** 2 ** 1 = 3 ** 2 = 9  (potegowanie od prawej)
Latwe

Zadanie 2: Wyrazenia logiczne

Okresl wartosc (True/False) nastepujacych wyrazen dla x=10, y=5, z=3:
a) x > y and y > z
b) x < y or z == 3
c) not (x == 10)
d) x >= 10 and y <= 5 and z != 0
e) not (x > y and y > z) or z < 1

Pokaz przykladowe rozwiazanie
x=10, y=5, z=3

a) 10 > 5 and 5 > 3 = True and True = True
b) 10 < 5 or 3 == 3 = False or True = True
c) not (10 == 10) = not True = False
d) 10 >= 10 and 5 <= 5 and 3 != 0
   = True and True and True = True
e) not (True and True) or 3 < 1
   = not True or False = False or False = False
Srednie

Zadanie 3: Wyciaganie cyfr z liczby

Napisz program, ktory pobiera trzycyfrowa liczbe calkowita i wyswietla osobno: cyfre jednosci, dziesiatek i setek. Uzyj operatorow // i %.

Pokaz przykladowe rozwiazanie
liczba = int(input("Podaj trzycyfrowa liczbe: "))

jednosci = liczba % 10
dziesiatki = (liczba // 10) % 10
setki = liczba // 100

print(f"Liczba: {liczba}")
print(f"Cyfra jednosci:   {jednosci}")
print(f"Cyfra dziesiatek: {dziesiatki}")
print(f"Cyfra setek:      {setki}")
print(f"Suma cyfr: {jednosci + dziesiatki + setki}")

# Odwrocona liczba
odwrocona = jednosci * 100 + dziesiatki * 10 + setki
print(f"Odwrocona: {odwrocona}")
Trudne

Zadanie 4: Generator tabel prawdy

Napisz program, ktory generuje pelna tabele prawdy dla wyrazenia: (A and B) or (not A and C). Wyswietl wszystkie 8 kombinacji (A, B, C moga byc True lub False).

Pokaz przykladowe rozwiazanie
# Generator tabeli prawdy
print(f"{'A':>6} {'B':>6} {'C':>6} | {'Wynik':>6}")
print("-" * 32)

for a_val in [True, False]:
    for b_val in [True, False]:
        for c_val in [True, False]:
            wynik = (a_val and b_val) or (not a_val and c_val)
            print(f"{str(a_val):>6} {str(b_val):>6} {str(c_val):>6} | {str(wynik):>6}")

# Wynik:
#      A      B      C | Wynik
# --------------------------------
#   True   True   True |   True
#   True   True  False |   True
#   True  False   True |  False
#   True  False  False |  False
#  False   True   True |   True
#  False   True  False |  False
#  False  False   True |   True
#  False  False  False |  False
🎥

Materialy wideo

Zrozumieć bramki logiczne - NOT, AND, OR, XOR
Kanał o Wszystkim
Jak napisać program Half Adder, wykorzystując modelowanie behawioralne? || S Vijay Murugan || Lea...
LEARN THOUGHT
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 8: Zmienne i typy danych Lekcja 10: Instrukcje warunkowe →