iterazione determinata 16 marzo 2018 - michael.lodi2.web...
TRANSCRIPT
![Page 1: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/1.jpg)
Laboratorio di PythonIterazione determinata
Lab05
16 Marzo 2018
![Page 2: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/2.jpg)
Outline
Correzione esercizi per oggi
Turtle
Uso dell’indice dell’iterazione
Esercizi per casa
![Page 3: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/3.jpg)
Outline
Correzione esercizi per oggi
Turtle
Uso dell’indice dell’iterazione
Esercizi per casa
![Page 4: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/4.jpg)
Esercizio 1 per casa
Scrivere una funzione che prende come parametri due tuple t1 e t2 e unnumero intero n. La prima tupla e da modificare aggiungendo tutti ivalori della seconda tupla alla posizione n. La funzione restituisce la tuplaaggiornata. Es. se t1 = (1, 3, 2), t2 = (9, 7), n = 1 restituira(1, 9, 7, 3, 2).
1 def i n s e r i s c i ( t1 , t2 , n ) :2 return t1 [ : n]+ t2+t1 [ n : ]
![Page 5: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/5.jpg)
Esercizio 1 per casa
Scrivere una funzione che prende come parametri due tuple t1 e t2 e unnumero intero n. La prima tupla e da modificare aggiungendo tutti ivalori della seconda tupla alla posizione n. La funzione restituisce la tuplaaggiornata. Es. se t1 = (1, 3, 2), t2 = (9, 7), n = 1 restituira(1, 9, 7, 3, 2).
1 def i n s e r i s c i ( t1 , t2 , n ) :2 return t1 [ : n]+ t2+t1 [ n : ]
![Page 6: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/6.jpg)
Esercizio 2 per casa
Scrivere un programma che prese due stringhe in input le stampi inordine alfabetico, oppure ne stampi solo una delle due se sono identiche.
1 s1 = input ( ” Prima s t r i n g a : ” )2 s2 = input ( ” Seconda s t r i n g a : ” )3
4 i f s1 < s2 :5 p r i n t ( s1 , s2 )6 e l i f s1 > s2 :7 p r i n t ( s2 , s1 )8 e l s e :9 p r i n t ( s1 )
![Page 7: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/7.jpg)
Esercizio 2 per casa
Scrivere un programma che prese due stringhe in input le stampi inordine alfabetico, oppure ne stampi solo una delle due se sono identiche.
1 s1 = input ( ” Prima s t r i n g a : ” )2 s2 = input ( ” Seconda s t r i n g a : ” )3
4 i f s1 < s2 :5 p r i n t ( s1 , s2 )6 e l i f s1 > s2 :7 p r i n t ( s2 , s1 )8 e l s e :9 p r i n t ( s1 )
![Page 8: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/8.jpg)
Esercizio 3 per casa
Scrivere una funzione che stampi a video
I le consonanti della stringa passata come parametro
I il numero di vocali della stessa stringa
La funzione non stampa e non conteggia spazi, punteggiatura, simbolivari...
1 import s t r i n g2 def c o n s n v o c ( s ) :3 v o c a l i = ” aeiouAEIOU ”4 n v o c a l i = 05 p r i n t ( ” C o n s o n a n t i : ” )6 f o r l i n s :7 i f l i n v o c a l i :8 n v o c a l i = n v o c a l i + 19 e l i f l i n s t r i n g . a s c i i l e t t e r s : #so g i a '
che non e ' una v o c a l e10 p r i n t ( l )11 p r i n t ( ”Numero d i v o c a l i : ” , n v o c a l i )
![Page 9: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/9.jpg)
Esercizio 3 per casa
Scrivere una funzione che stampi a video
I le consonanti della stringa passata come parametro
I il numero di vocali della stessa stringa
La funzione non stampa e non conteggia spazi, punteggiatura, simbolivari...
1 import s t r i n g2 def c o n s n v o c ( s ) :3 v o c a l i = ” aeiouAEIOU ”4 n v o c a l i = 05 p r i n t ( ” C o n s o n a n t i : ” )6 f o r l i n s :7 i f l i n v o c a l i :8 n v o c a l i = n v o c a l i + 19 e l i f l i n s t r i n g . a s c i i l e t t e r s : #so g i a '
che non e ' una v o c a l e10 p r i n t ( l )11 p r i n t ( ”Numero d i v o c a l i : ” , n v o c a l i )
![Page 10: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/10.jpg)
Outline
Correzione esercizi per oggi
Turtle
Uso dell’indice dell’iterazione
Esercizi per casa
![Page 11: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/11.jpg)
modulo turtle
I Immaginiamo di essere una tartaruga che cammina su un pianocartesiano.
I Sotto la pancia abbiamo una penna, che lascia dunque una tracciamentre camminiamo.
I Possiamo muoverci e ruotare (o anche teletrasportarci su un puntospecifico del piano).
I Possiamo anche sollevare la penna per non lasciare il segno.
NB: non salvare il file come turtle.py
Cosa accade?
1 import t u r t l e2
3 t u r t l e . f o r w a r d ( 1 0 0 )
![Page 12: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/12.jpg)
modulo turtle
I Immaginiamo di essere una tartaruga che cammina su un pianocartesiano.
I Sotto la pancia abbiamo una penna, che lascia dunque una tracciamentre camminiamo.
I Possiamo muoverci e ruotare (o anche teletrasportarci su un puntospecifico del piano).
I Possiamo anche sollevare la penna per non lasciare il segno.
NB: non salvare il file come turtle.py
Cosa accade?
1 import t u r t l e2
3 t u r t l e . f o r w a r d ( 1 0 0 )
![Page 13: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/13.jpg)
modulo turtle: funzioni
I turtle.forward(distance)
I turtle.backward(distance)
I turtle.right(angle)
I turtle.left(angle)
I turtle.pendown()
I turtle.penup()
I turtle.goto(x, y)
I turtle.setheading(to angle)
I e molte altre:https://docs.python.org/3/library/turtle.html
![Page 14: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/14.jpg)
Esercizio
Disegnare, procedendo in senso antiorario, un quadrato di lato 100 con latartaruga, senza usare il for.
![Page 15: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/15.jpg)
Esercizio
1 import t u r t l e2 t u r t l e . f o r w a r d ( 1 0 0 )3 t u r t l e . l e f t ( 9 0 )4 t u r t l e . f o r w a r d ( 1 0 0 )5 t u r t l e . l e f t ( 9 0 )6 t u r t l e . f o r w a r d ( 1 0 0 )7 t u r t l e . l e f t ( 9 0 )8 t u r t l e . f o r w a r d ( 1 0 0 )
Potrebbe aver senso usare un for
![Page 16: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/16.jpg)
Intermezzo: ripeti n volte
Posso usare i range (che vedremo meglio in seguito) per far sı cheun’istruzione venga eseguita un numero determinato (finito) di volte.
Cosa stampa questo codice?
1 f o r i i n range ( 4 ) :2 p r i n t ( ” Ciao ” )
![Page 17: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/17.jpg)
Esercizio
Disegnare, procedendo in senso antiorario, un quadrato di lato 100 con latartaruga. Usare il for
![Page 18: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/18.jpg)
Esercizio
1 import t u r t l e2 f o r i i n range ( 4 ) :3 t u r t l e . f o r w a r d ( 1 0 0 )4 t u r t l e . l e f t ( 9 0 )
![Page 19: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/19.jpg)
Esercizio
Usando il ciclo for:
I Scrivere un programma per disegnare un triangolo regolare.
I Poi per disegnare un pentagono regolare.
I Poi per disegnare una stellina a 5 punte:
![Page 20: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/20.jpg)
Esercizio
Triangolo:
1 f o r i i n range ( 3 ) :2 t u r t l e . f o r w a r d ( 1 0 0 )3 t u r t l e . l e f t ( 1 2 0 ) #a n g o l o e s t e r n o !
Pentagono:
1 f o r i i n range ( 5 ) :2 t u r t l e . f o r w a r d ( 1 0 0 )3 t u r t l e . l e f t ( 7 2 )
Stellina:
1 f o r i i n range ( 5 ) : #ho 5 l a t i2 t u r t l e . f o r w a r d ( 1 0 0 )3 t u r t l e . r i g h t ( 1 4 4 ) #dopp io d e l pentagno : s a l t o
un v e r t i c e
![Page 21: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/21.jpg)
Esercizio
Scrivere una funzione che prende come parametri: il numero di lati e lalunghezza del lato e disegna il poligono regolare corrispondente.Controllare che il numero di lati sia maggiore di 2.
![Page 22: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/22.jpg)
Esercizio
1 import t u r t l e2 def p o l i g o n o r e g o l a r e ( n , l ) :3 i f n>2:4 f o r i i n range ( n ) :5 t u r t l e . f o r w a r d ( l )6 t u r t l e . l e f t (360/ n )
![Page 23: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/23.jpg)
Esercizio
Scrivere un programma che disegna una spirale quadrata.
![Page 24: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/24.jpg)
Esercizio
1 import t u r t l e2 d i s t = 103 f o r i i n range ( 5 0 ) :4 t u r t l e . f o r w a r d ( d i s t )5 t u r t l e . r i g h t ( 9 0 )6 d i s t = d i s t +5
![Page 25: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/25.jpg)
Intermezzo: range
Tipo di sequenza immutabile.Rappresentano intervalli sui numeri interi
I range(n) rappresenta l’intervallo su interi [0, n[
I range(a,b) rappresenta l’intervallo su interi [a, b[
I range(a, b, s), se s > 0, rappresenta l’intervallo su interi[a, a + s, a + 2s, ..., a + is] in cui a + is < b
I range(a, b, s), se s < 0, rappresenta l’intervallo su interi[a, a + s, a + 2s, ..., a + is] (n.b. s negativo!) in cui a + is > b
Per vedere i range in forma estesa, possiamo convertirli in tuple
>>> tuple(range(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> tuple(range(1,6))
(1, 2, 3, 4, 5)
>>> tuple(range(0,30,5))
(0, 5, 10, 15, 20, 25)
>>> tuple(range(1,10,2))
(1, 3, 5, 7, 9)
>>> tuple(range(1,10,-2))
()
>>> tuple(range(10,1,-2))
(10, 8, 6, 4, 2)
>>> tuple(range(0))
()
>>> tuple(range(1,0))
()
![Page 26: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/26.jpg)
Intermezzo: range
Tipo di sequenza immutabile.Rappresentano intervalli sui numeri interi
I range(n) rappresenta l’intervallo su interi [0, n[
I range(a,b) rappresenta l’intervallo su interi [a, b[
I range(a, b, s), se s > 0, rappresenta l’intervallo su interi[a, a + s, a + 2s, ..., a + is] in cui a + is < b
I range(a, b, s), se s < 0, rappresenta l’intervallo su interi[a, a + s, a + 2s, ..., a + is] (n.b. s negativo!) in cui a + is > b
Per vedere i range in forma estesa, possiamo convertirli in tuple
>>> tuple(range(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> tuple(range(1,6))
(1, 2, 3, 4, 5)
>>> tuple(range(0,30,5))
(0, 5, 10, 15, 20, 25)
>>> tuple(range(1,10,2))
(1, 3, 5, 7, 9)
>>> tuple(range(1,10,-2))
()
>>> tuple(range(10,1,-2))
(10, 8, 6, 4, 2)
>>> tuple(range(0))
()
>>> tuple(range(1,0))
()
![Page 27: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/27.jpg)
Outline
Correzione esercizi per oggi
Turtle
Uso dell’indice dell’iterazione
Esercizi per casa
![Page 28: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/28.jpg)
Indice nel for
Cosa stampa questo codice?
1 f o r i i n range ( 1 0 0 ) :2 p r i n t ( i )
E questo?
1 f o r i i n range ( 1 , 1 0 1 ) :2 p r i n t ( i )
E questo?
1 f o r i i n range ( 0 , 1 0 0 , 2 ) :2 p r i n t ( i )
![Page 29: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/29.jpg)
Indice nel for
Cosa stampa questo codice?
1 f o r i i n range ( 1 0 0 ) :2 p r i n t ( i )
E questo?
1 f o r i i n range ( 1 , 1 0 1 ) :2 p r i n t ( i )
E questo?
1 f o r i i n range ( 0 , 1 0 0 , 2 ) :2 p r i n t ( i )
![Page 30: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/30.jpg)
Indice nel for
Cosa stampa questo codice?
1 f o r i i n range ( 1 0 0 ) :2 p r i n t ( i )
E questo?
1 f o r i i n range ( 1 , 1 0 1 ) :2 p r i n t ( i )
E questo?
1 f o r i i n range ( 0 , 1 0 0 , 2 ) :2 p r i n t ( i )
![Page 31: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/31.jpg)
Esercizio
Scrivere una funzione che prende come parametro un numero n e nestampa la tabellina (da 0 a 10). Esempio tabellina(2) stampa:
2x0=0
2x1=2
2x2=4
2x3=6
2x4=8
2x5=10
2x6=12
2x7=14
2x8=16
2x9=18
2x10=20
![Page 32: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/32.jpg)
Esercizio
1 def t a b e l l i n a ( n ) :2 f o r i i n range ( 0 , 1 1 ) :3 p r i n t ( n , ” x” , i , ”=” , n∗ i , sep= ' ' )
![Page 33: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/33.jpg)
Esercizio
Scrivere una funzione che stampa il Triangolo di Floyd di dimensione n,passato come parametro. L’i-esima riga del triangolo e una tupla di inumeri naturali. Es. con n = 5 il triangolo sara
1 ( 1 , )2 ( 2 , 3)3 ( 4 , 5 , 6)4 ( 7 , 8 , 9 , 10)5 ( 1 1 , 12 , 13 , 14 , 15)
Suggerimento: notare che il primo elemento di ogni riga corrisponde alnumero della riga precedente (partendo a contare le righe da 1) sommatoal primo elemento della riga precedente.
![Page 34: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/34.jpg)
Esercizio
1 def Floyd ( n ) :2 pe = 1 #primo e lemento3 #f o r p e r o g n i ” r i g a ” d e l t r i a n g o l o ( da 1 a n )4 f o r r i g a i n range ( 1 , n+1) :5 #primo e lemento r i g a s u c c e s s i v a6 pes = pe + r i g a7 #r i c o r d a : u l t i m o e lemento e s c l u s o8 p r i n t ( tup le ( range ( pe , pes ) ) )9 #a g g i o r n o pr ima d i p a s s a r e a l l a r i g a s u c c .
10 pe = pes
![Page 35: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/35.jpg)
Outline
Correzione esercizi per oggi
Turtle
Uso dell’indice dell’iterazione
Esercizi per casa
![Page 36: Iterazione determinata 16 Marzo 2018 - michael.lodi2.web ...michael.lodi2.web.cs.unibo.it/Slide/Lab05.pdf · Esercizio 1 per casa Scrivere una funzione che prende come parametri due](https://reader031.vdocuments.mx/reader031/viewer/2022021807/5bdc5fd909d3f263278dd619/html5/thumbnails/36.jpg)
Esercizi per casa (per il 20/03/2018 ore 8:59)(Mail: Lab05-..........)
1. Scrivere una funzione che restituisce True se una stringa passatacome parametro e palindroma (senza considerare gli spazi, lapunteggiatura ma facendo distinzione tra maiuscole e miniscole: es“Anna” non e palindroma, “ANGOLO BAR, A BOLOGNA!” sı).Usare il ciclo for.
2. Scrivere una funzione che presi due numeri come parametri dellafunzione, restituisca il Massimo Comun Divisore (MCD) tra i duenumeri. Usare il ciclo for.
3. Scrivere una funzione che preso come parametro un numero n
(controllare che n>2) restituisce il piu piccolo c (c>=2) tale cheMCD(n,c) == 1. Usare il ciclo for e la funzione dell’esercizio 2.
4. Scrivere una funzione con un parametro n. Se n>=7, disegna una”stellina” a n punte. Si tratta di una generalizzazione della versionea 5 punte. NB! Il numero dei lati da ”saltare” puo essere sceltocome un numero coprimo con n (e dunque si puo usare la funzionedell’esercizio 3).