|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
Zawsze zadziwia nas "inteligencja" komputerów. Potrafią obsługiwać maszyny, kierować samolotami, grać w gry... Jak to robią? Dzieje się tak za sprawą logiki. Słowo logika pochodzi od greckiego słowa λόγος (logos – słowo, rozum, myśl). Jest ona ważną częścią matematyki. Została wprowadzona do nauki już przez starożytnych Greków.

Jest to nauka o poprawnym rozumowaniu, którą matematyka wykorzystuje do udowadniania swoich twierdzeń. Bez logiki nie byłoby współczesnej nauki.
W logice mamy dwie wartości: prawdę (ang. true) i fałsz (ang. false). Wartości logiczne idealnie nadają się dla komputerów, ponieważ przetwarzany przez nie bit posiada dwa różne stany i łatwo zatem przypisać mu wartość fałszu (0) lub prawdy (1).
Uruchom poniższy program:
W oknie konsoli zostanie wyświetlony tekst:
FAŁSZ: False PRAWDA: True |
W języku Python mamy dwie stałe logiczne: False o wartości 0 i True o wartości 1. Zmodyfikuj program:
FAŁSZ = 0 PRAWDA = 1 |
Tutaj funkcja int( ) przekształca wartość logiczną w liczbę całkowitą. Otrzymujemy zatem wartości liczbowe stałych False i True, które możemy wyświetlić.
Uruchom program:
W programie tworzymy zmienną a, po czym odczytujemy z konsoli tekst, zamieniamy go na liczbę całkowitą i umieszczamy ją w zmiennej. Następnie wyświetlamy wartość wyrażenia a > 10. W wyrażeniu tym mamy operator porównania >. Jest to operator logiczny, czyli taki, który zwraca w wyniku prawdę (1), jeśli nierówność jest spełniona, lub fałsz (0), jeśli nierówność nie jest spełniona. Zatem, jeśli wprowadzisz np. liczbę 5 nierówność nie będzie spełniona i komputer wypisze:
Podaj wartość a = 5 a > 10? : False |
Jeśli wpiszesz np. liczbę 12, komputer wypisze:
Podaj wartość a = 12 a > 10? : True |
Operatory porównań w języku Python są następujące:
| Operator | Przykład | Opis |
| > | a > b | Zwraca True, jeśli
a jest większe od b, zwraca False w przypadku przeciwnym. |
| < | a < b | Zwraca True, jeśli
a jest
mniejsze od b, zwraca False w przypadku przeciwnym. |
| == | a==b | Zwraca True, jeśli
a jest równe b, zwraca False w przypadku przeciwnym. |
| != | a != b | Zwraca True, jeśli
a jest różne od b, zwraca False w przypadku przeciwnym. |
| >= | a >= b | Zwraca True, jeśli
a jest większe lub
równe b, zwraca False w przypadku przeciwnym. |
| <= | a <= b | Zwraca True, jeśli
a jest mniejsze lub
równe b, zwraca False w przypadku przeciwnym. |
W powyższej tabelce a i b mogą być zmiennymi lub dowolnymi wyrażeniami, np. a + 5 < b - 11.
Wartość logiczną można umieszczać w zmiennej przy pomocy operatora przypisania =:
Zawartość a: True Zawartość b: False Zawartość a: False Zawartość b: True |
Jeśli chcemy wykonać warunkowo tylko jedną instrukcję, to stosujemy następującą składnię:
if warunek: instrukcja
Działa to w następujący sposób:
Komputer wyznacza wartość logiczną warunku. Jeśli wartością jest True (lub dowolna wartość różna od 0), to zostanie wykonana instrukcja po dwukropku. Jeśli wartością jest False (lub wartość 0), to komputer nie wykona tej instrukcji.
Uruchom program:
Witaj 1 Witaj 2 Wpisz liczbę: 4 Witaj 3 |
Witaj 1 Witaj 2 Wpisz liczbę: -12 Witaj 4 |
Kolejny program jest bardziej praktyczny. Odczytuje on liczbę i sprawdza, czy jest parzysta:
Przeanalizujmy go:
Wynika z tego, iż jeśli a jest nieparzyste, to komputer wypisze NIE, po czym wypisze słowo PARZYSTA bezpośrednio za NIE, co da wydruk NIEPARZYSTA. Jeśli a jest parzyste, to komputer nie wyświetli słowa NIE, tylko samo słowo PARZYSTA.
Kolejny prosty program ogranicza wartość wprowadzonej liczby do przedziału od 1 do 10. Jeśli wprowadzona liczba jest większa od 10, to zmienia ją na 10. Podobnie, jeśli wprowadzona liczba jest mniejsza od 1, to zmienia ją na 1. Jeśli liczba znajduje się w przedziale od 1 do 10, to nie jest zmieniana:
Następny program odczytuje 3 liczby do zmiennych a, b i c, po czym szuka liczby największej. Do tego celu wykorzystuje zmienną pomocniczą x, w której umieszcza kolejne liczby większe:
Jeśli warunkowo chcemy wykonać więcej niż pojedynczą instrukcję, to musimy zastosować blok. W języku Python blok określamy przy pomocy odstępu. Instrukcje należące do tego samego bloku posiadają taki sam odstęp od lewej krawędzi. Na początku może się to wydawać dziwne, lecz jest bardzo proste. Odstępy zwykle ustala się co 4 lub co 2 pozycje znakowe. Instrukcja warunkowa z blokiem wygląda następująco:
Poniższy program odczytuje 2 liczby do zmiennych a i b. Następnie sprawdza, czy a < b. Jeśli tak, to zamienia te liczby miejscami i wyświetla wynik w kolejności liczba mniejsza, liczba większa lub równa.
W wielu różnych algorytmach występuje operacja zamiany zawartości dwóch zmiennych. Wymaga ona trzech kroków oraz dodatkowej zmiennej pomocniczej.
Powyższa animacja pokazuje kolejne kroki (w języku Python można to zrobić prościej, co zobaczymy na dalszych lekcjach).
Załóżmy iż mamy dwie zmienne a i b, których zawartość chcemy zamienić miejscami, tzn. w zmiennej a ma się znaleźć to, co jest w zmiennej b, a w zmiennej b ma się znaleźć to, co jest w zmiennej a. Tworzymy dodatkową zmienną pomocniczą x i wykonujemy trzy poniższe kroki:
K01: x ← a K02: a ← b K03: b ← x
W kroku 1 wpisujemy do zmiennej x zawartość
zmiennej a. W ten sposób ta zawartość zostaje zabezpieczona.
W kroku 2 do zmiennej a wpisujemy zawartość zmiennej
b, mamy zatem
wykonane połowę zadania.
W kroku 3 wpisujemy do zmiennej b
zapamiętaną w
x poprzednią zawartość
zmiennej a.
W programowaniu często zdarza się tak, iż sprawdzając warunek, chcemy aby została wykonana jedna instrukcja (lub grupa instrukcji), jeśli warunek jest prawdziwy, a inna instrukcja (lub grupa instrukcji), gdy warunek jest fałszywy. W takim przypadku ma zastosowanie druga wersja instrukcji if. Jej składnia jest następująca:
Słowo angielskie else oznacza: inaczej, w przeciwnym razie.
Komputer oblicza warunek. Jeśli jest prawdziwy (daje wynik różny od zera), to wykonana zostaje instrukcja 1 (lub blok 1). Instrukcja 2 (lub blok 2) jest pomijana. Jeśli warunek jest fałszywy (daje wynik równy zero), to instrukcja 1 (lub blok 1) zostaje pominięta, a komputer wykona instrukcję 2 (lub blok 2).
Jeśli stosujemy blok, to należy stosować ten sam odstęp w obu blokach 1 i 2.
Poniższy przykładowy program odczytuje hasło i udziela dostępu, jeśli hasło jest dobre, lub odmawia dostępu przy złym haśle.
Program działa następująco:
Jako wyrażenie stosujemy porównanie tekstu zwróconego przez input( ) z tekstem hasła. Jeśli oba teksty są równe, wyrażenie będzie prawdziwe. Wtedy zostanie wykonany blok pierwszy. Komputer wypisze "Masz dostęp" i zmiennej dostęp nada wartość True. Blok drugi zostanie pominięty,
Jeśli teksty będą różne, komputer wykona blok drugi, pomijając blok pierwszy. Wypisze "Brak dostępu" i zmiennej dostęp nada wartość False.
Na koniec komputer wypisze wartość zmiennej dostęp.
W jednym wierszu można umieścić kilka instrukcji, oddzielając je średnikami:
Jednakże nie polecam tego sposobu, gdyż program traci na czytelności.
Następny program rozwiązuje równanie liniowe o postaci:
Z matematyki wiemy, że takie równanie posiada rozwiązanie, jeśli współczynnik a jest różny od 0. Wtedy:
Zastanów się, jak zmienić powyższy program na wersje if bez bloków z pojedynczymi instrukcjami i bez zmiennej x.
Trzecia wersja instrukcji if ma następującą postać:
Działanie jest następujące:
Jeśli warunkowo chcesz wykonać kilka instrukcji, to stosujesz blok instrukcji z odstępem.
Poniższy program odczytuje ocenę w postaci liczby od 1 do 6, a następnie wyznacza jej formę słowną:
W wyrażeniach logicznych występują operacje logiczne, podobnie jak w wyrażeniach arytmetycznych występują operacje arytmetyczne (np. dodawanie, mnożenie...). Istnieje specjalny dział matematyki, zwany Algebrą Boole'a. Nazwa ta pochodzi od sławnego matematyka angielskiego George Boole'a, który ją opracował i opisał.
W logice istnieją trzy podstawowe funkcje logiczne. Opiszemy je tabelkami.
| a | not a |
| False | True |
| True | False |
Negacja jest operacją jednoargumentową. Zwraca wartość logiczną przeciwną do wartości logicznej swojego argumentu. W języku Python negację wykonuje operator not(czytaj: nieprawda, że). Wyrażenie a jest dowolnym wyrażeniem, które zostanie potraktowane jako logiczne (patrz: definicja na początku podrozdziału). Jeśli wyrażenie a będzie prawdziwe (True lub różne od zera), to wynikiem not a będzie False (fałsz). Jeśli wyrażenie a będzie fałszywe (False lub równe zero), to wynikiem not a będzie True (prawda).
Przejdź do konsoli Pythona i wpisz:
| a | b | a or b |
| False | False | False |
| False | True | True |
| True | False | True |
| True | True | True |
Alternatywa jest operacją dwuargumentową. Symbolem operatora alternatywy w języku Python jest or (czytaj: lub). Zasada pracy jest następująca:
a or b
= a, jeśli a jest prawdziwe
(True lub niezerowe)
a or b =
b, jeśli a jest fałszywe
(False lub równe 0)
Przejdź do konsoli Pythona i wpisz:
| a | b | a and b |
| False | False | False |
| False | True | False |
| True | False | False |
| True | True | True |
Koniunkcja jest również operacją dwuargumentową. Symbolem operatora koniunkcji w języku Python jest and (czytaj: i). Zasada pracy jest następująca:
Przejdź do konsoli Pythona i wpisz:
Jeśli chcesz, aby wynik operatorów logicznych był wartością logiczną True lub False, to zastosuj funkcję bool( ), która dokonuje takiej konwersji. Przejdź do konsoli Pythona i wpisz:
Operatory logiczne stosujemy, gdy potrzebne są nam złożone warunki, np. chcemy sprawdzić, czy liczba x należy do przedziału domkniętego [a,b] (przedział domknięty [a,b] to taki, do którego należą liczby a i b oraz wszystkie liczby leżące pomiędzy a i b). Aby liczba x wpadała w przedział [a,b] musi jednocześnie spełniać dwa warunki:

Przejdź do konsoli Pythona i wpisz:
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.