• Non ci sono risultati.

Corso di Linguaggi Dinamici A.A. 2010/2011 Esercitazione 1 – 2 maggio 2011

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di Linguaggi Dinamici A.A. 2010/2011 Esercitazione 1 – 2 maggio 2011"

Copied!
1
0
0

Testo completo

(1)

Corso di Linguaggi Dinamici A.A. 2010/2011

Esercitazione 1 – 2 maggio 2011

Esercizio 1. L'applicazione zoo consiste in uno zoo virtuale, attualmente composto da cani (max. 10 unità), cavalli (max. 10 unità), leoni (max. 10 unità). Ciascuna istanza di animale è rappresentata tramite un oggetto appartenente ad una sottoclasse della classe Animale, che definisce il comportamento dell'animale stesso attraverso i seguenti metodi: parla(), muove(), mangia(), beve(), dorme(), nome(), eta(). Ad intervalli regolari di 1 secondo, l'applicazione decide di terminare (con una probabilità di 0.05) oppure di istanziare casualmente un oggetto rappresentante un animale (con una probabilità di 0.95). Successivamente, viene invocato casualmente uno dei metodi su esposti.

Si scarichi l'archivio zoo.zip dell'applicazione zoo dalla pagina Web del sito del corso. Si spacchetti l'archivio e si familiarizzi con il codice.

Tempo a disposizione: 20 minuti.

Esercizio 2. Si modifichi la classe Animale in modo tale da far sollevare una eccezione di tipo RuntimeError in caso di invocazione diretta dei suoi metodi parla(), muove(), mangia(), beve(), dorme(). L'eccezione deve stampare lo stesso messaggio presente nei summenzionati metodi.

Tempo a disposizione: 20 minuti.

Esercizio 3. Si modifichi lo scheletro del programma principale zoo.py in modo tale da sostituire il ramo if...then...else del ciclo principale con del codice polimorfo. A tal scopo, si definisca una lista azioni contenente i nomi dei metodi parla(), muove, mangia(), beve(), dorme() e si invochi dinamicamente il metodo opportuno (scelto casualmente).

Tempo a disposizione: 50 minuti.

Riferimenti

Documenti correlati

Anche per questo motivo, la maggior parte degli esemplari è caratterizzata dal possedere ampie riserve di grasso, che si rivelano utili per assicurare

•  il canto degli uccelli è un istinto ma i maschi sono stonati se non hanno ascoltato in un certo periodo dell’infanzia il canto di un maschio adulto della loro specie..

Si implementi l'algoritmo di Bubble Sort sotto forma di programma procedurale in Python, utilizzando le conoscenze acquisite durante la lezione.. Se possibile, fare uso

I nomi possono essere contenuti in array; per la generazione di numeri casuali si faccia affidamento alla funzione random (pydoc random); per le attese, si faccia

• 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

Il costruttore della classe Parser.py prende in ingresso il nome di un file e costruisce un dizionario multilivello D del tipo:. D[1.0][nome] = 'cavallo1'

Si sostituisca il buffer di testo con un'area di disegno all'interno della quale sono mostrate delle icone rappresentative degli animali. Si arricchisca la classe Animale con

Il dialogo di selezione file permette di impostare un nuovo file di configurazione e di reinizializzare lo stato interno dello zoo.. Infine, l'intervallo di