# Zadania z zajęć – Pętla for i moduł turtle

Zadanie 3 – Ciąg Fibonacciego

Celem było stworzenie programu obliczającego kolejne liczby ciągu Fibonacciego, zaczynając od 0 i kończąc na pozycji podanej przez użytkownika.

Podejście 1 – bez listy, tylko zmienne

W tym podejściu program wypisuje wartości na bieżąco, bez ich przechowywania.

n = int(input("Podaj maksymalną pozycję ciągu Fibonacciego: "))
a, b = 0, 1
for i in range(n):
    print(a, end=" ")
    a, b = b, a + b
    
    

Podejście 2 – z listą przechowującą wynik

Tutaj liczby są zapisywane w liście i dopiero na końcu wypisywane.

n = int(input("Podaj maksymalną pozycję ciągu Fibonacciego: "))

# Inicjalizacja pierwszych wartości
fib = [0, 1]

# Obliczanie kolejnych wartości aż do pozycji n
for i in range(2, n):
    next_value = fib[i-1] + fib[i-2]
    fib.append(next_value)

# Wyświetlenie wyników
print("Ciąg Fibonacciego do pozycji", n, "to:")
print(fib[:n])

Zadanie 2 – Filtrowanie logów z czerwca

Zadanie polegało na przefiltrowaniu logów w taki sposób, aby znaleźć wpisy zawierające:

  • datę z czerwca 2025 (2025-06)
  • komunikat [ERROR]

Przykładowy kod rozwiązania:

    ["[2025-03-25T10:41:50] [WARN] Ciepło tutaj..."],
    ["[2025-03-25T11:58:50] [INFO] Cośtam liczę."],
    ["[2025-04-25T20:18:51] [INFO] Zadanie wykonane."],
    ["[2025-05-25T21:12:52] [ERROR] Bzzzztttt... dzielisz przez zero."],
    ["[2025-05-25T22:48:50] [INFO] Plik przetworzony."],
    ["[2025-06-25T01:48:50] [INFO] Połączona z serwisem www."],
    ["[2025-06-25T05:48:22] [ERROR] Booom... i wybuchło..."],
    ["[2025-06-25T15:48:31] [WARN] Miejsce na dysku się kończy."],
    ["[2025-07-25T20:48:50] [ERROR] Zły format pliku."],
    ["[2025-07-25T21:48:32] [INFO] Przesyłka gotowa."],
    ["[2025-07-25T22:21:50] [INFO] Program ściągnięty."],
    ["[2025-07-25T25:48:50] [INFO] A ja liczę i liczę...."],
]

# Filtrowanie logów z czerwca i komunikatem ERROR
czerwcowe_error = []

for wpis in logi:
    tekst = wpis[0]
    if "2025-06" in tekst and "[ERROR]" in tekst:
        czerwcowe_error.append(tekst)

# Wyświetlenie wyników
for linia in czerwcowe_error:
    print(linia)

Zadanie 1 – Rysowanie przy użyciu turtle

Zadanie polegało na odtworzeniu dwóch rysunków geometrycznych za pomocą modułu turtle.

Rysunek 1 – Rosnące słupki

słupki mają jednakową szerokość

każdy kolejny słupek jest wyższy

żółw po narysowaniu słupka przesuwa się w prawo


turtle.speed("fast")
turtle.penup()
turtle.goto(-200, -100)
turtle.pendown()

szerokosc = 40
wysokosc_start = 40
liczba_slupkow = 5

for i in range(liczba_slupkow):
    wysokosc = wysokosc_start * (i + 1)
    for _ in range(2):
        turtle.forward(szerokosc)
        turtle.left(90)
        turtle.forward(wysokosc)
        turtle.left(90)
    turtle.forward(szerokosc)

turtle.hideturtle()
turtle.done()


##Rysunek 2 – Kwadraty startujące z jednego punktu

wszystkie kwadraty zaczynają się z tego samego punktu

każdy ma coraz większy bok

kolejne kwadraty nakładają się na siebie

```import turtle

turtle.speed("fastest")
turtle.penup()
turtle.goto(-100, -100)
turtle.pendown()

rozmiar_poczatkowy = 40
liczba_kwadratow = 8

for i in range(liczba_kwadratow):
    bok = rozmiar_poczatkowy + (i * 10)
    turtle.penup()
    turtle.goto(-100, -100)
    turtle.pendown()
    for _ in range(4):
        turtle.forward(bok)
        turtle.left(90)

turtle.hideturtle()
turtle.done()