Laboratorio di Python

Размер: px
Начинать показ со страницы:

Download "Laboratorio di Python"

Транскрипт

1 Laboratorio di Python Code Lab13 28 Aprile 2017

2 Outline Correzione esercizi per oggi Code Teoria Esercizi Esercizi per casa

3 Esercizio 1 per casa Scrivere una funzione che determina se uno studente può prendere il punto aggiuntivo all esame (ovvero se ha consegnato almeno 10 volte gli esercizi)

4 Esercizio 1 per casa Scrivere una funzione che determina se uno studente può prendere il punto aggiuntivo all esame (ovvero se ha consegnato almeno 10 volte gli esercizi) 1 import s t u d e n t i 2 3 def p u o p r e n d e r e p u n t o ( s ) : 4 return len ( s t u d e n t i. c o n s e g n e s t u d e n t e ( s ) )>=10

5 Esercizio 2 per casa Scrivere un programma che stampa un istogramma (con gli asterischi) delle consegne per ogni laboratorio (anche quelli con 0 consegne), ordinate dal laboratorio con più consegne a quello con meno consegne. I laboratori sono numerati da 1 a 15.

6 Esercizio 2 per casa 1 import s t u d e n t i 2 #s t a t i s t i c a consegne >0 3 ds = s t u d e n t i. s t a t i s t i c a c o n s e g n e ( ) 4 #aggiungo g l i z e r i 5 f o r i i n range ( 1, 1 6 ) : 6 i f i not i n ds : 7 ds [ i ] = 0 8 #r e s t i t u i s e i l secondo elemento d i una t u p l a 9 def second ( t ) : 10 return t [ 1 ] 11 ds. i t e m s ( ) r e s t i t u i s e una sequenza d i c o p p i e ( c h i a v e, v a l o r e ), l a t r a s f o r m o i n una l i s t a o r d i n a t a con s o r t e d, o r d i n a n d o l a i n modo d e c r e s c e n e ( r e v e r s e=true ) e i n base a l secondo elemento d e l l a t u p l a. 12 l i s t a = sorted ( ds. i t e m s ( ), key=second, r e v e r s e=true ) 13 f o r nlab, f r e q i n l i s t a : 14 p r i n t ( nlab, ' ' f r e q, sep=' \ t ' )

7 Esercizio 3 per casa Scrivere una funzione che prende in input una stringa e crea un dizionario in cui le chiavi sono i caratteri alfanumerici (string.digits+string.ascii letters) presenti nella stringa i valori sono dei dizionari che hanno: come chiavi tutti i caratteri che seguono il carattere considerato come valori la frequenza con cui quel carattere segue il carattere considerato

8 Esercizio 3 per casa 1 import s t r i n g 2 d e f s t a t f r e q ( s ) : 3 d r e s = d i c t ( ) 4 an = s t r i n g. d i g i t s+s t r i n g. a s c i i l e t t e r s 5 #non c o n s i d e r o l ' u l t i m a l e t t e r a p e r c h e ' non ha s u c c 6 f o r i i n range ( l e n ( s ) 1) : 7 c = s [ i ] 8 i f c i n an : 9 i f c not i n d r e s : 10 #nuovo d i z. p e r l e l e t t e r e s e g u e n t i c d r e s [ c ] = d i c t ( ) 12 # i n c u i i n s e r i s c o f r e q d e l s u c c e s s o r e d i c 13 d r e s [ c ] [ s [ i +1]] = 1 14 e l s e : #c e ' g i a ' p r e s e n t e 15 d r e s [ c ] [ s [ i +1]] = d r e s [ c ]. g e t ( s [ i +1],0)+1 16 r e t u r n d r e s

9 Outline Correzione esercizi per oggi Code Teoria Esercizi Esercizi per casa

10 Code Vogliamo utilizzare una nuova struttura dati: le code. Collezione ordinata e mutabile di elementi Ha un inizio (head) e una fine (tail) Operazioni: Accodamento (enqueue), aggiunge un elemento alla fine della coda Estrazione (dequeue), rimuove un elemento all inizio della coda

11 Code Vogliamo utilizzare una nuova struttura dati: le code. Collezione ordinata e mutabile di elementi Ha un inizio (head) e una fine (tail) Operazioni: Accodamento (enqueue), aggiunge un elemento alla fine della coda Estrazione (dequeue), rimuove un elemento all inizio della coda Questa struttura non esiste nativamente in Python, quindi dobbiamo costruircela noi, come tipo di dato astratto (abstract data type, ADT). Dobbiamo quindi costruire Un interfaccia, cioè (i nomi del)le le funzioni con cui manipoleremo il tipo di dato (e lo faremo solo con quelle) Un implementazione, cioè il modo con cui concretamente sono rappresentati i dati ed eseguite le operazioni in Python. Una volta costruita, non accederemo più a questa rappresentazione concreta per manipolare i dati.

12 Interfaccia e Implementazione Costruire un file di Python coda.py che contenga un implementazione tramite liste della seguente interfaccia. Poiché si tratta di un interfaccia, cioè un accordo comune su come utilizzare le code, nomi e numero di file, funzioni e parametri deve essere esattamente lo stesso. queue() - Crea una coda vuota enqueue(a, c) - Accoda a alla fine della coda c. Ritorna inoltre c. dequeue(c) - Rimuove il primo elemento della coda c e ne ritorna il valore. Se c è vuota ritorna None. is empty(c) - Ritorna True sse la coda c è vuota head(c) - Ritorna il primo elemento della coda c (senza rimuoverlo). Se c è vuota ritorna None. tail(c) - Ritorna l ultimo elemento della coda c (senza rimuoverlo). Se c è vuota ritorna None. length(c) - Ritorna il numero di elementi presenti nella coda

13 coda.py 1 def queue ( ) : 2 r e t u r n [ ] 3 4 def enqueue ( a, c ) : 5 c. append ( a ) 6 r e t u r n c 7 8 def dequeue ( c ) : 9 i f l e n ( c ) >0: 10 a = c [ 0 ] 11 d e l c [ 0 ] 12 r e t u r n a 13 r e t u r n None def i s e m p t y ( c ) : 16 r e t u r n l e n ( c ) == 0 17 def head ( c ) : 18 i f l e n ( c ) >0: 19 r e t u r n c [ 0 ] 20 e l s e : 21 r e t u r n None def t a i l ( c ) : 24 i f l e n ( c ) >0: 25 r e t u r n c [ 1] 26 e l s e : 27 r e t u r n None def l e n g t h ( c ) : 30 r e t u r n l e n ( c )

14 Ufficio Postale All ufficio postale apre un solo sportello. Arrivano Michael, Davide, Matteo e Simone. Come rappresentiamo questo con una coda in Python? 1 from coda import 2 up = queue ( ) 3 enqueue ( Michael, up ) 4 enqueue ( Davide, up ) 5 enqueue ( Matteo, up ) 6 enqueue ( Simone, up ) Ma se volessimo costruire direttamente la coda up e riempirla contestualmente con 4 elementi? Possiamo sfruttare il fatto che enqueue restituisce anche la coda stessa. Costruisco una nuova coda a partire dalla coda vuota: 1 from coda import 2 up = enqueue ( Simone, enqueue ( Matteo, enqueue ( Davide, enqueue ( Michael, queue ( ) ) ) ) )

15 Outline Correzione esercizi per oggi Code Teoria Esercizi Esercizi per casa

16 Aggiornamento dell interfaccia Aggiungere al file coda.py una funzione pretty print q(c) che stampa il contenuto della coda c senza virgole o parentesi, come una sequenza di elementi separati da spazi, che inizia con il carattere (potete pensarlo come lo sportello al quale sono in coda le persone). Esempio c = enqueue( Q, enqueue( T, enqueue( S, enqueue( P, queue())))) allora verrà stampato: P S T Q

17 Aggiornamento dell interfaccia Aggiungere al file coda.py una funzione pretty print q(c) che stampa il contenuto della coda c senza virgole o parentesi, come una sequenza di elementi separati da spazi, che inizia con il carattere (potete pensarlo come lo sportello al quale sono in coda le persone). Esempio c = enqueue( Q, enqueue( T, enqueue( S, enqueue( P, queue())))) allora verrà stampato: P S T Q 1 def p r e t t y p r i n t q ( c ) : 2 p r i n t (, end= ) 3 f o r e i n c : 4 p r i n t ( e, end= ) 5 p r i n t ( )

18 Attenzione! Negli esercizi seguenti ci dimenticheremo dell implementazione che abbiamo costruito. Accederemo alle code solo con le funzioni presenti nell interfaccia.

19 Esercizio d esame semplificato Si scriva una funzione Python fattorizza(a) che, data una coda a i cui elementi sono etichettati da numeri naturali positivi, ritorni una nuova coda b (i cui elementi sono numeri naturali) ottenuta da a rimpiazzando ciascun numero naturale con i suoi fattori primi (presi in un qualunque ordine e con la loro molteplicità). Ad esempio, sulla coda enqueue(4,enqueue(3,enqueue(10,queue()))), la funzione potrebbe ritornare la coda enqueue(2,enqueue(2,enqueue(3,enqueue(5,enqueue(2,queue()))))). La coda a può essere distrutta. E possibile usare la funzione ausiliaria: 1 def s c o m p o s i z i o n e ( n ) : 2 f a t t o r i = [ ] 3 d = 2 4 while n >= d : 5 i f n % d == 0 : 6 f a t t o r i. append ( d ) 7 n = n//d #NB: d i v i s i o n e i n t e r a 8 e l s e : 9 d = d return f a t t o r i

20 Esercizio d esame 1 from coda import #c o s i ' non s e r v e coda. 2 3 def f a t t o r i z z a ( a ) : 4 r e s = queue ( ) 5 while not i s e m p t y ( a ) : 6 f o r i i n s c o m p o s i z i o n e ( head ( a ) ) : 7 enqueue ( i, r e s ) 8 dequeue ( a ) 9 return r e s

21 Usare le code per una simulazione Un piccolo negozio con una sola cassa deve decidere se assumere una seconda cassiera. Per farlo vuole eseguire una simulazione sui tempi di attesa attuali alla cassa. Costruire una funzione simulazione(durata) che simula i clienti in coda alla cassa per una certa durata. In particolare: La durata è espressa in minuti. Il passare dei minuti è simulato semplicemente dall aumento di uno di una variabile intera. Un cliente è rappresentato in una coda di interi dal minuto al quale è arrivato Ad ogni minuto: se c è un cliente in coda, viene servito (dunque il tempo di servizio è costante ed uguale ad un minuto) Con probabilità 1/4, arriva un cliente, con probabilità 1/4 arrivano due clienti e con probabilità 2/4 non arriva nessun cliente. Usare la funzione random.randint(0,3) per decidere quanti clienti arrivano, e, se necessario, inserirli in coda. (Suggerimento: usare 0 e 3 per decidere nessun cliente, 1 e 2 per l arrivo di 1 o 2 clienti.) La funzione stamperà opportuni messaggi e la situazione della coda (usare la pretty print). In particolare, ogni volta che un cliente esce dalla coda, dovrà stampare quanto tempo ha aspettato (suggerimento: differenza tra il valore del cliente e il minuto attuale).

22 Esempio: simulazione(5) *** Minuto 0 *** Arriva un cliente *** Minuto 1 *** 0 Finito di servire un cliente, che ha aspettato 1 minuti Non e' arrivato nessun cliente *** Minuto 2 *** Arrivano due clienti *** Minuto 3 *** 2 2 Finito di servire un cliente, che ha aspettato 1 minuti Arrivano due clienti *** Minuto 4 *** Finito di servire un cliente, che ha aspettato 2 minuti Arrivano due clienti

23 Soluzione 1 def s i m u l a z i o n e ( d u r a t a ) : 2 c a s s a = queue ( ) 3 f o r minuto i n range ( d u r a t a ) : 4 p r i n t ( Minuto, minuto, ) 5 p r e t t y p r i n t q ( c a s s a ) 6 i f not i s e m p t y ( c a s s a ) : 7 c l = dequeue ( c a s s a ) 8 a t t e s a = minuto c l 9 p r i n t ( F i n i t o d i s e r v i r e un c l i e n t e, che ha a s p e t t a t o, a t t e s a, m i n u t i ) 10 a r r i v o = random. r a n d i n t ( 0, 3 ) 11 i f a r r i v o == 1 : 12 p r i n t ( A r r i v a un c l i e n t e ) 13 enqueue ( minuto, c a s s a ) 14 e l i f a r r i v o == 2 : 15 p r i n t ( A r r i v a n o due c l i e n t i ) 16 enqueue ( minuto, c a s s a ) 17 enqueue ( minuto, c a s s a ) 18 e l s e : 19 p r i n t ( Non e ' a r r i v a t o nessun c l i e n t e )

24 Migliorare la simulazione Scrivere una nuova funzione simulazione2(durata), molto simile alla precedente, ma che in più tiene traccia: Del totale di clienti arrivati durante la simulazione Della somma totale dei tempi di attesa Del tempo massimo di attesa registrato La funzione non stampa nulla ma restituisce una tupla che contiene le seguenti informazioni: (durata, totale clienti, media attesa, attesa massima)

25 Soluzione I 1 def s i m u l a z i o n e 2 ( d u r a t a ) : 2 c a s s a = queue ( ) 3 t o t a l e c l i e n t i = 0 4 s o m m a t o t a l e a t t e s a = 0 5 a t t e s a m a s s i m a = 0 6 m e d i a a t t e s a = 0 7 f o r minuto i n range ( d u r a t a ) : 8 #p r e t t y p r i n t q ( c a s s a ) 9 i f not i s e m p t y ( c a s s a ) : 10 c l = dequeue ( c a s s a ) 11 a t t e s a = minuto c l 12 s o m m a t o t a l e a t t e s a += a t t e s a 13 i f a t t e s a >a t t e s a m a s s i m a : 14 a t t e s a m a s s i m a = a t t e s a 15 a r r i v o = random. r a n d i n t ( 0, 3 ) 16 i f a r r i v o == 1 : 17 enqueue ( minuto, c a s s a ) 18 t o t a l e c l i e n t i +=1

26 Soluzione II 19 e l i f a r r i v o == 2 : 20 enqueue ( minuto, c a s s a ) 21 enqueue ( minuto, c a s s a ) 22 t o t a l e c l i e n t i +=2 23 i f t o t a l e c l i e n t i >0: 24 n u m s e r v i t i = t o t a l e c l i e n t i l e n g t h ( c a s s a ) #Contiamo i c l i e n t i s e r v i t i ( T u t t i meno q u e l l i r i m a s t i i n coda ) 25 i f n u m s e r v i t i >0: 26 m e d i a a t t e s a = s o m m a t o t a l e a t t e s a / n u m s e r v i t i 27 return ( durata, t o t a l e c l i e n t i, m e d i a a t t e s a, a t t e s a m a s s i m a )

27 Esercizi per casa (per il 10/05/2017 ore 8:59) (Mail: Lab13-...) 1. (Usando il tipo coda costruito a lezione) Scrivere una funzione che prende come parametro una coda ed elimina dalla coda tutti gli elementi in posizione pari (es. se c = a b c d e, verrà modificata in a c e ). La funzione modifica la coda originaria e non fa uso di strutture dati ausiliarie (liste, altre code, ecc). 2. (Usando le funzioni di simulazione costruite a lezione) Scrivere un programma che esegue 5 simulazioni della cassa del negozio per minuti: 5, 30, 60, 120, 480. Salva le tuple risultati in una lista. Dopodiché stampa la lista con i risultati. Usare la funzione round(f,2) per arrotondare f a 2 decimali. Esempio: Dur Tot Media Max continua...

28 Esercizi per casa (per il 10/05/2017 ore 8:59) (Mail: Lab13-...) 3. (Dizionari) La moda di una lista di valori è data da quei valori che compaiono nella lista con la massima frequenza. Ad esempio, la moda (unica) di [1,4,5,4,6,5,4,1,4] è 4, mentre la moda di [1,4,5,6,5,4,1] è costituita da 1,4,5. Si scriva una funzione moda(x) che restituisce come lista la moda della lista x. Suggerimento: usare un dizionario e una funzione che restituisce il massimo elemento di una sequenza. 4. (Dizionari) L orlo di una matrice è costituito dalle sue righe e dalle sue colonne più esterne (prima riga, prima colonna, ultima riga, ultima colonna). Scrivere una funzione orlo(a,m,n) che presa una matrice A di ordine m n restituisce True sse tutti gli elementi di A compaiono nel suo orlo (cioè gli elementi che non sono nell orlo sono presenti almeno una volta anche nell orlo). Si supponga che una matrice A sia memorizzata come un dizionario, i cui elementi sono coppie (i,j):e, in cui le chiavi sono le coppie di riga e colonna e il valore è l elemento della matrice: in questo modo l usuale notazione A[i,j] indica l elemento nella riga i e colonna j (partendo da 0).

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Pile Lab14 10 Maggio 2017 Outline Correzione esercizi per oggi Pile Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che prende come parametro una coda

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Alberi binari Lab15 12 Maggio 2017 Outline Correzione esercizi per oggi Alberi binari Teoria Esercizi Esercizi per casa Saluti Esercizio 1 per casa Scrivere una funzione palindroma(s)

Подробнее

Lezione 4 Le code. Informatica. 24 Aprile Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini

Lezione 4 Le code. Informatica. 24 Aprile Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini Lezione 4 Le code Informatica 24 Aprile 2015 Bender il pizzaiolo robot Bender ha aperto una pizzeria da asporto con i suoi amici: Dr. Zoidberg risponde al telefono e riceve gli ordini Bender prepara le

Подробнее

Lezione 4 Le code. Informatica. 26 Aprile 2016. Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini

Lezione 4 Le code. Informatica. 26 Aprile 2016. Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini Lezione 4 Le code Informatica 26 Aprile 2016 Bender il pizzaiolo robot Bender ha aperto una pizzeria da asporto con i suoi amici: Dr. Zoidberg risponde al telefono e riceve gli ordini Bender prepara le

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Iterazione determinata Lab05 17 Marzo 2017 Variazione data laboratorio! Mercoledì 22 marzo ci sarà laboratorio Mercoledì 3 maggio non ci sarà laboratorio (si terrà lezione regolare)

Подробнее

Lezione 5 Le pile. Informatica. 29 Aprile 2015

Lezione 5 Le pile. Informatica. 29 Aprile 2015 Lezione 5 Le pile Informatica 29 Aprile 2015 Il porto di Anversa Il terminal del porto merci di Anversa usa delle gru a cavaliere per movimentare i container: I container arrivano per nave e vengono messi

Подробнее

Laboratorio di Python

Laboratorio di Python Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio

Подробнее

Programmazione in Python per la bioinformatica

Programmazione in Python per la bioinformatica per la bioinformatica University of Verona Sommario La struttura dati Lista Lista Come si rappresenta una lista in python Reminder: Lista collezione ordinata di elementi L = a 0, a 1,, a n 1 La variabile

Подробнее

Esercizi su strutture dati

Esercizi su strutture dati Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate

Подробнее

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Подробнее

Lezione 6 Le pile. Informatica. 28 Aprile 2016

Lezione 6 Le pile. Informatica. 28 Aprile 2016 Lezione 6 Le pile Informatica 28 Aprile 2016 Il porto di Anversa Il terminal del porto merci di Anversa usa delle gru a cavaliere per movimentare i container: I container arrivano per nave e vengono messi

Подробнее

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Подробнее

La struttura dati CODA

La struttura dati CODA Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati CODA Pietro Di Lena - [email protected] Introduzione Una coda (o queue) è una struttura dati astratta

Подробнее

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Variabili e Funzioni Lab02 1 Marzo 2017 Outline Variabili modificabili Teoria Esempi ed esercizi Funzioni Teoria Esempi ed esercizi Esercizi per casa Outline Variabili modificabili

Подробнее

Usare Python in Linux

Usare Python in Linux 26 Febbraio 2015 Outline 1 Struttura e programma delle lezioni 2 3 Outline Struttura e programma delle lezioni 1 Struttura e programma delle lezioni 2 3 Lezione tipo Struttura e programma delle lezioni

Подробнее

Informatica 1. Prova di recupero 21 Settembre 2001

Informatica 1. Prova di recupero 21 Settembre 2001 Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Подробнее

Laboratorio di Python (con Linux)

Laboratorio di Python (con Linux) 8 a lezione Università di Bologna 2, 4 maggio 2012 Sommario 1 2 3 Diversi Python 2.6 vs 2.7 v.s 3.x La versione di Python installata sulle macchine del laboratorio è la 2.6 (per l esattezza 2.6.6 ). Versioni

Подробнее

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari Fogli Elettronici Idoneità Informatica Prof. Mauro Gaspari Cosa è un foglio elettronico. Strumento per raccogliere dati organizzati in tabelle e farci delle operazioni: Le celle contengono numeri o altri

Подробнее

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli [email protected] Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni

Подробнее

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE PILE E CODE DI DATI DISPENSA 11.02 11-02_Pile_Code_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative Common CC BY-NC-SA.

Подробнее

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Подробнее

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati

Подробнее

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Подробнее

Struttura dati astratta Coda

Struttura dati astratta Coda CODE Struttura dati astratta Coda La coda o queue è una struttura dati astratta in cui l'inserimento e l estrazione sono consentite solo in specifiche posizioni; in particolare, l'inserimento è consentito

Подробнее

La simulazione con DERIVE Marcello Pedone LE SIMULAZIONI DEL LANCIO DI DADI CON DERIVE

La simulazione con DERIVE Marcello Pedone  LE SIMULAZIONI DEL LANCIO DI DADI CON DERIVE LE SIMULAZIONI DEL LANCIO DI DADI CON DERIVE Premessa Abbiamo già visto la simulazione del lancio di dadi con excel Vedi: http:///statistica/prob_simu/index.htm Ci proponiamo di ottenere risultati analoghi

Подробнее

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Подробнее

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Подробнее

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Подробнее

Laboratorio di Python

Laboratorio di Python Correzione esercizi Alcuni moduli utili, Esercizi vari Università di Bologna 9 aprile 2015 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione esercizi Scrivere e documentare le funzioni

Подробнее

In questa lezione Strutture dati elementari: Pila Coda

In questa lezione Strutture dati elementari: Pila Coda In questa lezione Strutture dati elementari: Pila Coda 1 strutture dati (astratte) Una struttura dati astratti consiste di uno o più insiemi con delle operazioni che li modificano (insiemi dinamici). Le

Подробнее

Laboratorio di Python

Laboratorio di Python 25 marzo 2015 Sommario 1 2 Esercizi a casa Scrivere un unico programma, che attraverso un menù di selezione restituisca i risultati delle funzioni che seguono, senza uscire dal programma se non selezionando

Подробнее

Ingegneria degli Algoritmi (II parte pratica)

Ingegneria degli Algoritmi (II parte pratica) Ingegneria degli Algoritmi (II parte pratica) Correzione prova pratica Ing. Domenico Spera [email protected] Premessa Sono stati richiesti i seguenti task: Implementare la versione in-order

Подробнее

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Подробнее

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Подробнее

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli Funzioni e moduli Andrea Passerini [email protected] Informatica Funzioni nella programmazione Descrizione Una funzione è una sequenza di istruzioni cui viene dato un nome Questo permette di riutilizzare

Подробнее

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Подробнее

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza

Подробнее

5. Quinta esercitazione autoguidata: liste semplici

5. Quinta esercitazione autoguidata: liste semplici 22 5. Quinta esercitazione autoguidata: liste semplici 5.1. Liste rappresentate mediante strutture e puntatori (LISTE1.C, LISTE2.C) Scrivere un programma che - costruisce una lista di k interi (con k letto

Подробнее

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Подробнее

Laboratorio di Python

Laboratorio di Python Correzione esercizi Alcuni moduli utili, Esercizi vari Università di Bologna 4 aprile 2014 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Esercizi Correzione esercizi Scrivere e documentare le

Подробнее

MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI. Anna TORRE

MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI. Anna TORRE MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI Anna TORRE Dipartimento di Matematica, Università di Pavia, Via Ferrata 1, 27100, Pavia, Italy. E-mail: [email protected] 1 SOLUZIONI:

Подробнее

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Подробнее

Laboratorio di Python

Laboratorio di Python Iterazione determinata, 12 marzo 2015 Sommario 1 2 3 Sintassi ed Esempi 4 Input da tastiera Sintassi = raw_input('stringa descrittiva') #versione 2.* = input('stringa descrittiva') #versione

Подробнее

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Подробнее

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 18 luglio 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi

Подробнее

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Подробнее

4. I moduli in Access 2000/2003

4. I moduli in Access 2000/2003 LIBRERIA WEB 4. I moduli in Access 2000/2003 Il modulo è uno degli oggetti del database di Access e rappresenta un insieme di dichiarazioni e routine scritte con il linguaggio Visual Basic, memorizzate

Подробнее

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010 Quicksort e qsort() Alessio Orlandi 28 marzo 2010 Intro Quicksort è l algoritmo di ordinamento più implementato, insieme con Mergesort. Tutte le librerie standard UNIX ne prevedono una implementazione.

Подробнее

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Подробнее

n deve essere maggiore di 0, altrimenti il metodo restituisce null.

n deve essere maggiore di 0, altrimenti il metodo restituisce null. Esercizio 1 di classe Intersezione che presi in input due Array di int A e B, restituisce in output un array contenente gli elementi presenti sia in A che in B. Esercizio 2 di classe identità che prende

Подробнее

Esercizi 2. Marco Anisetti

Esercizi 2. Marco Anisetti Esercizi 2 Marco Anisetti Verifica del funzionamento con RAPTOR Implementare in RAPTOR i seguenti programmi visti a lezione Moltiplicazione per somme (la versione più efficiente) Divisione per sottrazione

Подробнее

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Подробнее

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Подробнее

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Подробнее

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - [email protected] Dottoressa Sara Zuppiroli - [email protected] L'importanza di capire Perché non dobbiamo dichiarare

Подробнее

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Подробнее

Pensiero computazionale. Lezione 10 MIT AppInventor

Pensiero computazionale. Lezione 10 MIT AppInventor Pensiero computazionale Lezione 10 MIT AppInventor Ripetizioni Dov è Ripeti 10 volte? Cosa succede: La variabile number assume i valori 1,2,.,9,10 by è l incremento A quel punto il ciclo termina Potete

Подробнее

Esercizi svolti. delle matrici

Esercizi svolti. delle matrici Esercizi svolti. astratti. Si dica se l insieme delle coppie reali (x, y) soddisfacenti alla relazione x + y è un sottospazio vettoriale di R La risposta è sì, perchè l unica coppia reale che soddisfa

Подробнее

I/O avanzato e File Esercizi proposti

I/O avanzato e File Esercizi proposti Esercizi proposti 1 Esercizio: Olimpiadi invernali Uno sportivo vuole seguire gli eventi delle olimpiadi invernali di Torino 2006. Poiché molte gare si svolgono in parallelo, lo sportivo ha il problema

Подробнее

Implementazione Java di un ADT

Implementazione Java di un ADT Implementazione Java di un ADT Primo passo definire l'interfaccia (API) dell' ADT (l'api descrive i nomi dei metodi che l'adt supporta e come essi sono dichiarati e usati) Secondo passo scrivere il codice

Подробнее

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Подробнее

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

Подробнее

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni

Подробнее

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da

Подробнее

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di

Подробнее