Arkusze maturalne z plikami oraz moimi rozwiazaniami.
Discord: Chriskyy#0181.
Rozwiązanie Python
4.1
plik = open('Dane_PR/liczby.txt').readlines()
ile_liczb = 0
for wiersz in plik:
wiersz = wiersz.strip()
ilosc_jedynek = 0
ilosc_zer = 0
for litera in wiersz:
if litera == '0':
ilosc_zer += 1
if litera == '1':
ilosc_jedynek += 1
if ilosc_zer > ilosc_jedynek:
ile_liczb += 1
print('Zadanie 4.1')
print(ile_liczb)
4.2
plik = open('Dane_PR/liczby.txt').readlines()
podzielne_8 = 0
podzielne_2 = 0
for wiersz in plik:
wiersz = wiersz.strip()
base_10 = int(wiersz, 2)
if base_10 % 2 == 0:
podzielne_2 += 1
if base_10 % 8 == 0:
podzielne_8 += 1
print('Zadanie 4.2')
print('Podzielne przez 2:', podzielne_2)
print('Podzielne przez 8:', podzielne_8)
4.3
plik = open('Dane_PR/liczby.txt').readlines()
base_10 = []
for wiersz in plik:
wiersz = wiersz.strip()
base_10.append(int(wiersz, 2))
najwieksza = max(base_10)
najmniejsza = min(base_10)
najwieksza_pozycja = base_10.index(najwieksza) + 1
najmniejsza_pozycja = base_10.index(najmniejsza) + 1
print('Zadanie 4.3')
print('Numer wiersza najmniejszej liczby:', najmniejsza_pozycja)
print('Numer wiersza największej liczby:', najwieksza_pozycja)
Rozwiązanie Python
6.1
plik = open('MIN-R2A1P-153_dane/kody.txt').readlines()
for wiersz in plik:
wiersz = wiersz.strip()
suma_parzyste = 0
suma_nieparzyste = 0
for cyfra in range(0, len(wiersz), 2):
suma_nieparzyste += int(wiersz[cyfra])
for cyfra in range(1, len(wiersz), 2):
suma_parzyste += int(wiersz[cyfra])
print(suma_parzyste, suma_nieparzyste)
6.2
plik = open('MIN-R2A1P-153_dane/kody.txt').readlines()
for wiersz in plik:
wiersz = wiersz.strip()
suma_parzyste = 0
suma_nieparzyste = 0
for cyfra in range(0, len(wiersz), 2):
suma_nieparzyste += int(wiersz[cyfra])
for cyfra in range(1, len(wiersz), 2):
suma_parzyste += int(wiersz[cyfra])
cyfra_kontrolna = (suma_parzyste + suma_nieparzyste) % 10
cyfra_kontrolna = 10 - cyfra_kontrolna
cyfra_kontrolna = cyfra_kontrolna % 10
print(cyfra_kontrolna, wiersz)
6.3
plik = open('MIN-R2A1P-153_dane/kody.txt').readlines()
for wiersz in plik:
wiersz = wiersz.strip()
suma_parzyste = 0
suma_nieparzyste = 0
kod = ''
start = '11011010'
stop = '11010110'
x = '11101110101010'
for cyfra in range(0, len(wiersz), 2):
suma_nieparzyste += int(wiersz[cyfra])
for cyfra in range(1, len(wiersz), 2):
suma_parzyste += int(wiersz[cyfra])
cyfra_kontrolna = (suma_parzyste + suma_nieparzyste) % 10
cyfra_kontrolna = 10 - cyfra_kontrolna
cyfra_kontrolna = cyfra_kontrolna % 10
kod += start
for cyfra in wiersz:
match cyfra:
case '0':
kod += '10101110111010'
case '1':
kod += '11101010101110'
case '2':
kod += '10111010101110'
case '3':
kod += '11101110101010'
case '4':
kod += '10101110101110'
case '5':
kod += '11101011101010'
case '6':
kod += '10111011101010'
case '7':
kod += '10101011101110'
case '8':
kod += '11101010111010'
case '9':
kod += '10111010111010'
match str(cyfra_kontrolna):
case '0':
kod += '10101110111010'
case '1':
kod += '11101010101110'
case '2':
kod += '10111010101110'
case '3':
kod += '11101110101010'
case '4':
kod += '10101110101110'
case '5':
kod += '11101011101010'
case '6':
kod += '10111011101010'
case '7':
kod += '10101011101110'
case '8':
kod += '11101010111010'
case '9':
kod += '10111010111010'
kod += stop
print(kod)
Rozwiązanie Python
6.1
plik = open('Dane_NOWA/dane_6_1.txt').readlines()
def szyfruj(slowo, klucz):
klucz = klucz % 26
zaszyfrowane = ''
for litera in slowo:
if ord(litera) + klucz > 90:
x = abs(90 - ord(litera) - klucz)
zaszyfrowane += chr(64 + x)
else:
zaszyfrowane += chr(ord(litera) + klucz)
return zaszyfrowane
for wiersz in plik:
wiersz = wiersz.strip()
print(szyfruj(wiersz, 107))
6.2
plik = open('Dane_NOWA/dane_6_2.txt').readlines()
def odszyfruj(slowo, klucz):
klucz = klucz % 26
odszyfrowane = ''
for litera in slowo:
if ord(litera) - klucz < 65:
x = ord(litera) - 65
odszyfrowane += chr(91 + x - klucz)
else:
odszyfrowane += chr(ord(litera) - klucz)
return odszyfrowane
for wiersz in plik:
wiersz = wiersz.strip().split()
slowo = wiersz[0]
klucz = int(wiersz[1])
print(odszyfruj(slowo, klucz))
6.3
plik = open('Dane_NOWA/dane_6_3.txt').readlines()
def odszyfruj(slowo, klucz):
klucz = klucz % 26
odszyfrowane = ''
for litera in slowo:
if ord(litera) - klucz < 65:
x = ord(litera) - 65
odszyfrowane += chr(91 + x - klucz)
else:
odszyfrowane += chr(ord(litera) - klucz)
return odszyfrowane
for wiersz in plik:
wiersz = wiersz.strip().split()
klucz = 0
x = wiersz[0][0]
for i in range(26):
if x == wiersz[1][0]:
klucz = i
break
else:
x = chr(ord(x)+1)
if ord(x) > 90:
x = chr(65)
if odszyfruj(wiersz[1], i) != wiersz[0]:
print(wiersz[0])
Rozwiązanie Python
6.1
plik = open('MIN-R2A1P-163_dane/liczby.txt').readlines()
ile = 0
for wiersz in plik:
wiersz = wiersz.strip()
if wiersz[-1] == '8':
ile += 1
print('Zadanie 6.1')
print(ile)
6.2
plik = open('MIN-R2A1P-163_dane/liczby.txt').readlines()
ile = 0
for wiersz in plik:
wiersz = wiersz.strip()
if wiersz[-1] == '4':
if '0' not in wiersz:
ile += 1
print('Zadanie 6.2')
print(ile)
6.3
plik = open('MIN-R2A1P-163_dane/liczby.txt').readlines()
ile = 0
for wiersz in plik:
wiersz = wiersz.strip()
if wiersz[-1] == '2':
wiersz = wiersz[:-1]
if int(wiersz, 2) % 2 == 0:
ile += 1
print('Zadanie 6.3')
print(ile)
6.4
plik = open('MIN-R2A1P-163_dane/liczby.txt').readlines()
suma = 0
for wiersz in plik:
wiersz = wiersz.strip()
if wiersz[-1] == '8':
wiersz = wiersz[:-1]
suma += int(wiersz, 8)
print('Zadanie 6.4')
print(suma)
6.5
plik = open('MIN-R2A1P-163_dane/liczby.txt').readlines()
max_liczba = 0
max_liczba_kod = 0
min_liczba = 999
min_liczba_kod = 0
for wiersz in plik:
wiersz = wiersz.strip()
system = int(wiersz[-1])
match system:
case 2:
liczba = int(wiersz[:-1], 2)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 3:
liczba = int(wiersz[:-1], 3)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 4:
liczba = int(wiersz[:-1], 4)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 5:
liczba = int(wiersz[:-1], 5)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 6:
liczba = int(wiersz[:-1], 6)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 7:
liczba = int(wiersz[:-1], 7)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 8:
liczba = int(wiersz[:-1], 8)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
case 9:
liczba = int(wiersz[:-1], 9)
if liczba > max_liczba:
max_liczba = liczba
max_liczba_kod = wiersz
if liczba < min_liczba:
min_liczba = liczba
min_liczba_kod = wiersz
print('Zadanie 6.5')
print('Największa kod:', max_liczba_kod)
print('Wartość:', max_liczba)
print('Najmniejsza:', min_liczba_kod)
print('Wartość:', min_liczba)
Rozwiązanie Python
6.1
plik = open('Dane_PR/dane.txt').readlines()
ciemny = 255
jasny = 0
for wiersz in plik:
wiersz = wiersz.strip().split()
for i in wiersz:
if int(i) > jasny:
jasny = int(i)
if int(i) < ciemny:
ciemny = int(i)
print('Zadanie 6.1')
print('Najjaśniejszy:', jasny)
print('Najciemniejszy:', ciemny)
6.2
plik = open('Dane_PR/dane.txt').readlines()
ile = 0
for wiersz in plik:
wiersz = wiersz.strip().split()
for x in range(len(wiersz)):
if wiersz[x] != wiersz[319-x]:
ile += 1
break
print('Zadanie 6.2')
print(ile)
6.3
plik = open('Dane_PR/dane.txt').readlines()
mapa = []
for wiersz in plik:
wiersz = wiersz.strip().split()
mapa.append([int(x) for x in wiersz])
sasiedzi = ((0, 1), (0, -1), (1, 0), (-1, 0))
kontrastujace = 0
for x in range(320):
for y in range(200):
ile = 0
for s in sasiedzi:
if x + s[0] > 319 or x + s[0] < 0 or y + s[1] > 199 or y + s[1] < 0:
continue
if abs(mapa[y][x] - mapa[y + s[1]][x + s[0]]) > 128:
ile += 1
if ile != 0:
kontrastujace += 1
print('Zadanie 6.3')
print(kontrastujace)
6.4
plik = open('Dane_PR/dane.txt').readlines()
mapa = []
for wiersz in plik:
wiersz = wiersz.strip().split()
mapa.append([int(x) for x in wiersz])
maks_dlugosc = 0
for y in range(320):
dlugosc = 1
for x in range(199):
if mapa[x][y] == mapa[x + 1][y]:
dlugosc += 1
else:
if dlugosc > maks_dlugosc:
maks_dlugosc = dlugosc
dlugosc = 1
print('Zadanie 6.4')
print(maks_dlugosc)
Rozwiązanie Python
4.1
plik = open('MIN-DANE-2017/punkty.txt').readlines()
def isPrime(num):
if num <= 1:
return False
for i in range(2, num):
if num % i == 0:
return False
return True
ile = 0
for wiersz in plik:
wiersz = wiersz.strip().split()
x = int(wiersz[0])
y = int(wiersz[1])
if isPrime(x) and isPrime(y):
ile += 1
print('Zadanie 4.1')
print(ile)
4.2
plik = open('MIN-DANE-2017/punkty.txt').readlines()
ile = 0
for wiersz in plik:
wiersz = wiersz.strip().split()
x = wiersz[0]
y = wiersz[1]
set_x = set()
set_y = set()
for cyfra in x:
set_x.add(cyfra)
for cyfra in y:
set_y.add(cyfra)
if set_x == set_y:
ile += 1
print('Zadanie 4.2')
print(ile)
4.3
import math
plik = open('MIN-DANE-2017/punkty.txt').readlines()
def odleglosc(x1, x2, y1, y2):
return round(math.sqrt((x1-x2)**2 + (y1-y2)**2))
punkty = []
for wiersz in plik:
wiersz = wiersz.strip().split()
x = int(wiersz[0])
y = int(wiersz[1])
punkty.append((x, y))
punkt1 = None
punkt2 = None
najdalej = 0
for x1, y1 in punkty:
for x2, y2 in punkty:
odleg = odleglosc(x1, x2, y1, y2)
if odleg > najdalej:
najdalej = odleg
punkt1 = (x1, y1)
punkt2 = (x2, y2)
print('Zadanie 4.3')
print(punkt1)
print(punkt2)
print(najdalej)
4.4
plik = open('MIN-DANE-2017/punkty.txt').readlines()
punkty = []
for wiersz in plik:
wiersz = wiersz.strip().split()
x = int(wiersz[0])
y = int(wiersz[1])
punkty.append((x, y))
wewnatrz = 0
bok = 0
zewnatrz = 0
for x, y in punkty:
if x < 5000 and y < 5000:
wewnatrz += 1
elif x == 5000 and y <= 5000 or x <= 5000 and y == 5000:
bok += 1
elif x > 5000 or y > 5000:
zewnatrz += 1
print('Zadanie 4.4')
print(wewnatrz, bok, zewnatrz)
Rozwiązanie Python
4.1
plik = open('Dane_PR/sygnaly.txt').readlines()
haslo = ''
for i in range(39, len(plik), 40):
haslo += plik[i][9]
print('Zadanie 4.1')
print(haslo)
4.2
plik = open('Dane_PR/przyklad.txt').readlines()
max_roznych_liter = -1
max_slowo = ''
for wiersz in plik:
wiersz = wiersz.strip()
rozne_litery = set()
for litera in wiersz:
rozne_litery.add(litera)
if len(rozne_litery) > max_roznych_liter:
max_roznych_liter = len(rozne_litery)
max_slowo = wiersz
print('Zadanie 4.2')
print(max_slowo, max_roznych_liter)
4.3
plik = open('Dane_PR/sygnaly.txt').readlines()
dobre = []
for wiersz in plik:
wiersz = wiersz.strip()
maksimum = 0
minimum = ord(wiersz[0])
for i in wiersz:
if ord(i) > maksimum:
maksimum = ord(i)
if ord(i) < minimum:
minimum = ord(i)
if maksimum - minimum <= 10:
dobre.append(wiersz)
print('Zadanie 4.3')
for i in dobre:
print(i)
Rozwiązanie Python
4.1
file1 = open('NM_DANE_PR/dane1.txt').readlines()
file2 = open('NM_DANE_PR/dane2.txt').readlines()
ilosc = 0
ostanie_1 = []
ostanie_2 = []
for wiersz in file1:
wiersz = wiersz.strip().split()
ostanie_1.append(wiersz[-1])
for wiersz in file2:
wiersz = wiersz.strip().split()
ostanie_2.append(wiersz[-1])
for i in range(len(ostanie_1)):
if ostanie_1[i] == ostanie_2[i]:
ilosc += 1
print('Zadanie 4.1')
print(ilosc)
4.2
file1 = open('NM_DANE_PR/dane1.txt').readlines()
file2 = open('NM_DANE_PR/dane2.txt').readlines()
parzyste_1 = []
parzyste_2 = []
nieparzyste_1 = []
nieparzyste_2 = []
for wiersz in file1:
wiersz = wiersz.strip().split()
ilosc_parzyste = 0
ilosc_nieparzyste = 0
for i in wiersz:
i = int(i)
if i % 2 == 0:
ilosc_parzyste += 1
if i % 2 == 1:
ilosc_nieparzyste += 1
parzyste_1.append(ilosc_parzyste)
nieparzyste_1.append(ilosc_nieparzyste)
for wiersz in file2:
wiersz = wiersz.strip().split()
ilosc_parzyste = 0
ilosc_nieparzyste = 0
for i in wiersz:
i = int(i)
if i % 2 == 0:
ilosc_parzyste += 1
if i % 2 == 1:
ilosc_nieparzyste += 1
parzyste_2.append(ilosc_parzyste)
nieparzyste_2.append(ilosc_nieparzyste)
ilosc = 0
for i in range(len(parzyste_1)):
if parzyste_1[i] == 5 and parzyste_2[i] == 5 and nieparzyste_1[i] == 5 and nieparzyste_2[i] == 5:
ilosc += 1
print('Zadanie 4.2')
print(ilosc)
4.3
file1 = open('NM_DANE_PR/dane1.txt').readlines()
file2 = open('NM_DANE_PR/dane2.txt').readlines()
ciag_1 = []
ciag_2 = []
for wiersz in file1:
wiersz = wiersz.strip().split()
ciag_1.append(wiersz)
for wiersz in file2:
wiersz = wiersz.strip().split()
ciag_2.append(wiersz)
ilosc = 0
numer_wiersza = []
for i in range(len(ciag_1)):
if set(ciag_1[i]) == set(ciag_2[i]):
ilosc += 1
numer_wiersza.append(i+1)
print('Zadanie 4.3')
print('Ilość:', ilosc)
print('Wiersze:', numer_wiersza)
4.4
file1 = open('NM_DANE_PR/dane1.txt').readlines()
file2 = open('NM_DANE_PR/dane2.txt').readlines()
ciagi_1 = []
for wiersz in file1:
wiersz = wiersz.strip().split()
ciagi_1.append(wiersz)
ciagi_2 = []
for wiersz in file2:
wiersz = wiersz.strip().split()
ciagi_2.append(wiersz)
print('Zadanie 4.4')
for i in range(len(ciagi_1)):
ciag = ciagi_1[i] + ciagi_2[i]
ciag.sort(key=lambda x: int(x))
print(' '.join(ciag))
Rozwiązanie Python
4.1
plik = open('Dane_PR/liczby.txt').readlines()
def czyPotegaTrzy(num):
while num % 3 == 0:
num /= 3
if num == 1:
return True
return False
ile = 0
for wiersz in plik:
wiersz = int(wiersz.strip())
if czyPotegaTrzy(wiersz):
ile += 1
print('Zadanie 4.1')
print(ile)
4.2
plik = open('Dane_PR/liczby.txt').readlines()
wynik = []
for wiersz in plik:
wiersz = wiersz.strip()
liczba = int(wiersz)
suma = 0
for i in wiersz:
cyfra = int(i)
silnia = 1
for j in range(1, cyfra+1):
silnia *= j
suma += silnia
if suma == liczba:
wynik.append(liczba)
print('Zadanie 4.2')
for i in wynik:
print(i)
4.3
plik = open('Dane_PR/liczby.txt').readlines()
def nwd(a, b):
if b > 0:
return nwd(b, a % b)
return a
liczby = []
for wiersz in plik:
wiersz = int(wiersz.strip())
liczby.append(wiersz)
naj_dlugosc = -1
naj_nwd = -1
naj_poczatek = -1
for i in range(0, len(liczby) - 1):
dlugosc = 1
poczatek = 0
j = i
wyraz = liczby[j]
while nwd(wyraz, liczby[j+1]) != 1:
dlugosc += 1
wyraz = nwd(wyraz, liczby[j+1])
if poczatek == 0:
poczatek = liczby[j]
j += 1
if dlugosc > naj_dlugosc:
naj_dlugosc = dlugosc
naj_poczatek = poczatek
naj_nwd = wyraz
print('Zadnaie 4.3')
print('Pierwsza liczba ciągu:', naj_poczatek)
print('Długość:', naj_dlugosc)
print('Największy wspólny dzielnik:', naj_nwd)
Rozwiązanie Python
4.1
plik = open('MIN-R2A1P-193_dane/liczby.txt').readlines()
def isPrime(x):
if x <= 1:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
print('Zadanie 4.1')
for wiersz in plik:
wiersz = wiersz.strip()
odbicie = wiersz[::-1]
if int(wiersz) >= 100 and int(wiersz) <= 5000:
if isPrime(int(wiersz)):
print(wiersz)
4.2
plik = open('MIN-R2A1P-193_dane/pierwsze.txt').readlines()
def isPrime(num):
for i in range(2, num):
if num % i == 0:
return False
return True
print('Zadanie 4.2')
for wiersz in plik:
wiersz = wiersz.strip()
odbicie = wiersz[::-1]
if isPrime(int(wiersz)) and isPrime(int(odbicie)):
print(wiersz)
4.3
plik = open('MIN-R2A1P-193_dane/pierwsze.txt').readlines()
def waga(x):
suma = 0
for i in str(x):
suma += int(i)
while suma >= 10:
suma_temp = suma
suma = 0
for i in str(suma_temp):
suma += int(i)
return suma
ile = 0
pierwsze = []
for wiersz in plik:
wiersz = wiersz.strip()
if waga(wiersz) == 1:
ile += 1
pierwsze.append(wiersz)
print('Zadanie 4.3')
print(ile)
print("\nLiczby:")
for i in pierwsze:
print(i)
- Kwiecień (próbna) 2020_04
Rozwiązanie Python
4.1
plik = open('DANE_PR/dane4.txt').readlines()
liczby = []
luki = []
for wiersz in plik:
wiersz = wiersz.strip()
liczby.append(int(wiersz))
for i in range(len(liczby)-1):
luka = abs(liczby[i]-liczby[i+1])
luki.append(luka)
print('Zadanie 4.1')
print('Maksymalna luka:', max(luki))
print('Minimalna luka:', min(luki))
4.2
plik = open('DANE_PR/dane4.txt').readlines()
liczby = []
for wiersz in plik:
wiersz = wiersz.strip()
liczby.append(int(wiersz))
ciag = []
max_ciag = []
max_dlugosc = 0
dlugosc = 1
for i in range(len(liczby)-2):
aktualna_luka = abs(liczby[i]-liczby[i+1])
nastepna_luka = abs(liczby[i+1]-liczby[i+2])
if aktualna_luka == nastepna_luka:
ciag.append(liczby[i])
dlugosc += 1
else:
ciag.append(liczby[i+1])
if dlugosc > max_dlugosc:
max_ciag = ciag
max_dlugosc = dlugosc
ciag = []
dlugosc = 1
print('Zadanie 4.2')
print('Długość fragmentu:', max_dlugosc + 1)
print('Początek:', max_ciag[0])
print('Koniec', max_ciag[-1])
4.3
from collections import Counter
plik = open('DANE_PR/dane4.txt').readlines()
liczby = []
luki = []
for wiersz in plik:
wiersz = wiersz.strip()
liczby.append(int(wiersz))
for i in range(len(liczby)-1):
luka = abs(liczby[i]-liczby[i+1])
luki.append(luka)
count = Counter(luki).most_common()
print('Zadanie 4.3')
print('Luka, krotność:')
for luka, krotnosc in count:
print(luka, krotnosc)
Rozwiązanie Python
4.1
plik = open('Dane_PR2/pary.txt').readlines()
def isPrime(num):
if num <= 1:
return False
for i in range(2, num):
if num % i == 0:
return False
return True
print('Zadanie 4.1')
for wiersz in plik:
wiersz = wiersz.strip().split(' ')
liczba = int(wiersz[0])
for i in range(3, liczba):
roznica = liczba - i
if isPrime(i) and isPrime(roznica) and roznica != 2:
if i < roznica:
print(liczba, i, roznica)
else:
print(liczba, roznica, i)
break
4.2
plik = open('Dane_PR2/pary.txt').readlines()
print('Zadanie 4.2')
for wiersz in plik:
wiersz = wiersz.strip().split()
slowo = wiersz[1]
fragment = slowo[0]
najdluzszy_fragment = slowo[0]
for i in range(1, len(slowo)):
if slowo[i] == slowo[i-1]:
fragment += slowo[i - 1]
else:
fragment = slowo[i]
if len(fragment) > len(najdluzszy_fragment):
najdluzszy_fragment = fragment
print(najdluzszy_fragment, len(najdluzszy_fragment))
4.3
plik = open('Dane_PR2/pary.txt').readlines()
lista = []
for wiersz in plik:
wiersz = wiersz.strip().split()
liczba = int(wiersz[0])
slowo = wiersz[1]
if liczba == len(slowo):
lista.append((liczba, slowo))
lista = sorted(lista)
print('Zadanie 4.3')
for liczba, slowo in lista:
print(liczba, slowo)
break
Rozwiązanie Python
4.1
plik = open('DANE/identyfikator.txt').readlines()
sumy = []
for wiersz in plik:
wiersz = wiersz.strip()
numer = wiersz[3:9]
suma = 0
for cyfra in numer:
suma += int(cyfra)
sumy.append(suma)
najwyzsze_sumy = []
for wiersz in plik:
wiersz = wiersz.strip()
numer = wiersz[3:9]
suma = 0
for cyfra in numer:
suma += int(cyfra)
if suma == max(sumy):
najwyzsze_sumy.append(wiersz)
print('Zadanie 4.1')
for i in najwyzsze_sumy:
print(i)
4.2
plik = open('DANE/identyfikator.txt').readlines()
palindromy = []
for wiersz in plik:
wiersz = wiersz.strip()
seria = wiersz[:3]
numer = wiersz[3:9]
if seria == seria[::-1] or numer == numer[::-1]:
palindromy.append(wiersz)
print('Zadanie 4.2')
for i in palindromy:
print(i)
4.3
plik = open('DANE/identyfikator.txt').readlines()
niepoprawne = []
for wiersz in plik:
wiersz = wiersz.strip()
cyfra_kontrolna = int(wiersz[3:4])
num_1 = (ord(wiersz[0]) - 55) * 7
num_2 = (ord(wiersz[1]) - 55) * 3
num_3 = (ord(wiersz[2]) - 55) * 1
num_5 = int(wiersz[4]) * 7
num_6 = int(wiersz[5]) * 3
num_7 = int(wiersz[6]) * 1
num_8 = int(wiersz[7]) * 7
num_9 = int(wiersz[8]) * 3
waga = num_1 + num_2 + num_3 + num_5 + num_6 + num_7 + num_8 + num_9
cyfra_kontrolna_check = waga % 10
if cyfra_kontrolna != cyfra_kontrolna_check:
niepoprawne.append(wiersz)
print('Zadanie 4.3')
for i in niepoprawne:
print(i)
- Marzec (próbna) 2021_03
Rozwiązanie Python
4.1
plik = open('Dane_2103/galerie.txt').readlines()
galerie = dict()
for wiersz in plik:
wiersz = wiersz.strip().split(' ')
kraj = wiersz[0]
galerie[kraj] = 0
for wiersz in plik:
wiersz = wiersz.strip().split(' ')
kraj = wiersz[0]
galerie[kraj] = galerie[kraj] + 1
print('Zadanie 4.1')
for x in galerie.keys():
print(x, galerie[x])
4.2
plik = open('Dane_2103/galerie.txt').readlines()
max_pow = 0
max_pow_miasto = ''
min_pow = 9999
min_pow_miasto = ''
print('Zadanie 4.2')
for wiersz in plik:
wiersz = wiersz.strip().split(' ')
miasto = wiersz[1]
ilosc_lokali = 0
powierzchnia = 0
for lokal in range(2, len(wiersz), 2):
if int(wiersz[lokal]) > 0:
ilosc_lokali += 1
powierzchnia = powierzchnia + int(wiersz[lokal]) * int(wiersz[lokal+1])
if powierzchnia > max_pow:
max_pow = powierzchnia
max_pow_miasto = miasto
if powierzchnia < min_pow:
min_pow = powierzchnia
min_pow_miasto = miasto
print(miasto, powierzchnia, ilosc_lokali)
print('')
print(max_pow_miasto, max_pow)
print(min_pow_miasto, min_pow)
4.3
plik = open('Dane_2103/galerie.txt').readlines()
max_roznych = 0
max_roznych_miasto = ''
min_roznych = 999
min_roznych_miasto = ''
for wiersz in plik:
wiersz = wiersz.strip().split(' ')
miasto = wiersz[1]
rozne = set()
for i in range(2, len(wiersz), 2):
if int(wiersz[i]) > 0:
powierzchnia = int(wiersz[i]) * int(wiersz[i+1])
rozne.add(powierzchnia)
if len(rozne) > max_roznych:
max_roznych = len(rozne)
max_roznych_miasto = miasto
if len(rozne) < min_roznych:
min_roznych = len(rozne)
min_roznych_miasto = miasto
print('Zadanie 4.3')
print(max_roznych_miasto, max_roznych)
print(min_roznych_miasto, min_roznych)
Rozwiązanie Python
4.1
plik = open('DANE_2105/instrukcje.txt').readlines()
def dopisz(x):
haslo.append(x)
def zmien(x):
haslo.pop()
haslo.append(x)
def usun():
haslo.pop()
def przesun(x):
pos = haslo.index(x)
liczba = ord(x)
ascii = chr(liczba+1)
haslo[pos] = ascii
haslo = []
for wiersz in plik:
wiersz = wiersz.strip().split()
instrukcja = wiersz[0]
litera = wiersz[1]
if instrukcja == 'DOPISZ':
dopisz(litera)
if instrukcja == 'ZMIEN':
zmien(litera)
if instrukcja == 'USUN':
usun()
if instrukcja == 'przesun':
przesun(litera)
print('Zadanie 4.1')
print(len(haslo))
4.2
plik = open('DANE_2105/instrukcje.txt').readlines()
instrukcje = []
for wiersz in plik:
wiersz = wiersz.strip().split()
instrukcje.append(wiersz[0])
biezaca_instrukcja = instrukcje[1]
biezacy_streak = 1
maks_streak = 0
streak_instrukcja = ''
for i in range(0, len(instrukcje) -1):
if biezaca_instrukcja == instrukcje[i + 1]:
biezaca_instrukcja = instrukcje[i + 1]
biezacy_streak += 1
else:
biezaca_instrukcja = instrukcje[i + 1]
biezacy_streak = 1
if biezacy_streak > maks_streak:
maks_streak = biezacy_streak
streak_instrukcja = biezaca_instrukcja
print('Zadanie 4.2')
print(streak_instrukcja, maks_streak)
4.3
plik = open('DANE_2105/instrukcje.txt').readlines()
litery = []
for wiersz in plik:
wiersz = wiersz.strip().split()
if wiersz[0] == 'DOPISZ':
litery.append(wiersz[1])
litery.sort()
biezaca_litera = litery[0]
liczba_wystapien = 1
maks_liczba_wystapien = 0
maks_litera = ''
for i in range(0, len(litery) - 1):
if biezaca_litera == litery[i + 1]:
liczba_wystapien += 1
biezaca_litera = litery[i + 1]
else:
biezaca_litera = litery[i + 1]
liczba_wystapien = 1
if liczba_wystapien > maks_liczba_wystapien:
maks_liczba_wystapien = liczba_wystapien
maks_litera = biezaca_litera
print('Zadanie 4.3')
print(maks_litera, maks_liczba_wystapien)
4.4
plik = open('DANE_2105/instrukcje.txt').readlines()
def dopisz(x):
haslo.append(x)
def zmien(x):
haslo.pop()
haslo.append(x)
def usun():
haslo.pop()
def przesun(x):
pos = haslo.index(x)
liczba = ord(x)
if liczba == 90:
ascii = chr(65)
else:
ascii = chr(liczba+1)
haslo[pos] = ascii
haslo = []
for wiersz in plik:
wiersz = wiersz.strip().split()
instrukcja = wiersz[0]
litera = wiersz[1]
if instrukcja == 'DOPISZ':
dopisz(litera)
if instrukcja == 'ZMIEN':
zmien(litera)
if instrukcja == 'USUN':
usun()
if instrukcja == 'PRZESUN':
przesun(litera)
haslo_cale = ''
for i in haslo:
haslo_cale = haslo_cale + i
print('Zadanie 4.4')
print(haslo_cale)
Rozwiązanie Python
4.1
plik = open('DANE/napisy.txt').readlines()
cyfra = 0
for wiersz in plik:
wiersz = wiersz.strip()
for znak in wiersz:
if znak.isnumeric():
cyfra = cyfra + 1
print('Zadanie 4.1')
print(cyfra)
4.2
plik = open('DANE/napisy.txt').readlines()
haslo = ''
i = 0
for x in range(19, len(plik), 20):
haslo = haslo + plik[x][i]
i += 1
print('Zadanie 4.2')
print(haslo)
4.3
plik = open('DANE/napisy.txt').readlines()
pozycja = -1
haslo = ''
for wiersz in plik:
wiersz = wiersz.strip()
op1 = wiersz + wiersz[0]
op2 = wiersz[len(wiersz) - 1] + wiersz
if op1 == op1[::-1]:
haslo += op1[25]
if op2 == op2[::-1]:
haslo += op2[25]
print('Zadanie 4.3')
print(haslo)
4.4
plik = open('DANE/napisy.txt').readlines()
haslo = ''
for wiersz in plik:
wiersz = wiersz.strip()
num1 = -1
num2 = -1
for znak in wiersz:
if znak.isdigit() and num1 == -1:
num1 = znak
elif znak.isdigit():
num2 = znak
liczba = int(num1 + num2)
if liczba >= 65 and liczba <= 90:
haslo += chr(liczba)
num1 = -1
num2 = -1
if haslo.endswith('XXX'):
break
print('Zadanie 4.4')
print(haslo)
Rozwiązanie Python
4.1
plik = open('Dane_2205/liczby.txt').readlines()
ilosc = 0
pierwsza = -1
for wiersz in plik:
wiersz = wiersz.strip()
if wiersz[0] == wiersz[len(wiersz) -1]:
if pierwsza == -1:
pierwsza = wiersz
ilosc += 1
print('Zadanie 4.1')
print(ilosc, pierwsza)
4.2
plik = open('Dane_2205/liczby.txt').readlines()
def rozkladNaCzynniki(num):
dzielniki = []
i = 2
while num != 1:
while num % i == 0:
num /= i
dzielniki.append(i)
i += 1
return dzielniki
ilosc_dzielnikow = -1
maks_ilosc_dzielnikow = -1
maks_liczba = -1
ilosc_dzielnikow_rozne = -1
maks_ilosc_dzielnikow_rozne = -1
maks_liczba_rozne = -1
for wiersz in plik:
wiersz = wiersz.strip()
ilosc_dzielnikow = len(rozkladNaCzynniki(int(wiersz)))
ilosc_dzielnikow_rozne = len(set(rozkladNaCzynniki(int(wiersz))))
if ilosc_dzielnikow > maks_ilosc_dzielnikow:
maks_ilosc_dzielnikow = ilosc_dzielnikow
maks_liczba = wiersz
if ilosc_dzielnikow_rozne > maks_ilosc_dzielnikow_rozne:
maks_ilosc_dzielnikow_rozne = ilosc_dzielnikow_rozne
maks_liczba_rozne = wiersz
print('Zadanie 4.2')
print('Najwięcej czynników pierwszych:', maks_ilosc_dzielnikow, maks_liczba)
print('Najwięcej różnych czynników pierwszych:', maks_ilosc_dzielnikow_rozne, maks_liczba_rozne)
4.3
plik = open('Dane_2205/liczby.txt').readlines()
liczby = []
for wiersz in plik:
wiersz = int(wiersz.strip())
liczby.append(wiersz)
dobre_trojki = []
for i in range(0, len(liczby) - 1):
x = liczby[i]
for j in range(0, len(liczby) - 1):
if j == i:
continue
y = liczby[j]
if y % x == 0:
for k in range(0, len(liczby) - 1):
if k == j:
continue
z = liczby[k]
if y % x == 0 and z % y == 0:
dobre_trojki.append([x, y, z])
dobre_piatki = []
for i in range(0, len(liczby) - 1):
n1 = liczby[i]
for j in range(0, len(liczby) - 1):
if j == i:
continue
n2 = liczby[j]
if n2 % n1 == 0:
for k in range(0, len(liczby) - 1):
if k == j:
continue
n3 = liczby[k]
if n3 % n2 == 0:
for l in range(0, len(liczby) - 1):
if l == k:
continue
n4 = liczby[l]
if n4 % n3 == 0:
for m in range(0, len(liczby) - 1):
if m == l:
continue
n5 = liczby[m]
if n5 % n4 == 0:
dobre_piatki.append([n1, n2, n3, n4, n5])
print('Zadanie 4.3')
print('a) dobre trójki:', len(dobre_trojki))
for i in dobre_trojki:
print(i[0], i[1], i[2])
print('\nb) dobre piątki:', len(dobre_piatki))
for i in dobre_piatki:
print(i[0], i[1], i[2], i[3], i[4])
Rozwiązanie Python
4.1
plik = open('DANE/liczby.txt').readlines()
podzielne = []
for wiersz in plik:
wiersz = wiersz.strip()
odbicie = wiersz[::-1]
if int(odbicie) % 17 == 0:
podzielne.append(odbicie)
print('Zadanie 4.1')
for i in podzielne:
print(i)
4.2
plik = open('DANE/liczby.txt').readlines()
roznica = -1
liczba = -1
maks_roznica = -1
for wiersz in plik:
wiersz = wiersz.strip()
odbicie = wiersz[::-1]
roznica = abs(int(wiersz) - int(odbicie))
if roznica > maks_roznica:
maks_roznica = roznica
maks_liczba = wiersz
print('Zadanie 4.2')
print(maks_liczba, maks_roznica)
4.3
plik = open('DANE/liczby.txt').readlines()
def isPrime(x):
if x <= 1:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
pierwsze = []
for wiersz in plik:
wiersz = wiersz.strip()
odbicie = wiersz[::-1]
wiersz = int(wiersz)
odbicie = int(odbicie)
if isPrime(wiersz) and isPrime(odbicie):
pierwsze.append(wiersz)
print('Zadanie 4.3')
for i in pierwsze:
print(i)
4.4
plik = open('DANE/liczby.txt').readlines()
rozne = set()
wszystkie = []
for wiersz in plik:
wiersz = wiersz.strip()
rozne.add(wiersz)
wszystkie.append(wiersz)
wszystkie = sorted(wszystkie)
podwojnie = 0
for i in range(0, len(wszystkie)-2):
if wszystkie[i] == wszystkie[i+1]:
podwojnie = podwojnie + 1
if wszystkie[i] == wszystkie[i+2]:
podwojnie = podwojnie - 1
potrojnie = 0
for i in range(0, len(wszystkie)-2):
if wszystkie[i] == wszystkie[i+1] and wszystkie[i] == wszystkie[i+2]:
potrojnie = potrojnie + 1
i = i + 2
print('Zadanie 4.4')
print(len(rozne), podwojnie, potrojnie)