Poziom rozszerzony Formuła 2023

Grudzień 2022

Materiały do pobrania

1_1.py
licznik = 0
with open("mecz.txt") as f:
    for znaki in f:
        znaki = znaki.strip()

        for i in range(len(znaki) - 1):
            if znaki[i] != znaki[i+1]:
                licznik += 1

print(licznik)
1_2.py
A = 0
B = 0

with open("mecz.txt") as f:
    wyniki = f.readline().strip()
    wyniki = list(wyniki)

    for wynik in wyniki:
        if wynik == "A":
            A += 1
        else:
            B += 1

        if A >= 1000 and B <= A - 3:
            print("A", A, ":", B)
            break

        if B >= 1000 and A <= B - 3:
            print("B", A, ":", B)
            break
1_3.py
licznik_pass = 0
najdluzsza = 0
druzyna_naj = ""

with open("mecz.txt") as f:
    znaki = list(f.readline().strip())

    for i in range(len(znaki)):
        if i > 0 and znaki[i] == znaki[i-1]:
            continue

        licznik = 1

        for j in range(i + 1, len(znaki)):
            if znaki[i] == znaki[j]:
                licznik += 1
            else:
                break

        if licznik >= 10:
            licznik_pass += 1

            if licznik > najdluzsza:
                najdluzsza = licznik
                druzyna_naj = znaki[i]

print(licznik_pass, druzyna_naj, najdluzsza)
2_4.py
# def rysuj(n):
#     if n < N:
#         rysuj(2 * n)
#         rysuj(2 * n + 1)

with open("pary.txt") as f:
    for line in f:
        x, y = map(int, line.split())

        temp = y

        while temp > x:
            temp //= 2

        if temp == x:
            print(x, y)
3_2.py
def czy_pierwsza(n): # Złożność obliczeniowa O(n)
    if n < 2: return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

licznik = 0

with open("liczby.txt") as f:
    for line in f:
        liczba = int(line)

        if czy_pierwsza(liczba - 1):
            licznik += 1

print(licznik)
3_3.py
def czy_pierwsza(n): # Złożność obliczeniowa O(sqrt(n))
    if n < 2:
        return False

    i = 2
    while i * i <= n:
        if n % i == 0:
            return False
        i += 1

    return True

max_liczba = 0
max_rozklady = -1

min_liczba = 0
min_rozklady = 10 ** 9

with open("liczby.txt") as f:
    for line in f:
        n = int(line)

        rozklady = 0

        for a in range(2, n // 2 + 1):
            b = n - a

            if czy_pierwsza(a) and czy_pierwsza(b):
                rozklady += 1

        if rozklady > max_rozklady:
            max_rozklady = rozklady
            max_liczba = n

        if rozklady < min_rozklady:
            min_rozklady = rozklady
            min_liczba = n

print(max_liczba, max_rozklady, min_liczba, min_rozklady)
3_4.py
liczniki = {}

for cyfra in "0123456789ABCDEF":
    liczniki[cyfra] = 0

with open("liczby.txt") as f:
    for line in f:
        liczba_hex = hex(int(line))[2:].upper()

        for znak in liczba_hex:
            liczniki[znak] += 1

for cyfra in "0123456789ABCDEF":
    print(cyfra + ":" + str(liczniki[cyfra]))
5_4.sql
SELECT rodzaj, COUNT(*) FROM uslugi_dodatkowe
GROUP BY rodzaj;
5_5.sql
SELECT Klienci.imie, Klienci.nazwisko, Sum(uslugi_dodatkowe.cena_uslugi)
FROM Klienci, Noclegi, uslugi_dodatkowe
WHERE Klienci.nr_dowodu = Noclegi.nr_dowodu AND Noclegi.id_pobytu = Uslugi.id_pobytu
GROUP BY Klienci.imie, Klienci.nazwisko;
wyniki6_7_8.md
3_1.txt
N
PRAWDA
i * i
FAŁSZ
j * i
wyniki1.txt
1_1:
5030

1_2:
B 1001 : 1004

1_3:
6 B 15
wyniki2.txt
2_2:
a) dla N = 5: 19
b) dla dowolnego N: N-1

2_3:
10

2_4:
47 3044
7650 61204
1 245
7 63669
9125 18250
5 43246
wyniki3.txt
3_2:
21

3_3:
910620 9932 18676 195

3_4:
0:32
1:26
2:37
3:31
4:43
5:25
6:28
7:23
8:38
9:28
A:45
B:33
C:29
D:23
E:44
F:10
wyniki4.txt
4_1:
a) 12.08.2022 - 1.09.2022 (21 dni)
b) 18

4_2:
Jan	2452
Feb	1381
Mar	3755
Apr	4213
May	3935
Jun	5566
Jul	6516
Aug	2698
Sep	5680
Oct	12225
Nov	14761
Dec	840

Wykres kolumnowy: 4_2.png

4_3:
a)	93
b)	19152
wyniki5.txt
5_1:
Mateusz	Tokarczyk	9

5_2:
Anna	Poplawska
Marcin	Bober
Mateusz	Slomka

5_3:
104
107
109
110
114
117
207
215
306
310
314
402
411
415
416
418

5_4: 5_4.sql

5_5: 5_5.sql