Files
ZUT-notatki/uczelnia/2_semestr/python/laby/czwarty_lab.py
2026-03-30 11:44:13 +02:00

106 lines
2.9 KiB
Python

from math import sqrt
from collections import namedtuple
import random
# zadanie 1
def getDistance(A: tuple[int, int], B: tuple[int,int]) -> float:
return sqrt((A[0] - B[0])**2 + (A[1] - B[1])**2)
def analizujProstokat(A: tuple[int, int], B: tuple[int, int]) -> tuple[float, float]:
a = getDistance((A[0], A[1]), (B[0], A[1]))
b = getDistance((B[0], A[1]), (B[0], B[1]))
circuit = a * 2 + b * 2
field = a * b
return (circuit, field)
# zadanie 2
def analizujProstokat2(prostokat) -> tuple[float, float]:
a = getDistance((prostokat.x1, prostokat.y1), (prostokat.x2, prostokat.y1))
b = getDistance((prostokat.x2, prostokat.y1), (prostokat.x2, prostokat.y2))
circuit = a * 2 + b * 2
field = a * b
return (circuit, field)
def pobieraj_liczby() -> list:
liczby: list[int] = []
while True:
answer = input("Podaj liczbę lub napisz koniec: ")
if answer == "koniec":
break
liczby.append(int(answer))
liczby.sort(reverse=True)
return liczby
# zadanie 8
def levenshtein(s: str, t: str):
d = [[0 for _ in range(len(s))], [0 for _ in range(len(t))]]
for i in range(1, len(s) + 1):
d[i][0] = i
d[0][i] = i
for j in range(1, len(t)):
for i in range(1, len(s)):
if s[i] == t[j]:
subsitutionCost = 0
else:
subsitutionCost = 1
d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + subsitutionCost)
return d
if __name__ == "__main__":
# zad 1
print("=== Zadanie 1 ===")
circuit, field = analizujProstokat((1, 2), (3, 4))
print(f"Obwód wynosi: {circuit}, a pole: {field}")
# zad 2
print("=== Zadanie 2 ===")
prostokat = namedtuple('prostokat', ['x1', 'y1', 'x2', 'y2'])
p = prostokat(1, 2, 3, 4)
circuit, field = analizujProstokat2(p)
print(f"Obwód wynosi: {circuit}, a pole: {field}")
# zad 3
print("=== Zadanie 3 ===")
lista: list = [i for i in range(1, 6)]
print(f"Lista przed zamianą: {lista}")
lista[0], lista[4] = (lista[2], lista[1])
print(f"Lista po zamianie: {lista}")
# zad 4
print("=== Zadanie 4 ===")
inna_lista: list = [i for i in range(1, 1002, 2)]
print(f"Inna lista: {inna_lista}")
# zad 5
print("=== Zadanie 5 ===")
print(pobieraj_liczby())
# zad 6
print("=== Zadanie 6 ===")
lista1: list[int] = [i for i in range(0, 11)]
lista2 = lista1.copy()
lista2[3] = 234
print(f"Lista 1: {lista1}")
print(f"Lista 2: {lista2}")
# zad 7
print("=== Zadanie 7 ===")
lista1 = []
lista2 = []
for i in range(10):
lista1.append(random.randint(0, 10))
lista2.append(random.random())
print(lista1)
print(lista2)
lista1.extend(lista2)
print(f"Lista po dodaniu {lista1}")
print("Próbkowanie:")
print(random.sample(lista1, 3))
# zad 8