• Non ci sono risultati.

Index of /files/CoursesDev/public/2016/Milan/Introduction to Python/Excercise/05-Funzioni

N/A
N/A
Protected

Academic year: 2021

Condividi "Index of /files/CoursesDev/public/2016/Milan/Introduction to Python/Excercise/05-Funzioni"

Copied!
6
0
0

Testo completo

(1)

Esercitazioni

Funzioni

(2)

Esercitazioni

Esercizio 1 (Sintassi funzioni):

Scrivere una funzione che calcoli il massimo e il minimo valore di una funzione f(x) definita su un intervallo [a,b] valutata in n (default =2000) punti su tale intervallo.

(Solution: max_min_f.py)

Esercizio2 (Recursion):

Implementare una funzione per verificare se una stringa s è palindroma.

Implementare la funzione in due diverse versioni: la versione iterativa e una versione ricorsiva.

(Solution: palindroma.py)

(3)

Esercitazioni

Esercizio3 (Lambda function):

Implementare una funzione che prende in input una lista di parole e ritorna una lista con la lunghezza di ciascuna parola. Usando un ciclo for e successivamente la funzione map.

Implementare una funzione che presa una lista di parole ritorni una lista con le parole con lunghezza maggiore di 3. Usare la funzione filter

(Solution: wordFunc.py)

Esercizio4 (Lambda expression):

Implementare una funzione per il calcolo del prodotto scalare tra due vettori. Successivamente sfruttare opportunamente le funzioni map, reduce e le lambda expression e reimplementare tale prodotto.

(Solution: scalar_prod.py)

(4)

Esercitazioni

Esercizio 5:

• Scrivere una funzione per il calcolo della lunghezza della traiettoria su un piano percorsa da un corpo in moto in N istanti di tempo.

• Si assuma di racchiudere le informazioni relative alle N coordinate spaziali del corpo in una lista nidificata L_vertex [[x1,y1],[x2,y2],2[xn,yn]]:

(5)

Esercitazioni

Esercizio 6:

•Definire la funzione path_lenght(L_vertex)length per calcolare la distanza percorsa tra i punti (1,1)-(3,2)-(2,3)-(1,1).

• Il valore π è equivalente alla circonferenza di un cerchio di raggio 0.5.

•Approssimare il calcolo di π discretizzando la circonferenza con una spezzata poligonale. Le N coordinate dei punti (xi, yi) della spezzata sono date da:

•Utilizzando la funzione del punto precedente calcolare la lunghezza della spezzata e al variare di N l’accuratezza della soluzione.

(Solution: pi_appx.py)

) / 2 2 cos(

1 i N

xi = π sin(2 / )

2

1 i N

yi = π

(6)

Esercitazione

Esercizio 7:

• Implementare il metodo della bisezione per la ricerca degli zeri di una funzione f(x) continua definita su un intervallo [a,b].

• Partendo dall’intervallo [a,b] si valutano i due sottointervalli [a,(a+b)/2]

e [(a+b)/2, b], se f(a)*f((a+b)/2)<0 si reitera sul sottointervallo

[a,(a+b)/2] e viceversa se f((a+b)/2)*f(b)<0. La procedura viene ripetuta fino al raggiungimento della tollerenza prescritta |bi –ai| <epsilon.

• Applicarlo al calcolo degli zeri della funzione f(x)=x3- 10x2+5 nell’intervallo [0.6, 0.8], definendo una funzione bisection con il seguente prototipo:

bisection(f,a,b,toll)  x

(Solution: bisection.py)

Riferimenti

Documenti correlati

 When different objects are mixed in a vector, coercion occurs so that every element in the vector is of the same class.  Objects can be explicitly coerced from one class to

[r]

● Dynamic linking means that the library references are resolved at run time, so the executable searches for them in the paths provided. It means a lighter executable and no need

● Pass è una generica istruzione che non fa niente,  e può stare in qualsiasi posizione del codice. È 

Esercizio 2: leggere il file fort.11 (timestep, angolo) con numpy e costruire il grafico della distribuzione degli angoli tra 0 – 360 gradi a step di 5 gradi.. Infine, stampare a

I dati in input devono essere letti a tastiera e il programma deve proseguire finchè non viene selezionata la terza opzione. Nella presentazione del menu fare uso della

• Riposizionarsi all'inizio del file, leggere riga per riga e stampare solo le righe che non iniziano con # (usare la funzione seek e readline).. • Trovare il campo POINTS, stampare

• Creare un plot della funzione sin(x), usando una linea rossa in dashed style (--); aggiungere il titolo, il nome agli assi in verde con dimensione 20, e una legenda. • Creare