Laboratorio di Python

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Python"

Transcript

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

Dettagli

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

Dettagli

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)

Dettagli

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

Dettagli

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

Dettagli

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro Laboratorio di Programmazione Lezione 3 Cristian Del Fabbro Prossima lezione GIOVEDÌ 12 NOVEMBRE ORE 14:00 Array a.k.a. vettore Un array è una collezione ordinata di dati omogenei (cioé sono tutti dello

Dettagli

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)

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

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 - pietro.dilena@unibo.it Introduzione Una coda (o queue) è una struttura dati astratta

Dettagli

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py.

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py. Avviare il programma (Tutti i Programmi Python 2.7 Idle). Quello che si è avviato è l ambiente di sviluppo di Python, che serve per facilitare il programmatore nello scrivere programmi usando Python. Dalla

Dettagli

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

Dettagli

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

Dettagli

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi Fondamenti di Informatica T-1 modulo 2 Laboratorio 10: preparazione alla prova d esame 1 Esercizio 1 - Gestione degli impegni Gli impegni giornalieri dei dipendenti di un azienda devono essere aggiornati

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni

Dettagli

Lezione 2 I Dizionari

Lezione 2 I Dizionari Lezione 2 I Dizionari Informatica 21 Aprile 2016 Un esempio di codice inefficiente Prendiamo come esempio il codice per calcolare la serie di Fibonacci: def (n): if n == 0: return 0 if n == 1: return 1

Dettagli

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.

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Tipo di Dato. Abstract Data Types. Tipi di Dato Astratti /2. Tipi di Dato Astratti /1

Tipo di Dato. Abstract Data Types. Tipi di Dato Astratti /2. Tipi di Dato Astratti /1 Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche Abstract Data Types Prof. Stefano Guerrini guerrini@di.uniroma1.it Programmazione II (can. P-Z) A.A. 2005-06 Tipo di Dato

Dettagli

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

Dettagli

Ricordiamo come si definisce una funzione

Ricordiamo come si definisce una funzione Ricordiamo come si definisce una funzione Definiamo una funzione che restituisce il massimo di una lista passata come argomento: La parola chiave def introduce una definizione di funzione Deve essere seguita

Dettagli

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2)

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2) ADT LISTA Pochi Linguaggi forniscono tipo lista fra predefiniti (LISP, Prolog); per gli altri, ADT lista si costruisce a partire da altre strutture dati (in C tipicamente vettori o puntatori) OPERAZIONI

Dettagli

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

Dettagli

Statements: blocchi di istruzioni

Statements: blocchi di istruzioni Statements: blocchi di istruzioni Andrea Passerini passerini@disi.unitn.it Informatica Statements Descrizione Uno statement è un blocco di istruzioni semplici consistono di una singola riga. I tipi visti

Dettagli

Ingegneria degli Algoritmi (II parte pratica)

Ingegneria degli Algoritmi (II parte pratica) Ingegneria degli Algoritmi (II parte pratica) Correzione prova pratica Ing. Domenico Spera domenico.spera@students.uniroma2.eu Premessa Sono stati richiesti i seguenti task: Implementare la versione in-order

Dettagli

Laboratorio 02. Programmazione - CdS Matematica. Mirko Polato 3 Novembre 2015

Laboratorio 02. Programmazione - CdS Matematica. Mirko Polato 3 Novembre 2015 Laboratorio 02 Programmazione - CdS Matematica Mirko Polato 3 Novembre 2015 Contenitori Spesso è necessario utilizzare contenitori di oggetti. 2 of 26 Contenitori Spesso è necessario utilizzare contenitori

Dettagli

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)

Dettagli

Programmazione Funzionale

Programmazione Funzionale 1/11 Programmazione Funzionale Esercizi in preparazione dell esame Davide Mottin - Themis Palpanas May 28, 2014 Svolgimento d esame Inferire il tipo di un espressione Esercizi sul lambda-calcolo Esercizi

Dettagli

<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

Dettagli

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli

Funzioni e moduli. Andrea Passerini Informatica. funzioni e moduli Funzioni e moduli Andrea Passerini passerini@disi.unitn.it Informatica Funzioni nella programmazione Descrizione Una funzione è una sequenza di istruzioni cui viene dato un nome Questo permette di riutilizzare

Dettagli

Prima prova intercorso 29 Novembre 2005

Prima prova intercorso 29 Novembre 2005 Laboratorio di Algoritmi e Strutture Dati R.Zizza (matr. dispari-dispari) Anno Acc. 2005-06 Prima prova intercorso 29 Novembre 2005 Cognome: Nome: Matricola: Regole del gioco: La soluzione del compito

Dettagli

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]

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

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

Dettagli

A = Quindi > b=a(:) b =

A = Quindi > b=a(:) b = Una breve digressione. Se si vuole uscire da Matlab, occorre digitare ( come già riferito)il comando >> quit Se si vogliono utilizzare le variabili create per una successiva sessione di lavoro, prima di

Dettagli

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

Dettagli

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

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Damiano Macedonio Esercizio 1 Scrivere una funzione che riceve in ingresso un puntatore ad un array di interi e modifica tale array

Dettagli

Lezione 2 I Dizionari

Lezione 2 I Dizionari Lezione 2 I Dizionari Informatica 21 Aprile 2015 Esempio: Invertiamo un dizionario Invertire un dizionario significa creare un dizionario che mappa i valori nelle chiavi. Poiché un valore può essere associato

Dettagli

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

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

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: anna.torre@unipv.it 1 SOLUZIONI:

Dettagli

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

Dettagli

Linked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture

Linked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture Linked Lists Liste linkate () La combinazione di class/struct e puntatori porta alla creazioni di interessanti Abstract Data Type liste linkate ( stack, queues ), trees Liste linkate come strutture struct

Dettagli

Le funzioni. Fondamenti di programmazione

Le funzioni. Fondamenti di programmazione Le funzioni Fondamenti di programmazione Moduli I programmi sono spesso abbastanza complessi da dover essere scomposti in pezzi più maneggevoli Un modulo consiste di istruzioni per svolgere un certo compito

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Fondamenti di Informatica II

Fondamenti di Informatica II Università degli studi di Messina Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Fondamenti di Informatica II Tipi di dati astratti(adt)- seconda parte Coda Struttura

Dettagli

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

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 8 gennaio 8 Il problema è simile all esercizio 5.6 del libro di testo di algoritmi (Introduzione agli algoritmi e strutture dati, T.

Dettagli

Pile e code. ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO

Pile e code. ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO Pile e code ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO Le Pile Una pila è una struttura dati lineare, alla quale gli elementi possono essere aggiunti o sottratti da

Dettagli

Essendo una sequenza, condivide le operazioni su sequenza viste per le stringhe

Essendo una sequenza, condivide le operazioni su sequenza viste per le stringhe Liste Descrizione Una lista è una sequenza di oggetti qualunque (anche di tipo diverso, anche altre liste) = ["abc", 2, [1,2]] Essendo una sequenza, condivide le operazioni su sequenza viste per le stringhe

Dettagli

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

Dettagli

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.

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 09 ADT: Lista, Pila, Coda A. Miola Marzo 2007 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti Tipo

Dettagli

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

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

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

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009 Laboratorio di Sperimentazioni di Fisica I MOD A 14 ottobre 2009 m files Gli m files sono degli script, ossia dei programmi che si eseguono invocandone il nome dalla command window. Non ricevono variabili

Dettagli

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

Dettagli

Laboratorio di Programmazione I Compitino (Vers. C)

Laboratorio di Programmazione I Compitino (Vers. C) Laboratorio di Programmazione I Compitino (Vers. C) 13 novembre 2009 Cognome... Nome... Matricola... Note. In alcune delle seguenti domande verrà usato il vostro numero di matricola. Scrivete il vostro

Dettagli

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

Dettagli

La codifica. dell informazione

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

Dettagli

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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Dottoressa Sara Zuppiroli - sara.zuppiroli@unibo.it L'importanza di capire Perché non dobbiamo dichiarare

Dettagli

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

Dettagli

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

Dettagli

Metodi Informatici per la Biologia

Metodi Informatici per la Biologia Metodi Informatici per la Biologia Esercitazione 8 1. Altri dettagli sulle funzioni Come ormai sapete bene, la forma generale di una funzione è: def nome_funzione(argomento1, argomento2, ): "documentazione"

Dettagli

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1 Valori Alfanumerici Finora abbiamo utilizzato solo valori numerici; Se vogliamo usare valori alfanumerici (caratteri e numeri), usiamo le stringhe; In Logo le stringhe si delimitano con le parentesi quadre;

Dettagli

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

Dettagli

Laboratorio 10. Programmazione - CdS Matematica. Michele Donini, Marta Gatto, Mirko Polato 19 gennaio 2016

Laboratorio 10. Programmazione - CdS Matematica. Michele Donini, Marta Gatto, Mirko Polato 19 gennaio 2016 Laboratorio 10 Programmazione - CdS Matematica Michele Donini, Marta Gatto, Mirko Polato 19 gennaio 2016 Esercizio 1 Date le seguenti istruzioni, dire senza eseguire, quale sarà il valore contenuto nella

Dettagli

Lezione 3. Ing. Giuseppe Chiapparo - Università di Roma Tor Vergata Corso di ingegneria degli algoritmi (parte pratica) A.A.

Lezione 3. Ing. Giuseppe Chiapparo - Università di Roma Tor Vergata Corso di ingegneria degli algoritmi (parte pratica) A.A. Lezione 3 Ing. Giuseppe Chiapparo - Università di Roma Tor Vergata Corso di ingegneria degli algoritmi (parte pratica) A.A. 2016/2017 19/10/2016 1 La funzione main In Python main() non è una funzione speciale

Dettagli

Ulteriori comandi sui file

Ulteriori comandi sui file Ulteriori comandi sui file Confronto tra file: 1. > cmp file1 file2 restituisce il primo byte ed il numero di linea in cui file1 e file2 differiscono (se sono uguali, non viene stampato nulla a video).

Dettagli

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

Dettagli

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

Dettagli

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[]

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

3. OPERAZIONI TRA CLASSI 2

3. OPERAZIONI TRA CLASSI 2 INSIEMI 1. Elementi e Classi Lo scopo di questo primo capitolo è di introdurre in maniera rigorosa le nozioni di classe e insieme, e di studiarne le principali proprietà. Nel seguito useremo il termine

Dettagli

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

Dettagli