Czerwiec 2025
Materiały do pobrania
Podgląd rozwiązań
1_1.py
def skroc(x):
if x < 10:
return 0
return x // 10
def dopisz(x):
return x * 10
def ostatnia(x):
return x % 10
def f(a, b):
if b == 0:
return 0
k = ostatnia(b)
w = f(a, skroc(b))
w = dopisz(w)
while k > 0:
w = w + a
k = k - 1
return w
print(f(42, 2)) # Wynik: 84
print(f(4, 125)) # Wynik: 500
print(f(103, 104)) # Wynik: 10712
1_2.py
def skroc(x):
if x < 10:
return 0
return x // 10
def dopisz(x):
return x * 10
def ostatnia(x):
return x % 10
licznik = 0
def f(a, b):
global licznik
licznik += 1
if b == 0:
return 0
k = ostatnia(b)
w = f(a, skroc(b))
w = dopisz(w)
while k > 0:
w = w + a
k = k - 1
return w
print(f(987654321, 123456789))
print(licznik) # Wynik: 101_3.py
def skroc(x):
if x < 10:
return 0
return x // 10
def dopisz(x):
return x * 10
def ostatnia(x):
return x % 10
licznik = 0
def f(a, b):
if b == 0:
return 0
k = ostatnia(b)
w = f(a, skroc(b))
w = dopisz(w)
while k > 0:
w = w + a
global licznik
licznik += 1
k = k - 1
return w
# print(f(2024, 1000)) # a) 1
print(f(2024, 1234)) # b) 10
print(licznik)2_1.py
def liczba_cyfr(n):
cyfry = 0
while n > 0:
cyfry += 1
n //= 10
return cyfry
def przeciecie(k):
cyfry = liczba_cyfr(k)
p = 1
i = 0
while i < cyfry // 2:
p *= 10
i += 1
a = k // p
b = k % p
return a, b
print(przeciecie(123456))2_2.py
import math
def liczba_cyfr(n):
cyfry = 0
while n > 0:
cyfry += 1
n //= 10
return cyfry
def dwie_liczby(k):
cyfry = liczba_cyfr(k)
p = 1
i = 0
while i < cyfry // 2:
p *= 10
i += 1
a = k // p
b = k % p
return a, b
licznik = 0
with open("liczby1.txt") as f:
for line in f:
liczba = int(line.strip())
a, b = dwie_liczby(liczba)
if math.gcd(a, b) == 1:
licznik += 1
print(licznik)2_3.py
def stopien_kaprekara(n):
kwadrat = str(n * n)
licznik = 0
for i in range(1, len(kwadrat)):
a = int(kwadrat[:i])
b = int(kwadrat[i:])
if a + b <= n:
licznik += 1
return licznik
with open("liczby2.txt") as f:
stopnie_kaprekara = []
liczby = []
for line in f:
liczba = int(line.strip())
stopnie_kaprekara.append(stopien_kaprekara(liczba))
liczby.append(liczba)
najwiekszy_stopien = max(stopnie_kaprekara)
indeks = stopnie_kaprekara.index(najwiekszy_stopien)
print(najwiekszy_stopien)
print(liczby[indeks])3_1.py
with open("dane.txt") as f:
napis = f.read()
licznik = 0
liczby = []
i = 0
while i < len(napis):
if napis[i].isdigit():
liczba = ""
while i < len(napis) and napis[i].isdigit():
liczba += napis[i]
i += 1
liczby.append(liczba)
else:
i += 1
for liczba in liczby:
if liczba.startswith("50"):
licznik += 1
print(licznik)3_2.py
with open("dane.txt") as f:
napis = f.read()
cyfry = [0] * 10
for znak in napis:
if znak.isdigit():
cyfry[int(znak)] += 1
indeks_najczestszej_cyfry = cyfry.index(max(cyfry))
print(indeks_najczestszej_cyfry) # Cyfra występująca najczęsciej
print(max(cyfry)) # Liczba wystąpień najczęściej występującej cyfry3_3.py
numery_telefonow = []
with open("dane.txt") as f:
napis = f.read()
for i in range(len(napis) - 8):
if napis[i] == "5":
numer = napis[i:i+9]
if numer.isdigit():
przed = i == 0 or not napis[i-1].isdigit()
po = i + 9 == len(napis) or not napis[i+9].isdigit()
if przed and po:
numery_telefonow.append(numer)
for numer_telefonu in numery_telefonow:
print(numer_telefonu)
3_4.py
numery_telefonow = []
with open("dane.txt") as f:
napis = f.read()
for i in range(len(napis) - 8):
numer = napis[i:i+9]
if numer.isdigit():
przed = i == 0 or not napis[i-1].isdigit()
po = i + 9 == len(napis) or not napis[i+9].isdigit()
if przed and po:
numery_telefonow.append(numer)
najmniej = 10
wynik = []
for numer in numery_telefonow:
rozne_cyfry = []
for cyfra in numer:
if cyfra not in rozne_cyfry:
rozne_cyfry.append(cyfra)
if len(rozne_cyfry) < najmniej:
najmniej = len(rozne_cyfry)
wynik = [numer]
elif len(rozne_cyfry) == najmniej:
wynik.append(numer)
for wynik in wynik:
print(wynik)7_5.sql
SELECT DISTINCT Wizyty.id_klienta FROM Wizyty
INNER JOIN Fryzjerzy ON
Wizyty.id_fryzjera = Fryzjerzy.id_fryzjera
INNER JOIN Salony ON
Fryzjerzy.id_salonu = Salony.id_salonu
WHERE Salony.nazwa_salonu LIKE "Magnolia";4.txt
F
P
Fwyniki2.txt
2_2:
296
2_3:
4
7746wyniki3.txt
3_1:
4
3_2:
Cyfra: 1
Wystąpiła: 342 razy
3_3:
588095244
593151643
583327270
565269349
583672019
506585224
574489008
587103844
510672749
529135372
515437684
589477488
3_4:
033035335
050525250wyniki6.txt
6_1:
2715.32 kWh
6_2:
Najdłuższy ciąg liczb: 6
Rozpoczyna się: 26/05/2022
6_3:
liczba godzin nasłonecznienia Średnia z produkcja Średnia z oddanie Średnia z pobranie
7 2.88516129 1.086774194 4.924516129
8 3.848085106 1.653191489 3.385319149
9 5.400606061 2.559090909 3.103333333
10 6.936666667 3.020333333 2.818
11 7.154 3.481666667 2.626333333
12 11.32266667 5.400666667 2.658333333
13 12.23225806 6.347419355 2.497419355
14 10.97548387 5.513548387 2.507741935
15 13.20810811 6.69972973 2.444594595
16 12.59261538 6.740615385 2.792461538
Wykres liniowy: 6_3.png
6_4:
a) 71
b) 67wyniki7.txt
7_1:
Marta Jasczyk 4846
7_2:
imie nazwisko id_klienta
Anna Dymek K358
Anna Mason K151
Anna Wiatr K052
Barbara Wroblewska K275
Grzegorz Sikora K045
Hanna Mazur K227
Krzysztof Orlik K224
Krzysztof Szostak K164
Marcin Ozga K221
Marek Sitko K374
Mateusz Szymczyk K277
Natalia Chwiszczuk K137
Natalia Kejza K282
7_3:
1848.6
7_4:
F02 Natalia
F03 Krzysztof
F04 Grzegorz
F07 Kamila
F08 Aneta
F10 Bartosz
F18 Kalina