Laboratorio di Python
|
|
- Riccardo Caselli
- 6 anni fa
- Visualizzazioni
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 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
DettagliLaboratorio 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
DettagliLaboratorio 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)
DettagliLezione 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
DettagliLezione 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
DettagliLaboratorio 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
DettagliLaboratorio 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)
DettagliLezione 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
DettagliLaboratorio 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
DettagliProgrammazione 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
DettagliEsercizi 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
DettagliLaboratorio 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
DettagliLezione 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
DettagliProva 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
DettagliFondamenti 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
DettagliLa 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
DettagliSi 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
DettagliLaboratorio 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
DettagliUsare 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
DettagliGestione 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
DettagliInformatica 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
DettagliLaboratorio 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
DettagliFogli 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
DettagliCorso 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
DettagliLezione 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
DettagliCORSO 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.
DettagliClasse 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
DettagliEsercizi 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
DettagliArray 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
DettagliStruttura 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
DettagliLa 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
DettagliUn 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
DettagliFondamenti 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
DettagliEsercizi 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
DettagliLaboratorio 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
DettagliTipo 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
DettagliIn 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
DettagliRicordiamo 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
DettagliADT 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
DettagliLaboratorio 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
DettagliStatements: 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
DettagliIngegneria 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
DettagliLaboratorio 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
DettagliGestione 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)
DettagliProgrammazione 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>
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
DettagliFunzioni 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
DettagliPrima 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
DettagliAlgoritmi 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]
DettagliArray. 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
DettagliEsercitazione: 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
DettagliA = 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
Dettagli5. 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
DettagliStringhe 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
DettagliLaboratorio 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
DettagliLezione 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
DettagliLaboratorio 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
DettagliTipi 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
DettagliMATEMATICA 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:
DettagliFoglio 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
DettagliLinked 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
DettagliLe 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
DettagliLaboratorio 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
DettagliFondamenti 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
DettagliOgni 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
DettagliFondamenti 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
DettagliProblemi 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
DettagliLaboratorio 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.
DettagliPile 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
DettagliEssendo 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
Dettagli4. 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
DettagliQuicksort 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.
DettagliCorso 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
DettagliProgrammazione 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
DettagliTipi 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
Dettaglin 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
DettagliStrutture 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
DettagliLaboratorio 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
DettagliEsercizi 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
DettagliLaboratorio 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
DettagliStrutture 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
DettagliLa codifica. dell informazione
00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111
DettagliCorso 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
DettagliLaboratorio 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
DettagliProgramma 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
DettagliPensiero 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
DettagliMetodi 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"
DettagliValori 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;
DettagliEsercizi 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
DettagliLaboratorio 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
DettagliLezione 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
DettagliUlteriori 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).
DettagliI/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
DettagliImplementazione 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
DettagliLaboratorio 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[]
DettagliIl 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
DettagliTrasformare 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
DettagliFondamenti 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
Dettagli3. 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
DettagliLaboratorio 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