22 - python & all web labs

This commit is contained in:
2026-05-02 20:27:02 +05:00
parent ef77f101fa
commit 19af922baf
5781 changed files with 770492 additions and 96 deletions

70
labPython/lab22/task_1.py Normal file
View File

@@ -0,0 +1,70 @@
print(
"task: Graf2\nПостроение матрицы инцидентности неориентированного графа по матрице смежности"
)
import random
def create_file():
n = random.randint(3, 6)
with open("FileName1", "w") as f:
f.write(str(n) + "\n")
for i in range(n):
row = []
for j in range(n):
if i == j:
row.append("0")
else:
row.append(str(random.randint(0, 1)))
f.write(" ".join(row) + "\n")
def read_graph():
try:
with open("FileName1") as f:
n = int(f.readline())
a = [list(map(int, f.readline().split())) for _ in range(n)]
return n, a
except:
return None, None
def build_incidence(n, a):
edges = []
for i in range(n):
for j in range(i, n):
if a[i][j] != 0:
edges.append((i, j))
m = len(edges)
b = [[0] * m for _ in range(n)]
for idx, (i, j) in enumerate(edges):
b[i][idx] = 1
b[j][idx] = 1
return m, b
def write_result(n, m, b):
with open("FileName2", "w") as f:
f.write(f"{n} {m}\n")
for row in b:
f.write(" ".join(map(str, row)) + "\n")
while True:
print("\n1 - создать файл FileName1")
print("2 - выполнить задачу (результат в FileName2)")
print("0 - выход")
c = input(">> ")
if c == "1":
create_file()
print("FileName1 создан")
elif c == "2":
n, a = read_graph()
if n is None:
print("ошибка чтения FileName1")
continue
m, b = build_incidence(n, a)
write_result(n, m, b)
print("результат записан в FileName2")
elif c == "0":
break