• Non ci sono risultati.

Corso di Linguaggi Dinamici Esercitazione 1 sul Python

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di Linguaggi Dinamici Esercitazione 1 sul Python"

Copied!
1
0
0

Testo completo

(1)

Corso di Linguaggi Dinamici Esercitazione 1 sul Python

Esercizio 1. Si implementi l'algoritmo di Bubble Sort sotto forma di programma procedurale in Python, utilizzando le conoscenze acquisite durante la lezione. Il programma deve prendere la lista x = [3, 2, 10, 24, 1, 63, 7, 33, 45, 73], costruire la lista y = [1, 2, 3, 10, 24, 33, 45, 63, 73]

ordinata in maniera crescente secondo l'algoritmo summenzionato e stampare tutti gli elementi di y utilizzando la funzione builtin print. Se possibile, fare uso dei costrutti del Python per semplificare le operazioni dell'algoritmo. Non è richiesta la scrittura di una funzione; è sufficiente una sequenza di statement. L'algoritmo di Bubble Sort (pseudocodice) è riportato nel seguito.

BubbleSort(array[elem1..elemN]) indice ← elemN

while (indice >=0) do for i ← 0 to indice - 1 do if (array[i] > array[i + 1]) then swap(array[i], array[ i + 1]) indice ← indice - 1

Tempo a disposizione: 45 minuti.

Esercizio 2. Sia data una funzione f(x) continua e derivabile, e sia [x

a

, x

b

] un intervallo su cui f(x) è definita. Si consideri inoltre il partizionamento P = [x

a

, x

a1

, x

a2

, …, x

b

] di [x

a

, x

b

]. Si definiscano, per ciascun sottointervallo [x

j

, x

j+1

] del partizionamento (j=a, …, b-1), il valori m

j

=min f(x) in [x

j

, x

j+1

] ed M

j

=max f(x) in [x

j

, x

j+1

]. Le due somme di Darboux, definite di seguito:

 =  

∗ 







 =  

∗ 







rappresentano utili approssimazioni per difetto e per eccesso dell'integrale di f(x) nell'intervallo x(a), x(b). Si scriva un programma in Pythn che definisce una lista x contenente un partizionamento valido P dell'intervallo [1, 3], una lista m per gli m

j

, una lista M per gli M

j

e calcoli s(P), S(P) per la funzione f(x) = x^2 + 1. Si studi il comportamento di s(P) e di S(P) al variare della grandezza dei singoli intervalli del partizionamento. A tal fine, si suggerisce di rendere parametrica la costruzione delle liste x, m ed M (definendo una variabile che specifica il numero di intervalli). Si osservi, inoltre, che la funzione f(x) = x^2 + 1 è strettamente crescente; se ne deduca una opportuna semplificazione nel calcolo di m

j

ed M

j

.

Tempo a disposizione: 45 minuti.

Riferimenti

Documenti correlati

• print_list(l) che stampa tutti gli elementi di una lista passata come parametro entrambe le funzioni devono sfruttare solo le 4 operazioni messe a disposizione da Lista. Tempo

 In Python, le closure (blocchi di codice cui sono associati una o più variabili) possono essere. implementate in due

Ciascuna istanza di animale è rappresentata tramite un oggetto appartenente ad una sottoclasse della classe Animale, che definisce il comportamento

 Creazione di una classe contenente il codice dell'applicazione grafica (widget, handler).  Esecuzione del

 Python mette a disposizione il modulo logging per l'implementazione di molteplici canali

L'applicazione zoo_stats.py prende in ingresso il file di log generato da zoo.py, estrae lo spazio medio percorso da tutti gli animali presenti nello zoo, genera altrettanti

(2) Arrays with a size of 1 along a particular dimension act like the array with the largest size along that dimension. The values of the array are assumed to be the same along

A decorator creates a "wrapper" function around the provided function func. @wraps