2.3 Największa liczba w pliku przykładowym

Matura maj 2023 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 2.3 (2 pkt): największa liczba z pliku. Pułapka: `max(numbers)` porównuje napisy znak po znaku, a wtedy "111" jest większe niż "1000". `key=lambda s: int(s, 2)` każe porównywać wartości. Dla pliku przykładowego arkusz podaje: 10001111110111100000.

def blocks(n):
    b = 1
    previous = n % 2  # ostatnia cyfra zapisu binarnego
    n = n // 2
    while n > 0:
        digit = n % 2
        if digit != previous:  # inna cyfra niż poprzednia: zaczyna się nowy blok
            b = b + 1
            previous = digit
        n = n // 2
    return b


with open("bin_przyklad.txt") as f:
    numbers = [line.strip() for line in f]  # zapisy binarne jako napisy

# 2.3 największa liczba: porównujemy wartości, a nie napisy (jako napisy "111" > "1000")
largest = max(numbers, key=lambda s: int(s, 2))

print("2.3", largest)

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.