Pętle (iteracje) to instrukcje pozwalające wielokrotnie powtarzać fragment kodu. Zamiast pisać ten sam kod setki razy, używamy pętli, która wykona go automatycznie tyle razy, ile potrzeba.
Dwa rodzaje pętli w Pythonie:
- for – gdy wiesz ile razy chcesz powtórzyć kod (iteracja po kolekcji)
- while – gdy powtarzasz dopóki warunek jest prawdziwy
Pętla for…
for element in kolekcja:
# kod do wykonania dla każdego elementu
Jak to działa:
- Python przechodzi przez każdy element kolekcji
- W każdej iteracji element jest przypisywany do zmiennej
- Wykonywany jest kod w bloku (z wcięciem)
Funkcja range()
Funkcja range() generuje sekwencję liczb – często używana z pętlą for.
range(stop) – od 0 do stop-1
# Liczby od 0 do 9
for i in range(10):
print(i, end=", ")
# Wynik: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
range(start, stop) – od start do stop-1
# Liczby od 5 do 9
for i in range(5, 10):
print(i, end=", ")
# Wynik: 5, 6, 7, 8, 9,
range(start, stop, step) – z krokiem
# Liczby nieparzyste od 1 do 10
for i in range(1, 11, 2):
print(i, end=", ")
# Wynik: 1, 3, 5, 7, 9,
# Liczby parzyste
for i in range(0, 11, 2):
print(i, end=", ")
# Wynik: 0, 2, 4, 6, 8, 10,
range() z ujemnym krokiem
# Odliczanie w dół
for i in range(10, 0, -1):
print(i, end=", ")
# Wynik: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
Pętla for z listami
Iteracja po elementach
lista = ["element1", 10, 22.4, [1, 2, 3]]
for element in lista:
print("Element listy:", element)
Wynik:
Element listy: element1
Element listy: 10
Element listy: 22.4
Element listy: [1, 2, 3]
Iteracja z indeksem
owoce = ["jabłko", "banan", "gruszka"]
# Metoda 1: enumerate()
for index, owoc in enumerate(owoce):
print(f"{index}: {owoc}")
# Wynik:
# 0: jabłko
# 1: banan
# 2: gruszka
# Metoda 2: range() z len()
for i in range(len(owoce)):
print(f"{i}: {owoce[i]}")
Pętla for z krotkami
foods = ('Pizza', 'Burgers', 'Kebab')
for food in foods:
print("Food is:", food)
Wynik:
Food is: Pizza
Food is: Burgers
Food is: Kebab
Pamiętaj: Krotki są niemutowalne – nie możesz ich zmienić wewnątrz pętli.
Pętla for ze stringami
word = "Python"
for letter in word:
print(letter)
Wynik:
P
y
t
h
o
n
Przykład – zliczanie liter
text = "Uwielbiam Python!"
licznik_spacji = 0
for znak in text:
if znak == " ":
licznik_spacji += 1
print(f"Liczba spacji: {licznik_spacji}")
Pętla for ze słownikami
Iteracja po kluczach
osoba = {
"name": "Kama",
"surname": "Kaczmarek",
"mail": "kamakaczmarek@zse-zdwola.pl"
}
# Domyślnie iteracja po kluczach
for key in osoba:
print(key)
# Lub jawnie
for key in osoba.keys():
print(key)
Wynik
name
surname
mail
Iteracja po wartościach
osoba = {
"name": "Kama",
"surname": "Kaczmarek",
"mail": "kamakaczmarek@zse-zdwola.pl"
}
for value in osoba.values():
print(value)
Wynik
Kama
Kaczmarek
kamakaczmarek@zse-zdwola.pl
Iteracja po kluczach i wartościach
osoba = {
"name": "Kama",
"surname": "Kaczmarek",
"mail": "kamakaczmarek@zse-zdwola.pl"
}
for key, value in osoba.items():
print(f"{key}: {value}")
Wynik
name: Kama
surname: Kaczmarek
mail: kamakaczmarek@zse-zdwola.pl
Przykład – filtrowanie słownika
users = {
"Anna": "active",
"Jakub": "inactive",
"Kasia": "inactive",
"Robert": "active",
}
# Tworzymy nowy słownik tylko z aktywnymi użytkownikami
active_users = {}
for user, status in users.items():
if status == "active":
active_users[user] = status
print(active_users)
# {'Anna': 'active', 'Robert': 'active'}
Pętla for z input()
menu = ['Pizza', 'Burger', 'Fish']
for food in menu:
if food == 'Pizza':
pizza_type = input("Jaki rodzaj pizzy chcesz? ")
size = input("Jaki rozmiar? ")
print(f"Zamówiłeś {size} pizzę {pizza_type}")
else:
print(f"Wybrałeś: {food}")
Zagnieżdżone pętle for
Przykład – tabliczka mnożenia
print("TABLICZKA MNOŻENIA")
print()
for i in range(1, 11):
for j in range(1, 11):
wynik = i * j
print(f"{wynik:4}", end="") # :4 wyrównuje do 4 znaków
print() # Nowa linia po każdym wierszu
Przykład – trójkąt z gwiazdek
# Trójkąt prostokątny
x = 5
for i in range(x):
print("*" * (i + 1))
Wynik
*
**
***
****
*****
Przykład – trójkąt równoboczny
x = 5
for w in range(x):
# Spacje
for s in range(x - w - 1):
print(" ", end="")
# Gwiazdki
for g in range(2 * w + 1):
print("*", end="")
print() # Nowa linia
Wynik
*
***
*****
*******
*********
Przykłady praktyczne z for
Przykład 1: 100 kolejnych liczb
print("Liczby od 3 do 102:")
for i in range(3, 103):
if i < 102:
print(i, end=", ")
else:
print(i) # Ostatnia bez przecinka
Przykład 2: Silnia
n = 5
silnia = 1
for i in range(2, n + 1):
silnia *= i
print(f"{n}! = {silnia}")
# 5! = 120
Przykład 3: Ciąg Fibonacciego
n = 10
if n <= 2:
print(f"{n} elementem ciągu Fibonacciego jest 1")
else:
f1 = 0
f2 = 1
print("Ciąg Fibonacciego:", end=" ")
print(f1, f2, end=", ")
for i in range(2, n):
fn = f1 + f2
print(fn, end=", ")
f1 = f2
f2 = fn
print(f"\n{n} elementem ciągu jest {f2}")
Pętle while…
Pętla while wykonuje kod dopóki warunek jest prawdziwy.
Korzystając z pętli while musimy uważać, żeby nie pominąć warunku zatrzymania pętli. Jeżeli tego nie zrobimy, pętla będzie wykonywała się w nieskończoność.
Działanie pętli: dopóki warunek jest spełniony, wykonuj akcję i zwiększ o…
while warunek:
# kod do wykonania
# WAŻNE: zmień zmienną by warunek kiedyś był False!
Prosty przykład
i = 0
while i < 10:
print(i, end=", ")
i += 1 # WAŻNE - zwiększamy i!
# Wynik: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
Nieskończona pętla (BŁĄD)
# ŹLE - NIESKOŃCZONA PĘTLA!
i = 0
while i < 10:
print(i)
# Brak i += 1 - pętla nigdy się nie zatrzyma!
Jak zatrzymać: Ctrl+C (Windows/Linux) lub Cmd+C (Mac)
Przykłady praktyczne z while
Przykład 1: Liczby mniejsze od x
x = 10
licznik = 0
print(f"Liczby całkowite mniejsze od {x}:")
while licznik < x:
print(licznik)
licznik += 1
Przykład 2: Napisz skrypt wyznaczający NWD (największy wspólny dzielnik).
a = 48
b = 18
print(f"Szukamy NWD dla {a} i {b}")
while a != b:
if a > b:
a -= b
else:
b -= a
nwd = a # lub b - obie zmienne są równe
print(f"NWD = {nwd}")
Przykład 3: Napisz skrypt wyświetlający ciąg Fibonacciego
a, b = 0, 1
print("Ciąg Fibonacciego do 100:")
while a < 100:
print(a, end=" ")
a, b = b, a + b
print()
Przykład 4: Zgadywanie liczby
sekret = 42
proba = 0
while proba != sekret:
proba = int(input("Zgadnij liczbę: "))
if proba < sekret:
print("Za mało!")
elif proba > sekret:
print("Za dużo!")
else:
print("Brawo! Zgadłeś!")
Zatrzymywanie pętli i skryptu
Działanie pętli lub skryptu możemy przerwać w dowolnej chwili lub możemy pominąć część instrukcji do wykonania:
- instrukcja continue; powoduje przeskoczenie do następnego obiegu pętli
- instrukcja break; powoduje natychmiastowe wyjście z pętli
Przerywanie działania pętli za pomocą instrukcji break;
Przykład z for
for i in range(1, 101):
print(i)
if i >= 10:
break
print("Pętla zakończona")
Wynik
1
2
3
4
5
6
7
8
9
10
Pętla zakończona
Przykład z while
i = 0
while True: # Nieskończona pętla
print(i)
i += 1
if i >= 5:
break # Wychodzimy z pętli
print("Zakończono")
Praktyczny przykład – wyszukiwanie w liście
liczby = [10, 23, 5, 67, 89, 3, 45]
szukana = 67
for liczba in liczby:
if liczba == szukana:
print(f"Znaleziono {szukana}!")
break
else:
# else wykonuje się gdy pętla NIE została przerwana przez break
print(f"Nie znaleziono {szukana}")
Przeskok do następnej iteracji (obiegu pętli) za pomocą instrukcji continue;
Przykład – tylko liczby parzyste
for i in range(1, 11):
if i % 2 != 0:
continue # Pomiń nieparzyste
print(i, end=", ")
# Wynik: 2, 4, 6, 8, 10,
Przykład – pomijanie wartości None
dane = [10, None, 20, None, 30, 40]
for element in dane:
if element is None:
continue # Pomiń None
print(element * 2)
# Wynik:
# 20
# 40
# 60
# 80
Przykład – filtrowanie listy
liczby = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("Liczby większe od 5:")
for liczba in liczby:
if liczba <= 5:
continue
print(liczba, end=" ")
# Wynik: 6 7 8 9 10
List Comprehension – skrócona konstrukcja listy
List comprehension to zwięzły i szybki sposób tworzenia listy na podstawie istniejącej sekwencji (listy, range, string, generatora itp.).
Podstawowa składnia
[nowy_element for element in kolekcja]
Przykład 1 — Kwadraty liczb
# Tradycyjna metoda
kwadraty = []
for x in range(5):
kwadraty.append(x * x)
print(kwadraty) # [0, 1, 4, 9, 16]
# List comprehension
kwadraty = [x * x for x in range(5)]
print(kwadraty) # [0, 1, 4, 9, 16]
Przykład 2 — z warunkiem (filtrowanie)
# Tylko liczby parzyste
parzyste = [x for x in range(10) if x % 2 == 0]
print(parzyste) # [0, 2, 4, 6, 8]
# Tylko dodatnie
liczby = [-5, 3, -1, 7, -2, 8]
dodatnie = [x for x in liczby if x > 0]
print(dodatnie) # [3, 7, 8]
Przykład 3 — z funkcją
# Długości słów
words = ["python", "lista", "comprehension"]
lengths = [len(w) for w in words]
print(lengths) # [6, 5, 12]
# Wielkie litery
wyrazy = ["ala", "ma", "kota"]
wielkie = [w.upper() for w in wyrazy]
print(wielkie) # ['ALA', 'MA', 'KOTA']
Przykład 4 — zagnieżdżone pętle
# Pary liczb
pairs = [(x, y) for x in range(3) for y in range(3)]
print(pairs)
# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# Tabliczka mnożenia (fragment)
mnozenie = [(x, y, x * y) for x in range(1, 4) for y in range(1, 4)]
print(mnozenie)
# [(1, 1, 1), (1, 2, 2), (1, 3, 3), (2, 1, 2), ...]
Przykład 5: If-else w comprehension
# "parzysta" lub "nieparzysta"
liczby = [1, 2, 3, 4, 5]
opis = ["parzysta" if x % 2 == 0 else "nieparzysta" for x in liczby]
print(opis)
# ['nieparzysta', 'parzysta', 'nieparzysta', 'parzysta', 'nieparzysta']
Dict Comprehension – tworzenie słownika
Dict comprehension działa podobnie jak list comprehension, ale tworzy słownik (dict).
Podstawowa składnia
{klucz: wartosc for element in kolekcja}
Przykład 1 — słownik kwadratów
kwadraty = {x: x * x for x in range(6)}
print(kwadraty)
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Przykład 2 — filtr w dict comprehension
# Tylko parzyste
parzyste_kwadraty = {x: x * x for x in range(10) if x % 2 == 0}
print(parzyste_kwadraty)
# {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
Przykład 3 — odwracanie słownika
original = {"a": 1, "b": 2, "c": 3}
odwrocony = {v: k for k, v in original.items()}
print(odwrocony)
# {1: 'a', 2: 'b', 3: 'c'}
Przykład 4 — Długości słów
words = ["python", "dict", "comprehension"]
lengths = {word: len(word) for word in words}
print(lengths)
# {'python': 6, 'dict': 4, 'comprehension': 12}
Przykład 5 – Lambda
words = ["python", "lambda", "map"]
lengths = {w: (lambda x: len(x))(w) for w in words}
print(lengths)
# {'python': 6, 'lambda': 6, 'map': 3}
Set Comprehension
# Zestaw kwadratów
kwadraty = {x * x for x in range(-5, 6)}
print(kwadraty)
# {0, 1, 4, 9, 16, 25} - duplikaty automatycznie usunięte
Porównanie: pętla vs comprehension
Wydajność
import time
# Pętla tradycyjna
start = time.time()
lista1 = []
for i in range(1000000):
lista1.append(i * i)
czas1 = time.time() - start
# List comprehension
start = time.time()
lista2 = [i * i for i in range(1000000)]
czas2 = time.time() - start
print(f"Pętla: {czas1:.4f}s")
print(f"Comprehension: {czas2:.4f}s")
# Comprehension jest zazwyczaj szybsze!
Zadania do samodzielnego wykonania:
Podstawy pętli for z range()
- Wyświetl liczby od 0 do 20 używając pętli for i funkcji range().
- Wyświetl liczby od 10 do 20 (włącznie) używając pętli for.
- Wyświetl liczby parzyste od 0 do 20 używając pętli for z odpowiednim krokiem w range().
- Wyświetl liczby od 20 do 1 (odliczanie w dół) używając pętli for.
- Wyświetl co trzecią liczbę z zakresu od 0 do 30 (0, 3, 6, 9…).
- Oblicz sumę liczb od 1 do 100 używając pętli for.
- Oblicz iloczyn liczb od 1 do 10 używając pętli for.
- Wyświetl tabliczkę mnożenia dla liczby 7 (od 7×1 do 7×10).
- Policz ile jest liczb podzielnych przez 3 w zakresie od 1 do 50.
- Wyświetl wszystkie liczby nieparzyste od 1 do 30 w jednej linii, oddzielone przecinkami.
Pętla for z listami
- Stwórz listę 5 swoich ulubionych filmów. Użyj pętli for aby wyświetlić każdy film z numerem (1. Film1, 2. Film2 itd.).
- Stwórz listę liczb [2, 4, 6, 8, 10]. Wyświetl każdą liczbę pomnożoną przez 3.
- Pobierz od użytkownika 5 imion (w pętli) i zapisz je do listy. Następnie wyświetl wszystkie imiona.
- Stwórz listę liczb [10, 20, 30, 40, 50]. Oblicz średnią arytmetyczną tych liczb używając pętli.
- Stwórz listę miast [„Warszawa”, „Kraków”, „Gdańsk”]. Wyświetl tylko te miasta, które mają więcej niż 6 liter.
- Mając listę [1, 2, 3, 4, 5], stwórz nową listę zawierającą kwadraty tych liczb (używając zwykłej pętli, nie comprehension).
- Stwórz listę temperatur w ciągu tygodnia. Policz ile dni temperatura była powyżej 20 stopni.
- Mając listę zakupów [„mleko”, „chleb”, „masło”, „jajka”], wyświetl każdy produkt z ceną (ceny wymyśl sam).
- Stwórz dwie listy z imionami. Sprawdź które imiona występują w obu listach.
- Stwórz listę liczb. Znajdź największą i najmniejszą liczbę używając pętli (bez funkcji max/min).
Pętla for ze stringami
- Pobierz od użytkownika zdanie. Policz ile jest w nim liter 'a’ (małych i wielkich).
- Pobierz słowo od użytkownika. Wyświetl każdą literę w osobnej linii wraz z jej numerem pozycji.
- Stwórz zmienną z tekstem „Python”. Wyświetl ten tekst pionowo (każda litera w nowej linii).
- Pobierz zdanie od użytkownika. Policz ile jest w nim samogłosek (a, e, i, o, u, y).
- Pobierz słowo od użytkownika. Sprawdź czy jest palindromem (czytane od przodu i tyłu tak samo, np. „kajak”).
- Stwórz hasło z podanego tekstu biorąc co drugą literę.
- Pobierz zdanie. Zamień wszystkie spacje na podkreślniki używając pętli.
- Pobierz tekst. Policz ile jest w nim cyfr.
- Pobierz imię i nazwisko. Stwórz inicjały (np. Jan Kowalski → J.K.).
- Pobierz zdanie. Wyświetl je od tyłu (ostatnia litera jako pierwsza).
Pętla for ze słownikami
- Stwórz słownik z 3 produktami i ich cenami. Wyświetl każdy produkt z ceną w formacie „Produkt: X zł”.
- Stwórz słownik z ocenami z przedmiotów (np. {„matematyka”: 5, „polski”: 4}). Oblicz średnią ocen.
- Mając słownik użytkowników ze statusami, wyświetl tylko tych użytkowników którzy mają status „active”.
- Stwórz słownik produktów z cenami. Podnieś każdą cenę o 10% i wyświetl nowy słownik.
- Stwórz słownik z imionami i wiekami. Wyświetl imiona osób pełnoletnich (wiek >= 18).
- Mając słownik angielsko-polski, pozwól użytkownikowi wpisać słowo angielskie i wyświetl tłumaczenie.
- Stwórz słownik miast z liczbą mieszkańców. Znajdź miasto z największą liczbą mieszkańców.
- Stwórz słownik z nazwami plików i ich rozszerzeniami. Policz ile jest plików każdego typu.
- Stwórz dwa słowniki i znajdź wspólne klucze.
- Stwórz słownik punktów graczy. Wyświetl ranking od najwyższego do najniższego wyniku.
Zagnieżdżone pętle for
- Wyświetl tabliczkę mnożenia od 1 do 10 (dla każdej liczby od 1 do 10).
- Narysuj kwadrat 5×5 z gwiazdek używając zagnieżdżonych pętli.
- Narysuj prostokąt o wymiarach podanych przez użytkownika (szerokość × wysokość) z symbolu „#”.
- Stwórz choinkę z gwiazdek o wysokości podanej przez użytkownika.
- Wyświetl wszystkie pary liczb (x, y) gdzie x jest z zakresu 1-3, a y z zakresu 1-3.
- Stwórz listę list (macierz 3×3) wypełnioną zerami.
- Pobierz dwie listy liczb. Stwórz wszystkie możliwe pary (jedna liczba z pierwszej listy, jedna z drugiej).
- Narysuj diament z gwiazdek (górna i dolna część piramidy).
- Stwórz szachownicę 8×8 używając symboli „■” i „□” na przemian.
- Wyświetl trójkąt Pascala do 5 poziomu.
Podstawy pętli while
- Napisz pętlę while, która wyświetla liczby od 1 do 10.
- Napisz pętlę while, która dodaje liczby od 1 do 100 i wyświetla sumę.
- Pobieraj liczby od użytkownika dopóki nie wpisze 0. Potem wyświetl sumę wszystkich liczb.
- Napisz program, który pyta użytkownika o hasło dopóki nie wpisze poprawnego (hasło ustal sam).
- Stwórz licznik odliczający od 10 do 0 z napisem „Start!” na końcu.
- Pobieraj od użytkownika liczby dopóki ich suma nie przekroczy 100. Wyświetl ile liczb wprowadzono.
- Napisz program zgadywania liczby (komputer losuje, użytkownik zgaduje), który działa dopóki użytkownik nie zgadnie.
- Pobieraj liczby od użytkownika i dodawaj do listy. Zatrzymaj gdy użytkownik wpisze „koniec”.
- Napisz pętlę która dzieli liczbę przez 2 dopóki wynik jest większy od 1. Policz ile było operacji.
- Symuluj rzut monetą (losowo 0 lub 1) dopóki nie wypadnie 5 razy „orzeł” pod rząd. Policz ile było rzutów.
Instrukcja break
- Wyświetl liczby od 1 do 100, ale przerwij pętlę gdy dojdziesz do pierwszej liczby podzielnej przez 7.
- Pobieraj liczby od użytkownika. Jeśli wpisze liczbę ujemną, przerwij pętlę i wyświetl sumę dotychczasowych liczb.
- Przeszukaj listę [10, 23, 5, 67, 89, 3] i znajdź pierwszą liczbę większą od 50. Użyj break.
- Napisz program który pyta o login i hasło maksymalnie 3 razy. Po poprawnym logowaniu użyj break.
- W liście liczb znajdź pierwszą liczbę parzystą i wyświetl ją. Użyj break aby nie sprawdzać reszty listy.
Instrukcja continue
- Wyświetl liczby od 1 do 20, ale pomiń liczby podzielne przez 3.
- Mając listę [„Python”, „”, „Java”, None, „C++”], wyświetl tylko niepuste elementy (pomiń „” i None).
- Wyświetl liczby od 1 do 50, ale pomiń liczby z zakresu 20-30.
- Mając listę ocen [5, 3, 4, 2, 5, 1], wyświetl tylko oceny pozytywne (3-6), pomijając niedostateczne.
- W liście produktów ze słownika pomiń produkty o cenie 0 zł (niedostępne).
List Comprehension
- Stwórz listę liczb od 1 do 20 używając list comprehension.
- Stwórz listę kwadratów liczb od 1 do 10 używając list comprehension.
- Z listy [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] wybierz tylko liczby nieparzyste używając list comprehension.
- Mając listę słów [„python”, „java”, „c++”], stwórz nową listę z tymi samymi słowami wielkimi literami.
- Z listy liczb [-5, 3, -1, 7, -2, 8] wybierz tylko liczby dodatnie używając list comprehension.
- Stwórz listę zawierającą długości słów z listy [„kot”, „pies”, „chomik”, „papuga”].
- Z listy [1, 2, 3, 4, 5] stwórz listę [„nieparzysta”, „parzysta”, „nieparzysta”, …] używając list comprehension z if-else.
- Mając dwie listy [1, 2, 3] i [10, 20, 30], stwórz listę sum par o tych samych indeksach: [11, 22, 33].
- Z tekstu „Python Programming” stwórz listę samogłosek które w nim występują.
- Stwórz listę krotek (liczba, kwadrat) dla liczb od 1 do 10 używając list comprehension.
Dict Comprehension
- Stwórz słownik {1: 1, 2: 4, 3: 9, …} dla liczb od 1 do 10 używając dict comprehension.
- Mając listę [„a”, „b”, „c”], stwórz słownik {„a”: 0, „b”: 1, „c”: 2} (litera: indeks).
- Z listy słów stwórz słownik {słowo: długość_słowa} używając dict comprehension.
- Mając słownik {„a”: 1, „b”: 2, „c”: 3}, stwórz nowy gdzie wartości są podwojone.
- Stwórz słownik kwadratów tylko dla liczb parzystych z zakresu 1-20.
- Odwróć słownik {„Jan”: 25, „Anna”: 30, „Piotr”: 28} (wartość staje się kluczem).
- Z dwóch list (kluczy i wartości) stwórz słownik używając dict comprehension.
- Stwórz słownik {liczba: „parzysta”/”nieparzysta”} dla liczb 1-10.
- Mając słownik produktów z cenami, stwórz nowy tylko z produktami droższymi niż 50 zł.
- Ze słownika punktów graczy wybierz tylko tych którzy mają więcej niż 100 punktów.
Zadania matematyczne
- Oblicz sumę wszystkich liczb podzielnych przez 3 lub 5 w zakresie 1-1000.
- Znajdź wszystkie liczby doskonałe w zakresie 1-10000 (liczba doskonała równa się sumie swoich dzielników).
- Napisz program obliczający n-ty wyraz ciągu arytmetycznego (a₁, różnica, n podane przez użytkownika).
- Oblicz sumę cyfr liczby podanej przez użytkownika (np. dla 123 suma to 6).
- Znajdź wszystkie liczby pierwsze w zakresie 1-100 używając pętli.
- Napisz program sprawdzający czy liczba jest liczbą Armstronga (np. 153 = 1³ + 5³ + 3³).
- Oblicz NWW (najmniejszą wspólną wielokrotność) dwóch liczb.
- Wygeneruj ciąg Collatza dla liczby podanej przez użytkownika (jeśli parzysta: n/2, jeśli nieparzysta: 3n+1).
- Znajdź cyfry które powtarzają się w dwóch różnych liczbach.
- Oblicz sumę iloczynów cyfr na pozycjach parzystych i nieparzystych w liczbie.
Zadania ze stringami
- Pobierz zdanie. Policz ile jest słów (rozdzielonych spacjami).
- Pobierz tekst. Zamień pierwszą literę każdego słowa na wielką.
- Pobierz zdanie. Wyświetl najdłuższe słowo.
- Sprawdź czy podany tekst zawiera tylko litery i cyfry (bez znaków specjalnych).
- Pobierz dwa słowa. Sprawdź czy są anagramami (te same litery w innej kolejności).
- Usuń wszystkie samogłoski z podanego tekstu.
- Sprawdź czy podane zdanie jest pangramem (zawiera wszystkie litery alfabetu).
- Zaszyfruj tekst szyfrem Cezara (przesunięcie każdej litery o n pozycji).
- Policz wystąpienia każdego słowa w tekście i wyświetl jako słownik.
- Znajdź wszystkie słowa w tekście które zaczynają się i kończą tą samą literą.
Zadania z walidacją danych
- Pobieraj liczby od użytkownika dopóki nie poda liczby z zakresu 1-10.
- Pobierz od użytkownika email. Sprawdzaj dopóki nie będzie zawierał @ i kropki.
- Pobierz hasło które ma minimum 8 znaków, wielką literę, małą literę i cyfrę. Powtarzaj dopóki nie będzie poprawne.
- Pobierz numer telefonu (9 cyfr). Waliduj i powtarzaj dopóki nie będzie poprawny.
- Pobierz datę urodzenia. Oblicz wiek i sprawdź czy osoba jest pełnoletnia. Powtarzaj do poprawnego formatu.
Zadania algorytmiczne
- Zaimplementuj wyszukiwanie binarne w posortowanej liście (algorytm z materiału).
- Posortuj listę liczb używając algorytmu bąbelkowego (bubble sort).
- Znajdź drugi największy element w liście bez sortowania.
- Zaimplementuj algorytm Euklidesa do znajdowania NWD.
- Sprawdź czy nawiasy w wyrażeniu są zbalansowane (np. „((()))” – OK, „(()” – błąd).
Zadania kompleksowe
- Stwórz prosty system quizu: 5 pytań, każde w pętli, na końcu wynik i ocena.
- Napisz grę „Kółko i krzyżyk” dla dwóch graczy (plansza 3×3, pętle do rozgrywki).
- Stwórz symulator bankomatu: menu w pętli, operacje (wpłata, wypłata, saldo), wyjście przez break.
- Napisz generator haseł: długość i rodzaj znaków wybiera użytkownik, generuj w pętli.
- Stwórz książkę adresową: menu z opcjami (dodaj, usuń, szukaj, wyświetl wszystkie), pętla główna.
- Napisz kalkulator macierzy: dodawanie, odejmowanie macierzy 3×3.
- Stwórz system zarządzania studentami: dodawaj studentów ze stopniami, obliczaj średnie, wyświetlaj ranking.
- Napisz symulator sklepu: produkty ze słownika, koszyk, obliczanie sumy, pętla zakupów.
- Stwórz generator faktur: pobieraj produkty i ilości w pętli, generuj fakturę z sumą i VAT.
- Napisz prostą grę RPG: walka w turach, punkty życia, pętla walki, system doświadczenia.