Viene richiesto di scrivere funzioni per risolvere vari problemi, e viene fornito anche uno strumento che mette alla prova il comportamento delle funzioni che avete scritto.
Create una cartella, nella quale saranno creati sia i file contenenti le funzioni che avete scritto (una per ciascun file), sia i file di test (forniti dal docente).
I nomi di questi file devono essere esattamente i seguenti:
labEserc7_1.py
, labEserc7_2.py
, labEserc7_3.py
, labEserc7_4.py
, labEserc7_5.py
, labEserc7_6.py
, per i cinque files contenenti le funzioni scritte da voi,test_labEserc7_1.py
, test_labEserc7_2.py
, test_labEserc7_3.py
, test_labEserc7_4.py
, test_labEserc7_5.py
, test_labEserc7_6.py
per i file di test (forniti dal docente)Per ciascuno dei problemi elencati nel seguito dovrete scrivere un file contenente la soluzione richiesta, in cui il nome della funzione deve essere esattamente quello indicato nel testo seguente.
Una volta salvato il file nella cartella, e salvato anche il corrispondente file di test fornito dal docente, dovete eseguire il comando
python3 test_labEserc7_X.pydove
X
è il numero da 1 a 5 corrispondente all'esercizio che volete verificare.
Il risultato del test è una schermata (o più schermate) nella quale si mostra:
Per ogni funzione scritta vengono eseguite chiamate con diversi valori dei parametri. L'esito dei test viene riportato con il carattere
Scrivere una funzione crea_lista(a, b)
che:
a
e b
, con b
naturaleTypeError
se i parametri ricevuti non sono numeri;ValueError
se il secondo parametro non è un numero naturale;b
naturali a partire da a
. Ad esempio, l'istruzione s = crea_lista(15, 5)
deve assegnare a s
la lista [15, 16, 17, 18, 19]
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc7_1.py
La soluzione deve essere prodotta in un file di nome labEserc7_1.py
Scrivere una funzione con un parametro opzionale crea_lista(a, b, passo=1)
che si comporta come la funzione al punto precedente nel caso venga invocata con due argomenti, mentre nel caso di invocazione con tre argomenti crea e restituisce una lista di b
numeri naturali a partire da a
con passo uguale al terzo argomento. Ad esempio, l'istruzione s = crea_lista(15, 5, 3)
deve assegnare a s
la lista [15, 18, 21, 24, 27]
Anche in questo caso si deve sollevare una eccezione se i parametri ricevuti non sono numerici. Il terzo parametro può essere anche zero o negativo.
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc7_2.py
La soluzione deve essere prodotta in un file di nome labEserc7_2.py
Scrivere una funzione azzera_elementi_negativi(valori)
che:
valori
, in cui ciascun elemento è un numero (int
oppure float
);TypeError
se il parametro ricevuto non è una lista, o se gli elementi della lista non sono tutti numeri;return
oppure contiene solo dei return
senza alcuna espressione), ma si limita a lasciare la lista modificata
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc7_3.py
La soluzione deve essere prodotta in un file di nome labEserc7_3.py
Scrivere una funzione posiz_minimo(valori, start=0)
che:
valori
;TypeError
se il parametro ricevuto non è una lista;ValueError
se il parametro ricevuto è una lista vuota;TypeError
se il parametro ricevuto contiene elementi non numerici;ValueError
se il parametro start
non è un indice corretto per la sequenza valori
;start
. Il parametro start
è opzionale, e vale 0 se non viene specificato.Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc7_4.py
La soluzione deve essere prodotta in un file di nome labEserc7_4.py
Scrivere una funzione massimi_locali(sequenza)
che:
sequenza
;TypeError
se il parametro ricevuto non è una lista;
TypeError
se il parametro ricevuto contiene elementi non numerici;sequenza
. Un elemento di una sequenza è un massimo locale se:
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc7_5.py
La soluzione deve essere prodotta in un file di nome labEserc7_5.py
Scrivere una funzione bitonica(sequenza)
che:
sequenza
;TypeError
se il parametro ricevuto non è una lista;
TypeError
se il parametro ricevuto contiene elementi non numerici;True
se la sequenza è bitonica. Una sequenza è bitonica se è composta da una prima parte strettamente crescente, composta da almeno due elementi, seguita da una parte strettamente decrescente, anche questa composta da almeno due elementi. Ad esempio sono bitoniche le seguenti sequenze:
2 4 13 34 23
3 4 1
27 48 113 134 23 12
Il file di test da memorizzare nella propria cartella per questo esercizio è test_labEserc7_6.py
La soluzione deve essere prodotta in un file di nome labEserc7_6.py