Laboratorio di Python

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Python"

Transcript

1 Laboratorio di Python Esercizi di debug Lab07 27 Marzo 2018

2 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa

3 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa

4 Esercizio 1 per casa Scrivere un programma che presenta un menu di scelte all utente (inserire un nuovo voto in una tupla, visualizzare tutti i voti, stampare la media dei voti, uscire dal programma), esegue le azioni richieste, ripetutamente, e termina solo quando l utente inserisce 0.

5 Esercizio 1 per casa I 1 p r i n t (" *** Gestione voti studente *** ") 2 p r i n t ("- Inserire un voto (1) ") 3 p r i n t ("- Visualizzare tutti i voti (2) ") 4 p r i n t ("- Stampare la media dei voti (3) ") 5 p r i n t ("- Terminare il programma (0) ") 6 voti = () 7 scelta = i n t ( i n p u t (" Scelta : ")) 8 w h i l e scelta!= 0: 9 i f scelta == 1: 10 voti += ( e v a l ( i n p u t (" Inserisci un voto : ")),) 11 e l i f scelta == 2: 12 p r i n t ( voti ) 13 e l i f scelta == 3: 14 i f l e n ( voti ) >0: 15 acc = 0 16 f o r v i n voti : 17 acc += v

6 Esercizio 1 per casa II 18 p r i n t ( acc / l e n ( voti )) 19 e l s e : 20 p r i n t (" Nessun voto su cui calcolare la media ") 21 e l s e : 22 p r i n t (" Scelta non valida ") 23 p r i n t () 24 scelta = i n t ( i n p u t (" Scelta : "))

7 Esercizio 2 per casa Scrivere una funzione che preso un numero come parametro restituisca True se è primo, e False altrimenti. Usare il ciclo while ma non il ciclo for.

8 Esercizio 2 per casa Scrivere una funzione che preso un numero come parametro restituisca True se è primo, e False altrimenti. Usare il ciclo while ma non il ciclo for. Esistono molti algoritmi diversi: 1 import math 2 def isprime (n): 3 i f n <2: 4 r e t u r n False 5 #c e r c o un d i v i s o r e t r a 2 e r a d i c e Q u a d r a t a ( n ) 6 i = 2 7 w h i l e i <= i n t ( math. sqrt (n)): 8 i f n % i == 0: 9 r e t u r n False #s e l o t r o v o, i l numero non e ' p r i m o 10 i += 1 11 r e t u r n True #s e sono a r r i v a t o f i n qui, non ho t r o v a t o d i v i s o r i.

9 Esercizio 3 per casa Scrivere una funzione senza parametri che conta la punteggiatura in una stringa chiesta in input all utente, stampa Il numero di segni di punteggiatura è... e restituisce anche tale numero, usando il ciclo while ma non il ciclo for.

10 Esercizio 3 per casa Scrivere una funzione senza parametri che conta la punteggiatura in una stringa chiesta in input all utente, stampa Il numero di segni di punteggiatura è... e restituisce anche tale numero, usando il ciclo while ma non il ciclo for. 1 import string 2 def contapunteggiatura (): 3 stringa = i n p u t (" Insersci una stringa : ") 4 n = 0 #a c c u m u l a t o r e p e r c o n t e g g i o 5 i = 0 #i n d i c e p e r c a r a t t e r i n e l l a s t r i n g a 6 w h i l e i< l e n ( stringa ): 7 i f stringa [i] i n string. punctuation : 8 n +=1 9 i +=1 10 p r i n t ("Il numero di segni di punteggiatura e '",n) 11 r e t u r n n

11 Esercizio 4 per casa Una sequenza di interi A è ciclica modulo k se per ogni indice i, l elemento A[i + 1] è il successore modulo k di A[i] (cioè A[i+1] == (A[i]+1)%k), e inoltre A[0] è il successore modulo k dell ultimo elemento di A. Si scriva una funzione ciclo(a,k) che data una tupla di interi A e un intero k, verifica se A è ciclica modulo k usando il ciclo while ma non il ciclo for.

12 Esercizio 4 per casa 1 def ciclo (A,k): 2 #S equenza vuota, b a n a l m e n t e v e r o 3 i f l e n (A) == 0: 4 r e t u r n True 5 P o t r e i c o n t r o l l a r e anche che l a l u n g h e z z a d e l l a s t r i n g a s i a un m u l t i p l o d i k, e i l c a s o p a r t i c o l a r e d e l l a s e q u e n z a con un s o l o e l e m e n t o 6 #s c o r r o t u t t i g l i e l e m e n t i, f a c e n d o a t t e n z i o n e a f e r m a r m i a l p e n u l t i m o 7 i = 0 8 w h i l e i< l e n (A) -1: 9 i f A[i +1]!= (A[i ]+1) %k: 10 r e t u r n False 11 i +=1 12 #c o n t r o l l o s e i l p r i m o e ' i l s u c c e s s o r e d e l l ' u l t i m o 13 r e t u r n A [0] == (A[i ]+1) %k

13 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa

14 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa

15 Un algoritmo di debug Leggere con attenzione il testo del problema Assicurarsi di averlo capito, ipotizzando su diversi input l outupt atteso Se necessario, pensare all algoritmo risolutivo (come risolverei a mano questo problema?) Lanciare il programma su una o più delle ipotesi di input, e vedere cosa c è di diverso tra l output reale e quello atteso Leggere il codice ed eseguirlo passo passo su uno degli input sbagliati Se necessario, aiutarsi con Python Tutor Se si pensa di aver trovato un errore, correggerlo Testare nuovamente il programma sui vari input Se il programma non è ancora corretto, ci si è avvicinati alla soluzione? Se sì, proseguire ripartendo da capo, alla ricerca di altri bug Se no, prima di ripartire da capo, eliminare le correzioni fatte per tornare allo stato precedente

16 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa

17 NB! Oggi vi chiederemo di correggere programmi già scritti ma con errori. Trovate tutti i file in (oppure dalla solita pagina del laboratorio). Aprite ora la pagina.

18 Es. A - testo e soluzione con errori (lodi.ml/debug) Scrivere una funzione che prende come parametro una tupla t e restituisce True se tutti i valori sono in ordine strettamente crescente (<), False altrimenti. Testare la funzione su vari casi (es. tupla vuota, tupla strettamente crescente e tupla non...) 1 def crescente (t): 2 f o r i i n range ( l e n (t)): 3 i f t[i+1] >t[i]: 4 r e t u r n True 5 r e t u r n False 6 7 p r i n t ( crescente ((1,2,2,4) )) #A t t e s o : F a l s e

19 Es. A - correzione 1 def crescente (t): 2 f o r i i n range ( l e n (t) -1): #l e n ( t ) 1 p e r c h e ' n e l c o r p o a c c e d o a t +1 3 i f t[i +1] <= t[i]: #b a s t a un c o n t r o e s e m p i o 4 r e t u r n False #s e t r o v o un c o n t r o e s e m p i o : F a l s e 5 r e t u r n True #s e a r r i v o qui, non ho t r o v a t o c o n t r o e s e m p i : True 6 7 p r i n t ( crescente ((1,2,3,4,5,6) )) #A t t e s o : True 8 p r i n t ( crescente ((1,2,2,4) )) #A t t e s o : F a l s e 9 p r i n t ( crescente ((7,1,4,5,3) )) #A t t e s o : F a l s e 10 p r i n t ( crescente ((1,) )) #A t t e s o : True 11 p r i n t ( crescente (() )) #A t t e s o : True

20 Es. B - testo e soluzione con errori (lodi.ml/debug) Scrivere due funzioni. La prima prende come parametro una tupla e verifica che sia una tupla di soli interi La seconda prende come parametro una tupla, verifica che sia di soli interi usando la funzione precedente, poi verifica che ogni elemento della tupla eccetto il primo sia maggiore della somma dei precedenti. 1 def interi (t): 2 f o r i i n range ( l e n (t)): 3 i f type (t[i]) == i n t : 4 r e t u r n True 5 def somma (t): 6 i f not interi (t): r e t u r n False 7 somma = t [0] 8 i = 0 9 w h i l e i < l e n (t): 10 i f t[ i] <= somma : 11 r e t u r n False 12 somma += t[ i] 13 i += 1 14 r e t u r n True 15 p r i n t ( somma ((1,2,4) )) #a t t e s o : True

21 Es. B - correzione I 1 def interi (t): 2 f o r i i n range ( l e n (t)): 3 i f type (t[i])!= i n t : 4 r e t u r n False #b a s t a un c o n t r o e s e m p i o p e r d i r e che l a p r o p r i e t a ' non e ' v e r i f i c a t a 5 r e t u r n True #s e a r r i v o qui, p r o p r i e t a ' v e r i f i c a t a 6 7 def somma (t): 8 i f not interi (t): 9 r e t u r n False 10 i f l e n (t) ==0: #v i s t o che accumulo d a l p r i m o e l e m e n t o, c a s o 0 a p a r t e 11 r e t u r n True 12 somma = t [0] 13 i = 1 #p a r t o d a l s e c o n d o e l e m e n t o 14 15

22 Es. B - correzione II 16 w h i l e i < l e n (t): 17 i f t[i] <= somma : 18 r e t u r n False 19 somma += t[i] 20 i += 1 21 r e t u r n True #r e t u r n f u o r i d a l c i c l o : s e sono q u i ho v e r i f i c a t o l a p r o p r i e t a ' #F a l s e 24 p r i n t ( interi (( 'ciao ',))) 25 p r i n t ( interi ((1,2,3.14) )) 26 p r i n t ( interi ((1,2,3,(4,5) ))) 27 p r i n t () #True 30 p r i n t ( interi (() )) 31 p r i n t ( interi ((1,) )) 32 p r i n t ( interi ((1,2,3) )) 33 p r i n t ()

23 Es. B - correzione III #F a l s e 36 p r i n t ( somma ((3,4,5) )) 37 p r i n t ( somma ((1,1) )) 38 p r i n t () #True 41 p r i n t ( somma (() )) 42 p r i n t ( somma ((1,2,4) ))

24 Es. C - testo e soluzione con errori (lodi.ml/debug) I Scrivere una funzione che restituisce una tupla contenente tutti i divisori propri (n escluso) di un numero naturale n preso come parametro. Un numero è perfetto se il numero è uguale alla somma dei divisori propri. Scrivere una funzione che prende come parametro un numero naturale n, stampa una stringa esplicativa e restituisce True se il numero è un numero perfetto, False altrimenti. Usare la funzione precedente. I primi numeri perfetti sono 6 = =

25 Es. C - testo e soluzione con errori (lodi.ml/debug) II 1 def divisoripropri (n): 2 div =() 3 f o r i i n range (n): 4 i f n%i =0: 5 div = div +i 6 p r i n t ( div ) 7 8 def numperfetto (n): 9 div = divisoripropri (n) 10 sommadiv =0 11 f o r el i n div : 12 sommadiv += el 13 i f sommadiv == n: 14 p r i n t (n, " e' un numero perfetto!") 15 r e t u r n True 16 e l s e : 17 p r i n t (n, " non e' un numero perfetto!") 18 r e t u r n False

26 Es. C - testo e soluzione con errori (lodi.ml/debug) III p r i n t ( numperfetto (3) )#F a l s e 21 p r i n t ( numperfetto (6) )#True

27 Es. C - correzione I 1 def divisoripropri (n): 2 div =() 3 f o r i i n range (1,n): #p a r t o da 1, a l t r i m e n t i d i v i s i o n e p e r 0 4 i f n%i ==0: # i l c o n f r o n t o e ' ==, non = 5 div = div +(i,) #t u p l a 6 r e t u r n div #non devo s t a m p a r e ma r i t o r n a r e! 7 8 def numperfetto (n): 9 div = divisoripropri (n) 10 sommadiv =0 11 f o r el i n div : 12 sommadiv += el 13 #i n d e n t a z i o n e s b a g l i a t a : devo f a r l o a l l a f i n e, f u o r i d a l f o r! 14 i f sommadiv == n: 15 p r i n t (n, " e' un numero perfetto!") 16 r e t u r n True

28 Es. C - correzione II 17 e l s e : 18 p r i n t (n, " non e' un numero perfetto!") 19 r e t u r n False p r i n t ( divisoripropri (10) ) #a t t e s o : ( 1, 2, 5 ) 22 p r i n t ( divisoripropri (1) ) #a t t e s o : ( ) 23 p r i n t ( divisoripropri (3) ) #a t t e s o ( 1, ) 24 p r i n t ( divisoripropri (6) ) #a t t e s o : ( 1, 2, 3 ) 25 p r i n t ( divisoripropri (28) ) #a t t e s o : ( 1, 2, 4, 7, 1 4 ) #F a l s e 28 p r i n t ( numperfetto (1) ) 29 p r i n t ( numperfetto (3) ) 30 p r i n t ( numperfetto (10**4) ) 31 p r i n t () #True 34 p r i n t ( numperfetto (6) ) 35 p r i n t ( numperfetto (28) )

29 Es. C - correzione III 36 p r i n t ( numperfetto (496) ) 37 p r i n t ( numperfetto (8128) ) 38 p r i n t ( numperfetto ( ) )

30 Es. D - testo e soluzione con errori (lodi.ml/debug) Un plateau è una sottosequenza di almeno due elementi contigui con lo stesso valore. Scrivere una funzione plat(s) che, data una tupla s, restituisce la tupla degli elementi distinti di s che sono valori di un plateau. Esempio: plat((3,3,0,2,2,2,0,3,3,4,4)) restituisce (3,2,4). 1 def plat (s): 2 f o r i i n range ( l e n (s -1) ): 3 i f s[i ]== s[i +1] and res [ -1]!= s[i]: 4 res = res + s[i] 5 r e t u r n res

31 Es. D - correzione I 1 def plat (s): 2 res = () #devo i n i z i a l i z z a r e a l l a t u p l a v u o t a l ' a c c u m u l a t o r e 3 f o r i i n range ( l e n (s) -1): #s 1 non ha s e n s o. Devo a r r i v a r e a l e n ( s ) a c u i t o l g o 1 p e r c h e ' a c c e d o a i +1 n e l c o r p o 4 i f s[i ]== s[i +1] and s[i] not i n res : # p e r c h e ' l a t u p l a s i a d i e l e m e n t i d i s t i n t i, devo c o n t r o l l a r e d i non a v e r messo g i a ' s [ i ] 5 res = res + (s[i],) #non p o s s o sommare t u p l e e i n t e r i. devo r e n d e r e s [ i ] a l l ' i n t e r n o d i una t u p l a d i l u n g h e z z a 1 6 r e t u r n res #devo r i t o r n a r e r e s f u o r i d a l c i c l o, s o l o quando ho s c o r s o t u t t a l a t u p l a s 7 8 p r i n t ( plat ((3,3,0,2,2,2,0,3,3,4,4))) #a t t e s o ( 3, 2, 4 ) 9 p r i n t ( plat (() )) #a t t e s o ( )

32 Es. D - correzione II 10 p r i n t ( plat ((1,3,5,2) )) #a t t e s o ( ) 11 p r i n t ( plat ((1,1,1,1,1,1) )) #a t t e s o ( 1, )

33 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa

34 Esercizi per casa (per il 06/04/2018 ore 8:59 (Mail: Lab07-...) I 1. Scrivere un programma che si comporta nel modo seguente. Il programma invita l utente a pensare ad un numero compreso tra 1 e 100 Il programma deve indovinare il numero pensato dall utente facendo dei tentativi, per esempio chiedendo Il numero da te pensato è 37?: e prendendo in input la risposta Se l utente risponde con una stringa che contiene la sottostringa indovinato (maiuscola o minuscola), il programma termina stampando il numero di tentativi che ha impiegato per indovinare. Se l utente risponde con una stringa che contiene la sottostringa grande (maiuscola o minuscola), il programma sa che il suo tentativo era troppo grande e dovrà riprovare con un numero più piccolo Se l utente risponde con una stringa che contiene la sottostringa piccolo (maiuscola o minuscola), il programma sa che il suo tentativo era troppo piccolo e dovrà riprovare con un numero più grande Il programma va avanti così finché non ha indovinato.

35 Esercizi per casa (per il 06/04/2018 ore 8:59 (Mail: Lab07-...) II E possibile programmare (hint: usando il metodo di bisezione) il gioco di modo che il computer indovini sempre in massimo 7 tentativi. 2. Esercizio di debug confronta (vedere slide successive) 3. Esercizio di debug cesare (vedere slide successive) 4. Esercizio di debug involucro (vedere slide successive) NB: i file da correggere per gli esercizi 2, 3 e 4 si trovano su lodi.ml/debug (uguale:

36 Es. 2 - testo e soluzione con errori (lodi.ml/debug) Scrivere una funzione confronta(t1, T2) che prese due stringhe T1 e T2 restituisce l elenco (inteso come tupla) degli i tali che T1[i] è uguale a uno dei caratteri T2[i-1], T2[i], T2[i+1]. 1 def confronta (T1,T2): 2 R = () 3 i f T1 [0] i n T2 [:1]: 4 R += (0) 5 f o r i i n range (1, T1): 6 i f T1[i] i n T2[i -1: i +1]: 7 R += (i,) 8 9 p r i n t ( confronta ('asca ', 'lasca ')) #( 0, 1, 2, 3) 10 p r i n t ( confronta ('la mamma in ', 'la nonna ti ')) 11 #( 0, 1, 2, 7, 8, 9) 12 p r i n t ( confronta ('acca ', 'zonzo ')) #( )

37 Es. 3 - testo e soluzione con errori (lodi.ml/debug) I Giulio Cesare era solito crittare i suoi messaggi sostituendo a ogni lettera quella corrispondente dell alfabeto spostato in avanti. Scrivere due funzioni: Una funzione che ritorna l indice del carattere c nella stringa s, o l indice della prima volta che compare c, se compare più volte, o None se c non è presente Una funzione che modifica la stringa s presa come parametro sostituendo a ogni lettera la lettera che si trova 13 posizioni piu avanti nell alfabeto. Esempio b diventa o, m diventa z, n diventa a. Supponiamo di lavorare solo con alfabeto minuscolo, convertendo eventualmente s in tuttominuscolo. Tutti gli altri caratteri (cifre, punteggiatura, spazi) non vengono modificati.

38 Es. 3 - testo e soluzione con errori (lodi.ml/debug) II 1 def posizione (c,s): 2 i f c not i n s: 3 r e t u r n None 4 f o r i i n range ( l e n (s)): 5 i f c == s[i]: 6 r e t u r n i 7 8 def cesare (s): 9 s = s. tolower () #c o n v e r t o l a s t r i n g a t u t t a i n m i n u s c o l o 10 cifrata = '' 11 f o r c i n s: 12 i f c i n string. ascii_lower : #mantengo s p a z i e p u n t e g g i a t u r a i n v a r i a t i 13 cifrata += c 14 e l s e : #c e ' un c a r a t t e r e, va s o s t i t u i t o con i l suo c i f r a t o 15 p = posizione (c, string. ascii_lower ) 16 pc = p + 13 % 21

39 Es. 3 - testo e soluzione con errori (lodi.ml/debug) III 17 cc = string. ascii_lower [p] 18 cifrata += c 19 r e t u r n cifrata p r i n t ( cesare (" Michael ")) #z v p u n r y 22 p r i n t ( cesare (" Anche tu, Bruto, figlio mio!")) # n a p u r gh, oehgb, s v t y v b zvb!

40 Es. 4 - testo e soluzione con errori (lodi.ml/debug) I Date due tuple di naturali tutti distinti A e B, diciamo che costituiscono un involucro se una delle due compare come sottosequenza contigua dentro l altra, con almeno un elemento a sinistra e almeno un elemento a destra che non le appartengono. Esempio: (0,1,2,3,11,16) e (1,2,3) costituiscono un involucro; (1,2,3) e (1,2,3,11) non lo sono. Se una delle due è vuota, l altra deve avere almeno due elementi (la sequenza vuota sta nel mezzo ai due elementi, uno a sinistra, uno a destra). Scrivere una funzione involucro(a,b) che, presi come parametri due tuple di naturali restituisce True sse esse costituiscono un involucro. Provare poi la funzione chiedendo in input due tuple. 1 def involucro (A,B): 2 A = t u p l e ( i n p u t (" Inserisci una tupla : ") 3 B = t u p l e ( i n p u t (" Inserisci una tupla : ") 4 5 i f l e n (A)=0 or l e n (B) =0: 6 i f ( l e n (A) ==0 and l e n (B) >=2) or ( l e n ( A) >=2 and l e n (B) ==0) : 7 r e t u r n True

41 Es. 4 - testo e soluzione con errori (lodi.ml/debug) II 8 r e t u r n False # una d e l l e due e ' v u o t a e l ' a l t r a non ha almeno due e l e m e n t i 9 10 i f l e n (A)> l e n (B): 11 r e t u r n inv_aux (A,B) 12 e l s e : 13 r e t u r n inv_aux (B,A) def inv_aux (C,L): # L e ' l a t u p l a l u n g a e C q u e l l a c o r t a ; non sono v u o t e 17 i = 2 # c e r c h i a m o i n L, s e c ' e ', l ' i n i z i o d i C, p a r t e n d o d a l s e c o n d o e l e m e n t o 18 # p e r l a s c i a r e un e l e m e n t o a s i n i s t r a w h i l e i <= l e n (L)- l e n (C) and L[i ]== C [0]: 21 # i l c o n t r o l l o a s s i c u r a c i s i a i n L un e l e m e n t o a d e s t r a d i C 22 i += 1

42 Es. 4 - testo e soluzione con errori (lodi.ml/debug) III 23 i f i == l e n (L)- l e n (C): # s e C [ 0 ] non e ' i n L ( ad un i n d i c e s u f f i c i e n t e m e n t e p i c c o l o p e r l a s c i a r e un e l e m e n t o a d e s t r a d i C), r e s t i t u i s c i F a l s e 24 r e t u r n False j = 2 # v e r i f i c a che C compaia i n L, c o n t i g u a 27 w h i l e j <= l e n (C) and L[i+j ]!= C[j]: 28 j += i f i == l e n (C): # abbiamo e s a u r i t o C 31 r e t u r n True 32 e l s e : 33 r e t u r n False p r i n t ( involucro ((),()))

laboratorio di python

laboratorio di python laboratorio di python esercizi vari, pratiche di debug e di tracing 29 Marzo 2019 1/18 Debug esercizio a cosa non va in questo codice? Scrivere una funzione che prende come parametro una tupla t e restituisce

Dettagli

laboratorio di python

laboratorio di python laboratorio di python iterazione in python 22 Marzo 2019 1/31 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che restituisce True se una stringa passata come parametro è palindroma

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Booleani, Selezione, Input Lab03 7 Marzo 2018 Outline Correzione esercizi per oggi Booleani e Selezione (if) Teoria Esercizi Input Teoria Esercizi Esercizi per casa Esercizio 1 per

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

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 10 Aprile 2018 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Outline Correzione esercizi per oggi Matrici Teoria Esercizi

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

Lab 04 Programmazione Strutturata"

Lab 04 Programmazione Strutturata Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate

Dettagli

Esercizi su Scratch. Esegui la Somma e il Prodotto dei numeri inseriti in Input fino a che non inserisco la vocale e.

Esercizi su Scratch. Esegui la Somma e il Prodotto dei numeri inseriti in Input fino a che non inserisco la vocale e. Esercizi su Scratch Esercizio 1: Indovina il numero Il computer pensa un numero compreso tra uno e 100 e tu lo devi indovinare. Prevedi un avviso che indichi se il Tuo numero è più grande o più piccolo.

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 T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Iterazione Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 22 ITERAZIONE Iterazione: Strumento che consente

Dettagli

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1 Fondamenti di Informatica T1 Lab 03 Istruzioni Lab03 1 Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. Lab03 2 #include main()

Dettagli

Laboratorio di Python

Laboratorio di Python , sequenze immutabili 5 marzo 2015 Sommario 1 2 3 Input da tastiera Sintassi = raw_input('stringa descrittiva') #versione 2.* = input('stringa descrittiva') #versione 3.* si assegna a

Dettagli

Laboratorio di Python

Laboratorio di Python Documentare il codice,, Comprendere cosa calcola una funzione 21 marzo 2014 Sommario 1 2 3 4 Lunedì il numero di studenti che avevano consegnato gli esercizi era 15. Martedì il numero di esercizi ricevuti

Dettagli

Laboratorio di Python

Laboratorio di Python Algoritmo, sulle liste Università di Bologna 3 e 5 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione Correzione esercizi scrivere e documentare un programma con un menu dove:

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

laboratorio di python

laboratorio di python laboratorio di python definizioni di booleani, selezione ed uso degli input 13 Marzo 2019 1/32 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che non ha nessun parametro, non restituisce

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

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Code Lab13 28 Aprile 2017 Outline Correzione esercizi per oggi Code Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che determina se uno studente può

Dettagli

Laboratorio di Python

Laboratorio di Python , Istruzione di condizione 3 marzo 2015 Sommario 1 Outline 1 Scrivere uno script 1 Aprire IDLE di Python. 2 Dal menù del programma aprire un nuovo file. 3 Scrivere la funzione. 4 Salvare ed eseguire il

Dettagli

Laboratorio Programmazione Anno Lezione 3

Laboratorio Programmazione Anno Lezione 3 Laboratorio Programmazione Anno 2012-2013 Lezione 3 Scripting Fino ad ora, per fare esercizi, abbiamo utilizzato l ambiente interattivo di python. È possibile creare dei file contenenti (lunghe) sequenze

Dettagli

Programmazione in Java e gestione della grafica. Lezione 7

Programmazione in Java e gestione della grafica. Lezione 7 Programmazione in Java e gestione della grafica Lezione 7 La scorsa lezione.. Metodi della classe Math Definizione e chiamata di metodi static Esempi Esercizio della lezione scorsa Esercizio 6.3 Scrivere

Dettagli

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione. Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Stringhe e Istruzioni di selezione Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 24 STRINGHE: Definizione

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Laboratorio di informatica Ingegneria meccanica Esercitazione 6 7 novembre 2007 Correzione di un programma Un programma può contenere errori sintattici e/o errori logici. Gli errori sintattici vengono

Dettagli

Laboratorio 26/09/2000

Laboratorio 26/09/2000 Laboratorio 26/09/2000 Note Il compilatore usato è il DJGPP, un compilatore C/C++ a 32 bit ANSI C. Documentato e supportato via Internet (www.delorie.com). Per compilare utilizzare un comando del tipo

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

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

1 Massimo pari e dispari di una sequenza

1 Massimo pari e dispari di una sequenza Laboratorio di programmazione, 18 Novembre 2016 1 Massimo pari e dispari di una sequenza Si scriva un programma (sequenza_max_pari_dispari.java) che legga in input una sequenza di interi terminata da 0.

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

Laboratorio di Python

Laboratorio di Python Documentare il codice,, Comprendere cosa calcola una funzione Università di Bologna 20 e 22 marzo 2013 Sommario 1 2 3 4 o Scrivere un programma che sia in grado di calcolare le seguenti serie: la somma

Dettagli

Programmazione in Python per la bioinformatica

Programmazione in Python per la bioinformatica per la bioinformatica University of Verona Sommario (if) (while for) Cambiare il usso di esecuzione di un programma Semplice Semplice l'indentazione ha un signicato sintattico! Condizioni Boolean Expression

Dettagli

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, 14 marzo 2014 Sommario 1 2 3 4 Sintassi ed Esempi Esercizi Lunedì il numero di studenti che avevano consegnato gli esercizi era 13. Martedì il numero di esercizi ricevuti,

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

Esercizi in Laboratorio

Esercizi in Laboratorio Esercizi in Laboratorio Informatica@SEFA 2017/2018 - Laboratorio 3 Massimo Lauria http://massimolauria.net/courses/infosefa2017/ Lunedì, 16 Ottobre 2017 1 Formattazione delle

Dettagli

Esercizi 5 CICLI. Es.5(cicli)

Esercizi 5 CICLI. Es.5(cicli) Esercizi 5 CICLI 1 Es.5(cicli) Esercizio 1 Realizzare una funzione che, chiesto all utente un numero intero pari a N, ricavi e stampi a video tutte le terne pitagoriche con i cateti minori o uguali ad

Dettagli

Laboratorio di Python (con Linux)

Laboratorio di Python (con Linux) Indeterminata,,,... Università di Bologna 14, 16 marzo 2012 Sommario 1 2 3 4 5 Modularità Quando si deve fare un programma complicato è meglio suddividerlo in più parti. Per ridurre la complessità (più

Dettagli

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI DIAGRAMMA A BLOCCHI: SWITCH DIAGRAMMA BLOCCHI: WHILE DIAGRAMMA BLOCCHI: FOR for (inizializzazione contatore, condizione, incremento) { istruzioni ; }

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Metodi statici e array Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 14 METODI STATICI: Definizione Un metodo

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono

Dettagli

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

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI ARRAY

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI ARRAY Prof. Pagani Corrado ALGORITMI ESERCITAZIONI ARRAY ESERCIZI ARRAY 1 1. Dato un vettore composto da 10 numeri interi (assegnati direttamente da codice o letti da tastiera) determinare somma e media. 2.

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Dettagli

Esame Laboratorio di Programmazione

Esame Laboratorio di Programmazione Esame Laboratorio di Programmazione 20 Giugno 2014 NOA Non è possibile usare le classi del package prog.io del libro di testo L obiettivo è scrivere una applicazione che permette di costruire delle torri

Dettagli

Informatica Generale Homework di Recupero 2016

Informatica Generale Homework di Recupero 2016 Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez /12/2018

Esercitazioni di Fondamenti di Informatica - Lez /12/2018 Esercitazioni di Fondamenti di Informatica - Lez. 0 //08 Esercizi su Python. ESAME 3/08/07 es. 6. Scrivere un programma Python 3 che definisce un apposito dizionario che contiene, attraverso le coppie

Dettagli

Esercizi. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Esercizi. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Test di primalità Definizione (Numeri primi) Un numero naturale è primo se è maggiore di

Dettagli

Laboratorio di Python

Laboratorio di Python per casa sulle liste Università di Bologna 17 e 19 aprile 2013 Sommario per casa 1 2 3 per casa Correzione per casa def valle(s): if len(s)> 2: return(s[1]

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse

Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 6 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso Eclipse

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

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione 25 ottobre 2017 Da questo laboratorio, lo scheletro dei vostri programmi deve essere import java.io.*; import java.util.*; public class NomeClasse { public static void main(

Dettagli

Laboratorio di Python

Laboratorio di Python 19 marzo 2015 Sommario 1 2 3 4 Esercizi Scrivere e documentare le funzioni che risolvano i seguenti problemi: 1 Definire una funzione che presa una sequenza come parametro restituisca il valore della media

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore

Dettagli

PROGRAMMAZIONE: ESERCITAZIONE N. 6

PROGRAMMAZIONE: ESERCITAZIONE N. 6 PROGRAMMAZIONE: ESERCITAZIONE N. 6 Esercizi su stru+ure condizionali e itera1ve Conoscenze richieste: LC1+LC2+LC3+LC4+LC5+LC6 Esercizio 1 Acquisire un numero positivo N e calcolarne la radice quadrata

Dettagli

Matematica con Python

Matematica con Python Matematica con Python e-mail: maurosaita@tiscalinet.it Versione provvisoria. Dicembre 2016. 1 Lezione n. 1 Calcolatrice Olivetti. Esegue le quattro operazioni elementari. Indice 1 Numeri e stringhe 2 1.1

Dettagli

Laboratorio di algoritmi e strutture dati

Laboratorio di algoritmi e strutture dati Laboratorio di algoritmi e strutture dati Mercoledì 8 ottobre 2008 Nota: ricordate le opzioni principali del comando gcc (per eventuali dubbi, consultate il manuale on-line man gcc): -o per salvare l output

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - Elementi di Informatica e Programmazione Università di Brescia 1 1: ESERCIZI DI BASE - di livello di difficoltà inferiore rispetto all

Dettagli

Cognome-Nome:... Matricola...

Cognome-Nome:... Matricola... DIPARTIMENTO di INFORMATICA Corso di Laurea in Informatica Cognome-Nome:..... Matricola... Rispondere sul foglio allegato ad almeno 4 tra i quesiti 1..5 ed al quesito 6. Riportare sul foglio allegato solo

Dettagli

Stringhe. Walter Didimo

Stringhe. Walter Didimo Stringhe Walter Didimo La classe String L uso di stringhe (sequenze di caratteri alfanumerici) nei programmi è molto frequente Per tale motivo, l API di Java offre una classe con molti metodi utili per

Dettagli

12 Function Handles e Ricorsione in MATLAB

12 Function Handles e Ricorsione in MATLAB 1 Function Handles e Ricorsione in MATLAB Un function handle è una variabile il cui valore è una funzione. Data una funzione esistente, il suo function handle è dichiarato come handle = @nome dove nome

Dettagli

Esercizio 1. Esercizio 2

Esercizio 1. Esercizio 2 Esercizio 1 Progettare e Codificare in C un programma che permetta di Chiedere all utente quanti numeri vuole inserire Leggere i numeri inseriti dall utente e calcolare la somma dei fattoriali Esempio:

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono

Dettagli

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice: Corso di Ingegneria Biomedica Corso di Ingegneria Elettronica Insegnamento di Informatica I a.a. 2007-08 Laboratorio 1 Durante le esercitazioni verra utilizzato il compilatore a riga di comando DJGPP,,

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Stringhe Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 13 STRINGHE: Definizione e creazione Stringa

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

Dettagli

Cicli. S i a i = a 1 + a 2 + a a n

Cicli. S i a i = a 1 + a 2 + a a n Cicli Esprimono in modo compatto e generali l'esecuzione di uno stesso blocco di codice per più volte Anche in matematica sono presenti operatori che eseguono di fatto un ciclo (ad es. sommatoria e produttoria)

Dettagli

Esercizi in Laboratorio

Esercizi in Laboratorio Esercizi in Laboratorio Informatica@SEFA 2017/2018 - Laboratorio 2 Massimo Lauria http://massimolauria.net/courses/infosefa2017/ Lunedì, 9 Ottobre 2017 1 Errata corrige (tuple

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Input/Output, Variabili, Tipi e Stringhe Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 19 VARIABILI

Dettagli

Esercizi

Esercizi Esercizi Si implementi una funzione che riceve in input una matrice NxM di float. Definito picco un numero circondato in tutte le posizioni intorno solo da numeri strettamente inferiori alla sua metà,

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Metodi statici e Array Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 12 METODI STATICI: Definizione Un metodo

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

Laboratorio di Python

Laboratorio di Python Alberi, Esercizi su alberi Università di Bologna 15 e 17 maggio 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 Esercizi Correzione esercizi Definire una funzione che preso un dizionario di studenti

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Istruzioni di selezione e tipi enumerativi Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 27 SELEZIONE Permette

Dettagli

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 2 Ing. Gian Enrico Conti Dott. Michele Zanella

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 2 Ing. Gian Enrico Conti Dott. Michele Zanella INFORMATICA A Titolo presentazione sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 2 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche Contatti: gianenrico.conti@mail.polimi.it michele.zanella@polimi.it

Dettagli

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 2033 Milano (Italia) Piazza Leonardo da Vinci, 32 Tel. (+39) 02-2399.3400 Fax (+39) 02-2399.34 Informatica ed Elementi di

Dettagli

Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard

Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard Classi di algoritmi Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard una volta individuato lo schema opportuno si dovrà solo adattarlo al caso particolare per poter

Dettagli

Il problema delle azioni

Il problema delle azioni Il problema delle azioni Per studiare l andamento del mercato azionario bisogna seguire i prezzi delle azioni in un lasso di tempo abbastanza lungo, diciamo n giorni. Se si dispone dei prezzi di un azione

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Facoltà di Ingegneria Clinica BCLR Dispense di Paolo Caressa e Raffaele Nicolussi. Lezione 5. Versione per Python 3. Docenti: Alberto Marchetti Spaccamela Raffaele Nicolussi

Dettagli

Istruzioni di controllo

Istruzioni di controllo Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende

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

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

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

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione CSP (Constraint Satisfaction Problem) o CSP = problemi di soddisfacimento di vincoli

Dettagli

Esercizi per la preparazione. Alessandra Giordani Lunedì 13 maggio 2013

Esercizi per la preparazione. Alessandra Giordani Lunedì 13 maggio 2013 Esercizi per la preparazione all esame pratico Alessandra Giordani agiordani@disi.unitn.it Lunedì 13 maggio 2013 http://disi.unitn.it/~agiordani/ Date Appelli 18 giugno 2013 Pratica: 9.00-13.00 Aula pc

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 28 novembre 2007 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

Dettagli

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena.

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena. I flow chart Informatica Generale 14/15 Scienze della comunicazione cristina gena cgena@di.unito.it http://www.di.unito.it/~cgena/teaching.html Diagrammi di flusso SAR Inizio del processo (Blocco di start)

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Interfaccia Comparable e Collezioni Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 22 Interfaccia

Dettagli

Le istruzioni cicliche o iterative: for e while

Le istruzioni cicliche o iterative: for e while Le istruzioni cicliche o iterative: for e while Ciclo o iterazione: un gruppo di istruzioni che può essere ripetuto più volte. Supponiamo di avere a disposizione 10 raggi e di voler calcolare 10 circonferenze.

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo

Dettagli

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while) Laboratorio Due 1) Switch 2) Costrutti Iterazione (For, While, do while) GLI ARGOMENTI DI OGGI Istruzione switch I costrutti di iterazione (For, while, do while) Le funzioni (e ricorsione) Terza Esercitazione

Dettagli

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b);

do { printf(inserisci due numeri reali:); scanf(%f %f, &a, &b); Fondamenti di Informatica T-1 modulo 2 Laboratorio 02 1 Obiettivi di questa esercitazione 1. Valutazione in cortocircuito i 2. If innestati 3. Switch 4. Cicli 5. Funzioni e Header File 2 Valutazione in

Dettagli

Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)

Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi) Esercitazione Oggi dovremo di nuovo usare funzioni sui reali. Ma il C non ha operatori nativi del linguggio per queste operazioni, come la radice quadrata, l'elevamento a potenza o l'arrotondamento. Per

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli