Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi di python su matrice emessaggi, Prove d'esame di Fondamenti di informatica

Esercizi di python su matrice emessaggi

Tipologia: Prove d'esame

2019/2020

Caricato il 18/04/2022

taytmaters
taytmaters 🇮🇹

18 documenti

1 / 5

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
A, 1,2,3
A,4,5,6
B,1,2
A,3,4,4
B,6,8
C,3
C,6
C,4
D,1,1
D,1,1
#Dizionario liste di liste
matrici={}
with open('file.txt') as f:
for l in f:
l=l.strip()
if len(l)>0:
s = l.split(',')
riga = [int(s[i]) for i in range(1,len(s))]
if s[0] in matrici:
matrici[s[0]].append(riga)
else:
matrici[s[0]] = [riga]
print(matrici)
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Esercizi di python su matrice emessaggi e più Prove d'esame in PDF di Fondamenti di informatica solo su Docsity!

A, 1,2,

A,4,5,

B,1,

A,3,4,

B,6,

C,

C,

C,

D,1,

D,1,

#Dizionario liste di liste matrici={} with open('file.txt') as f: for l in f: l=l.strip() if len(l)>0: s = l.split(',') riga = [int(s[i]) for i in range(1,len(s))] if s[0] in matrici: matrici[s[0]].append(riga) else: matrici[s[0]] = [riga] print(matrici)

#funzione per capire se 2 matrici hanno colonna uguale def colonnauguale4(m1, j1, m2, j2): if len(m1) != len(m2): return False for i in range(len(m1)): if m1[i][j1] != m2[i][j2]: return False return True def colonnauguale3(m1, m2, j2): for j in range(len(m1[0])): if colonnauguale4(m1, j, m2, j2): return True return False def colonnauguale2(m1, m2): for j in range(len(m2[0])): if colonnauguale3(m1, m2, j): return True return False #1. In questo punto chiamo A la prima matrice. Stampare tutte le matrici che abbiano #una colonna uguale ad una della matrice A with open('1.txt','w') as o: key= list(matrici.keys()) for i in range(1,len(key)): if colonnauguale2(matrici[key[0]], matrici[key[i]]): o.write(str(key[i]+' Ha un colonna uguale ad A\n'))

return False for j in range(len(m1[0])): if not colonnauguale3(m2,m1,j): return False for j in range(len(m2[0])): if not colonnauguale3(m1, m2, j): return False return True with open('4.txt','w') as o: key = list(matrici.keys()) for i in range (len(key)): for j in range(i+1,len(key)): if tutte_colonneuguali(matrici[key[i]], matrici[key[j]]): o.write(key[i] + ' = ' + key[j] + '\n') #5. Stampare le matrici sudoku (anche non quadrate), cioè quelle per cui la somma #di tutte le righe e di tutte le colonne ha lo stesso valore. def sudoku(m): s = sum(m[0]) for r in m: if sum(r) != s: return False for j in range(len(m[0])): sj = 0 for r in m: sj += r[j] #somma colonna j-esima if sj != s: return False return True

with open('5.txt','w') as o: for k, v in matrici.items(): if sudoku(v): o.write(k+ ' e' sudoku'+'\n')