Skip to content

Commit e6a5d8e

Browse files
committed
_
1 parent e0f4302 commit e6a5d8e

File tree

2 files changed

+83
-23
lines changed

2 files changed

+83
-23
lines changed

Python/Esercizi/Alberi.py

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def ex7(tree, key):
202202

203203
#%% es_8
204204
"""
205-
Esame fondamenti di programmazione 20 giugno 23:
205+
Esame fondamenti di programmazione 20 giugno 2023:
206206
Dato un albero binario composto da nodi aventi per chiave degli interi, si
207207
trasformi l'albero in modo tale che ogni figlio sinistro sia minore del figlio
208208
destro; se questa proprietà non viene rispettata bisogna scambiare la posizione
@@ -251,6 +251,51 @@ def ex8(tree):
251251

252252
#%% es_9
253253
"""
254+
Esame fondamenti di programmazione 26 gennaio 2023:
255+
Si definisca una funzione che riceve in ingresso la radice di un albero binario;
256+
la funzione deve restituire la somma di tutti i valori associati ai nodi che
257+
sono ad un livello pari nell'albero con radice, e sottraendo tutti i
258+
valori associati ai nodi ad un livello dispari.
259+
La radice si assume a livello 0.
260+
261+
Esempio:
262+
263+
______5______ ______2______
264+
| | | |
265+
8__ ___2___ __ 7__ ___5___
266+
| | | | | | |
267+
3 9 1 _4_ 3_ _0_ _5_
268+
| | | | | | |
269+
2 -1 1 8 3 2 9
270+
271+
OUTPUT = 8 OUTPUT = -22
272+
"""
273+
274+
275+
def ex9(tree):
276+
# Inserire qui il proprio codice
277+
pass
278+
279+
tree = [2,
280+
[7,
281+
[4,
282+
[2, None, None],
283+
[-1, None, None]],
284+
[3, None,
285+
[1, None, None]]],
286+
[5,
287+
[0,
288+
[8, None, None]
289+
[3, None, None]],
290+
[5,
291+
[2, None, None],
292+
[9, None, None]]]]
293+
294+
tree = albero.AlberoBinario.fromList(tree)
295+
print(ex9(tree))
296+
297+
#%% es_10
298+
"""
254299
Esame introduzione agli algoritmi 27 giugno 2022:
255300
Dato un albero binario di ricerca (ovvero un albero dove ogni sottoalbero
256301
sinistro ha valori più bassi del nodo padre, e ogni sottoalbero destro ha
@@ -269,7 +314,7 @@ def ex8(tree):
269314

270315
import albero
271316

272-
def ex9(tree):
317+
def ex10(tree):
273318
pass
274319

275320
tree = [10, # 10
@@ -282,5 +327,5 @@ def ex9(tree):
282327
[20, None, None]]]
283328

284329
tree = albero.AlberoBinario.fromList(tree)
285-
print(ex9(tree))
330+
print(ex10(tree))
286331

Python/Esercizi/Matrici.py

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,15 @@ def es0(h, l, k):
3232

3333
#%%
3434
""" ES 1 - facile
35-
Riutilizzando il codice dell'esercizio precedente, definire una funzione che data in input una lista di tuple, dove ogni tupla contiene una 3 valori
36-
tali che 0 <= lista[0] < l, 0 <= lista[1] < h (rappresentanti coordinate xy) e lista[2] = carattere, modifichi e ritorni una matrice di caratteri
37-
alfanumerici (definire a piacimento i caratteri h, l, x della funzione precedente).
38-
La matrice ritornata deve avere nelle coordinate (lista[0][0], lista[0][1]) il carattere lista[0][3].
39-
Nel caso in cui una tupla cerchi di modificare un punto fuori dalla matrice, la tupla in questione va ignorata.
35+
Riutilizzando il codice dell'esercizio precedente, definire una funzione che
36+
data in input una lista di tuple, dove ogni tupla contiene una 3 valori tali
37+
che 0 <= lista[0] < l, 0 <= lista[1] < h (rappresentanti coordinate xy) e
38+
lista[2] = carattere, modifichi e ritorni una matrice di caratteri alfanumerici
39+
(definire a piacimento i caratteri h, l, x della funzione precedente).
40+
La matrice ritornata deve avere nelle coordinate (lista[0][0], lista[0][1]) il
41+
carattere lista[0][3].
42+
Nel caso in cui una tupla cerchi di modificare un punto fuori dalla matrice, la
43+
tupla in questione va ignorata.
4044
"""
4145

4246
def es1(lista):
@@ -79,7 +83,8 @@ def es2(matrice):
7983

8084
#%%
8185
""" ES 3 - medio/facile
82-
Date 2 matrici 4x4 di interi, sommare i valori con stesse coordinate e salvare i risultati in una matrice 8x2 da ritornare.
86+
Date 2 matrici 4x4 di interi, sommare i valori con stesse coordinate e salvare
87+
i risultati in una matrice 8x2 da ritornare.
8388
"""
8489
def es3(matrice1, matrice2):
8590
#inserisci qui il tuo codice
@@ -103,15 +108,19 @@ def es3(matrice1, matrice2):
103108
#%%
104109
""" ES 4 - medio/facile
105110
Riprendendo il codice dell'es 1, implementare la seguente funzionalità opzionale:
106-
Le tuple possono contenere un quarto valore 'origine' che indichi il punto di origine della matrice, che di default è in alto a sinistra.
111+
Le tuple possono contenere un quarto valore 'origine' che indichi il punto
112+
di origine della matrice, che di default è in alto a sinistra.
107113
Questo parametro può essere solo uno di tra 4:
108114
- UL 'UP-LEFT'
109115
- UR 'UP-RIGHT'
110116
- DL 'DOWN-LEFT'
111117
- DR 'DOWN-RIGHT'
112-
Se il parametro non è presente viene contato l'ultimo quarto valore presente in una tupla precedente (se il valore di origine non è stato alterato
113-
lo si consideri UL). Se viene passato un valore origine non pertinente la tupla non va considerata.
114-
Nella lista d'esempio, la terza tupla va ignorata, di consequenza anche il la modifica dell'origine va ignorata.
118+
Se il parametro non è presente viene contato l'ultimo quarto valore presente
119+
in una tupla precedente (se il valore di origine non è stato alterato
120+
lo si consideri UL). Se viene passato un valore origine non pertinente la
121+
tupla non va considerata.
122+
Nella lista d'esempio, la terza tupla va ignorata, di consequenza anche il
123+
la modifica dell'origine va ignorata.
115124
"""
116125

117126
def es4(lista):
@@ -131,19 +140,23 @@ def es4(lista):
131140

132141
#%%
133142
""" ES 5 - medio
134-
Data in input una matrice di '-', scrivere una funzione che, tramite un ciclo while, consenta di modificare singolarmente ogni elemento della matrice in un
135-
elemento dato in input (eseguendo una stampa a video della matrice ad ogni iterazione). Tramite terminale bisognerà poter scrivere le coordinate e l'elemento
136-
nel quale modificare il '-'. Se si tenterà di modificare un elemento già modificato, verrà invece modificato il primo elemento successivo non modificato
137-
(spostandosi quindi verso destra nella matrice). Se tutti gli elementi sono già stati modificati si mandi un messaggio di errore e si chiuda il programma.
143+
Data in input una matrice di '-', scrivere una funzione che, tramite un ciclo
144+
while, consenta di modificare singolarmente ogni elemento della matrice in un
145+
elemento dato in input (eseguendo una stampa a video della matrice ad ogni
146+
iterazione). Tramite terminale bisognerà poter scrivere le coordinate e l'elemento
147+
nel quale modificare il '-'. Se si tenterà di modificare un elemento già modificato,
148+
verrà invece modificato il primo elemento successivo non modificato (spostandosi
149+
quindi verso destra nella matrice). Se tutti gli elementi sono già stati modificati
150+
si mandi un messaggio di errore e si chiuda il programma.
138151
Gestire tutti i possibili errori che potrebbero generarsi.
139152
(impostare subito una condizione di uscita dal while, per evitare di creare un ciclo infinito)
140153
141154
Esempio:
142155
143-
Input: -
144-
coordintate = 2, 0 | -> 9 volte
145-
nuovo valore = X |
146-
-
156+
Input:
157+
coordintate = 2, 0
158+
nuovo valore = X
159+
147160
148161
Output:
149162
- - - - - X - - X - - X - - X - - X - - X - - X X - X X X X
@@ -163,8 +176,10 @@ def es5(matrice):
163176

164177
#%%
165178
""" ES 6 - medio
166-
Data in input una matrice, si sommi ogni elemento con il precedente, seguendo una spirale che parte dall'origine e gira in senso orario. Si ritorni la matrice modificata e il
167-
valore che, lungo la spirale, è stato calcolato più di frequente, in caso di parità si ritorni il valore maggiore.
179+
Data in input una matrice, si sommi ogni elemento con il precedente, seguendo
180+
una spirale che parte dall'origine e gira in senso orario. Si ritorni la matrice
181+
modificata e il valore che, lungo la spirale, è stato calcolato più di frequente,
182+
in caso di parità si ritorni il valore maggiore.
168183
"""
169184

170185
def es6(matrice):

0 commit comments

Comments
 (0)