# Matura informatyka 2021 czerwiec (poziom rozszerzony) - zadanie 4.4

## **Treść zadania:**

Ostatnie z haseł zostało ukryte w cyfrach zapisanych w pliku napisy.txt. Aby je odczytać, należy cyfry z każdego wiersza pogrupować po dwie, pomijając ostatnią, jeśli w wierszu jest nieparzysta liczba cyfr. Jeżeli liczba utworzona przez parę cyfr jest mniejsza od 65 lub większa od 90, to ją pomijamy, w przeciwnym przypadku taką liczbę zamieniamy na znak o kodzie ASCII odpowiadającym tej liczbie. Poszukiwanie hasła kończy się po otrzymaniu trzech kolejnych znaków „X”. Odczytaj z pliku tak ukryte hasło.

Dla danych z pliku przyklad.txt wynikiem jest: **NAPISANIEMATURYXXX**

## **Rozwiązanie (i cały program):**

Dla każdej linii wybieramy tylko te znaki, które są cyframi. Następnie, jeśli hasło kończy się na 3 znaki X (warunek zadania) możemy stwierdzić, że zakończyliśmy szukanie hasła - to nasz warunek bazowy.

W przeciwnym wypadku, dla każdej pary (robimy to przy pomocy podania `2` , jako trzeciego parametru funkcji `range`, co pozwala nam na "przeskakiwanie" par) sprawdzamy, czy wcześniej wspomniane znaki mieszczą się w zakresie `65 <= 90`.

Jeśli tak, dopisujemy je do hasła, a po skończeniu pętli wypisujemy je na ekran!

```python
with open("dane/napisy.txt", "r") as f:
    lines = [line.strip() for line in f.readlines()]

password = ""

for line in lines:
    digits = "".join(character for character in line if character.isdigit())

    if password.endswith("XXX"):
        break
    
    for index in range(0, len(digits), 2):
        potential_char = int(digits[index:index+2])
        if 65 <= potential_char <= 90:
            password += chr(potential_char)

print(password)
```

# **Wynik:**

`LITWOOJCZYZNOMOJATYJESTESJAKZDROWIEILECIETRZEBACENICTENTYLKOSIEDOWIEKTOCIESTRACILNATENCZASWOJSKICHWYCILNATASMIEPRZYPIETYSWOJROGBAWOLIDLUGICENTKOWANYKRETYJAKWAZBOAXXX`

%[https://replit.com/@Onix95/44-czerwiec-2021] 

Źródło: [https://arkusze.pl/matura-informatyka-2021-czerwiec-poziom-rozszerzony/](https://arkusze.pl/matura-informatyka-2021-czerwiec-poziom-rozszerzony/)
