Laboratorio di Python

Documenti analoghi
Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python (con Linux)

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Python

Laboratorio di Python

Laboratorio di Python

Logo. è il punto in cui si trova la tartaruga al momento dell avvio del programma

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Linguistica Computazionale

Laboratorio di Programmazione Laurea in Bioinformatica

Usare Python in Linux

a.a Codice corso: 21012, HOMEWORKS

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Laboratorio di Python

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Presenta: I Poligoni e loro proprietà

Corso di Linguaggi di Programmazione

LEZIONE 3: SELEZIONE

Quadrato Magico. Fondamenti di Programmazione

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

Primo programma in C

SCUOLA SECONDARIA DI SECONDO GRADO. Contenuti Attività Metodo Strumenti Durata (in ore)

I POLIGONI. DEFINIZIONE: un poligono è una parte limitata di piano definita da una linea chiusa, spezzata, non intrecciata.

03.x1. esercizi Sui cicli. 03-X1_Esercizi_[02] Versione del: giovedì 14 novembre Andrea Zoccheddu CORSO INFORMATICA ITI ANGIOY SASSARI

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

Informatica Generale Homework di Recupero 2016

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.

Rappresentazione degli algoritmi

Fondamenti di Informatica T-1

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

Strutture di iterazione

Spirali. Novembre Spirali Novembre / 19

Laboratorio di Python (con Linux)

1. IL CERCHIO COLORATO

TAVOLE PER IL DISEGNO

Laboratorio di Informatica

Per la terza classe della scuola secondaria di I grado. Numeri e rettangoli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

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

Strutture di iterazione

Costrutti condizionali e iterativi

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

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Esercizi 2. Marco Anisetti

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

SCUOLA PRIMARIA MATEMATICA (Classe 1ª)

Lezione 9 Esercizi d esame

Esercizi di Algoritmi e Strutture Dati

SCHEMI DI MATEMATICA

Programmazione in Python per la bioinformatica

Università degli Studi di Roma Tor Vergata. Principio di induzione matematica

Laboratorio di Calcolo Numerico

ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND

Esercizi Programmazione I

Tipi di linea. Tipi di Linea - R.Virili 1

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

La geometria con il CABRI

PROBABILITÁ e CALCOLO COMBINATORIO

Agnese De Rito, Rosemma Cairo, Egidia Fusani Dell associazione Matematica in Gioco. Poligoni stellati

Il Mondo della Tartaruga - Programmazione LOGO

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

PIANO CARTESIANO. NB: attenzione ai punti con una coordinata nulla: si trovano sugli assi

Sessione 3 LA GEOMETRIA DELLA TARTARUGA: UNA MATEMATICA FATTA PER APPRENDERE

Test di autovalutazione

Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 17 Novembre 2015

Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.

Laboratorio di Python

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

IL TEOREMA DI PITAGORA

Introduzione alla programmazione Esercizi risolti

Transcript:

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)

Outline Correzione esercizi per oggi Turtle Uso dell indice dell iterazione Esercizi per casa

Esercizio 1 per casa Scrivere una funzione che prende come parametri due tuple t1 e t2 e un numero intero n. La prima tupla è da modificare aggiungendo tutti i valori della seconda tupla alla posizione n. La funzione restituisce la tupla aggiornata. Es. se t1 = (1, 3, 2), t2 = (9, 7), n = 1 restituirà (1, 9, 7, 3, 2).

Esercizio 1 per casa Scrivere una funzione che prende come parametri due tuple t1 e t2 e un numero intero n. La prima tupla è da modificare aggiungendo tutti i valori della seconda tupla alla posizione n. La funzione restituisce la tupla aggiornata. Es. se t1 = (1, 3, 2), t2 = (9, 7), n = 1 restituirà (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 : ]

Esercizio 2 per casa Scrivere un programma che prese due stringhe in input le stampi in ordine alfabetico, oppure ne stampi solo una delle due se sono identiche.

Esercizio 2 per casa Scrivere un programma che prese due stringhe in input le stampi in ordine 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 )

Esercizio 3 per casa Scrivere una funzione che stampi a video le consonanti della stringa passata come parametro il numero di vocali della stessa stringa La funzione non stampa e non conteggia spazi, punteggiatura, simboli vari...

Esercizio 3 per casa Scrivere una funzione che stampi a video le consonanti della stringa passata come parametro il numero di vocali della stessa stringa La funzione non stampa e non conteggia spazi, punteggiatura, simboli vari... 1 import s t r i n g 2 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 = 0 5 p r i n t ( Consonanti : ) 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 + 1 9 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 e 10 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 )

modulo turtle Immaginiamo di essere una tartaruga che cammina su un piano cartesiano. Sotto la pancia abbiamo una penna, che lascia dunque una traccia mentre camminiamo. Possiamo muoverci e ruotare (o anche teletrasportarci su un punto specifico del piano). Possiamo anche sollevare la penna per non lasciare il segno.

modulo turtle Immaginiamo di essere una tartaruga che cammina su un piano cartesiano. Sotto la pancia abbiamo una penna, che lascia dunque una traccia mentre camminiamo. Possiamo muoverci e ruotare (o anche teletrasportarci su un punto specifico del piano). Possiamo anche sollevare la penna per non lasciare il segno. Cosa accade? 1 import t u r t l e 2 3 t u r t l e. f o r w a r d (100)

modulo turtle: funzioni turtle.foward(distance) turtle.backward(distance) turtle.right(angle) turtle.left(angle) turtle.pendown() turtle.penup() turtle.goto(x, y) turtle.setheading(to angle) e molte altre: https://docs.python.org/3.4/library/turtle.html

Esercizio Disegnare, procedendo in senso antiorario, un quadrato di lato 100 con la tartaruga, senza usare il for.

Esercizio Disegnare, procedendo in senso antiorario, un quadrato di lato 100 con la tartaruga, senza usare il for. 1 import t u r t l e 2 t u r t l e. f o r w a r d (100) 3 t u r t l e. l e f t (90) 4 t u r t l e. f o r w a r d (100) 5 t u r t l e. l e f t (90) 6 t u r t l e. f o r w a r d (100) 7 t u r t l e. l e f t (90) 8 t u r t l e. f o r w a r d (100) Potrebbe aver senso usare un for

Intermezzo: ripeti n volte Posso usare i range (che vedremo meglio in seguito) per far sì che un 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 )

Esercizio Disegnare, procedendo in senso antiorario, un quadrato di lato 100 con la tartaruga. Usare il for

Esercizio Disegnare, procedendo in senso antiorario, un quadrato di lato 100 con la tartaruga. Usare il for 1 import t u r t l e 2 f o r i i n range ( 4 ) : 3 t u r t l e. f o r w a r d (100) 4 t u r t l e. l e f t (90)

Esercizio Scrivere il codice per disegnare un triangolo regolare. Poi per disegnare un pentagono regolare. Poi per disegnare una stellina a 5 punte:

Esercizio Scrivere il codice per disegnare un triangolo regolare. Poi per disegnare un pentagono regolare. Poi per disegnare una stellina a 5 punte: Triangolo: 1 f o r i i n range ( 3 ) : 2 t u r t l e. f o r w a r d (100) 3 t u r t l e. l e f t (120) #angolo 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 (100) 3 t u r t l e. l e f t (72) Stellina: 1 f o r i i n range ( 5 ) : #ho 5 l a t i 2 t u r t l e. f o r w a r d (100) 3 t u r t l e. r i g h t (144) #doppio d e l pentagno : s a l t o un v e r t i c e

Esercizio Scrivere una funzione che prende come parametri: il numero di lati e la lunghezza del lato e disegna il poligono regolare corrispondente. Controllare che il numero di lati sia maggiore di 2.

Esercizio Scrivere una funzione che prende come parametri: il numero di lati e la lunghezza del lato e disegna il poligono regolare corrispondente. Controllare che il numero di lati sia maggiore di 2. 1 import t u r t l e 2 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 )

Esercizio Scrivere un programma che disegna una spirale quadrata.

Esercizio Scrivere un programma che disegna una spirale quadrata. 1 import t u r t l e 2 d i s t = 10 3 f o r i i n range (50) : 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 (90) 6 d i s t = d i s t +5

Intermezzo: range Tipo di sequenza immutabile. Rappresentano intervalli sui numeri interi range(n) rappresenta l intervallo su interi [0, n[ range(a,b) rappresenta l intervallo su interi [a, b[ range(a, b, s), se s > 0, rappresenta l intervallo su interi [a, a + s, a + 2s,..., a + is] in cui a + is < b 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

Intermezzo: range Tipo di sequenza immutabile. Rappresentano intervalli sui numeri interi range(n) rappresenta l intervallo su interi [0, n[ range(a,b) rappresenta l intervallo su interi [a, b[ range(a, b, s), se s > 0, rappresenta l intervallo su interi [a, a + s, a + 2s,..., a + is] in cui a + is < b 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)) ()

Indice nel for Cosa stampa questo codice? 1 f o r i i n range (100) : 2 p r i n t ( i )

Indice nel for Cosa stampa questo codice? 1 f o r i i n range (100) : 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 )

Indice nel for Cosa stampa questo codice? 1 f o r i i n range (100) : 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 )

Esercizio Scrivere una funzione che prende come parametro un numero n e ne stampa 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

Esercizio Scrivere una funzione che prende come parametro un numero n e ne stampa 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 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= ' ' )

Esercizio Scrivere una funzione che stampa il Triangolo di Floyd di dimensione n, passato come parametro. L i-esima riga del triangolo è una tupla di i numeri naturali. Es. con n = 5 il triangolo sarà (1,) (2, 3) (4, 5, 6) (7, 8, 9, 10) (11, 12, 13, 14, 15) Suggerimento: notare che il primo elemento di ogni riga corrisponde al numero della riga precedente (partendo a contare le righe da 1) sommato al primo elemento della riga precedente.

Esercizio Scrivere una funzione che stampa il Triangolo di Floyd di dimensione n, passato come parametro. L i-esima riga del triangolo è una tupla di i numeri naturali. Es. con n = 5 il triangolo sarà (1,) (2, 3) (4, 5, 6) (7, 8, 9, 10) (11, 12, 13, 14, 15) Suggerimento: notare che il primo elemento di ogni riga corrisponde al numero della riga precedente (partendo a contare le righe da 1) sommato al primo elemento della riga precedente. 1 d e f F l o y d ( n ) : 2 p r i m o e l e m e n t o = 1 3 f o r r i g a i n range ( 1, n+1) : #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 p r i m o e l e m e n t o s u c c = p r i m o e l e m e n t o+r i g a #primo e lemento r i g a s u c c e s s i v a 5 p r i n t ( t u p l e ( range ( p r i m o e l e m e n t o, p r i m o e l e m e n t o s u c c ) ) ) #r i c o r d a : u l t i m o e l e mento e s c l u s o 6 p r i m o e l e m e n t o = p r i m o e l e m e n t o s u c c #a g g i o r n o prima d i p a s s a r e a l l a r i g a s u c c e s s i v a

Esercizi per casa (per il 22/03/2017 ore 8:59) (Mail: Lab05-...) 1. Scrivere una funzione che restituisce True se una stringa passata come parametro è palindroma (senza considerare gli spazi, la punteggiatura ma facendo distinzione tra maiuscole e miniscole: es Anna non è palindroma, ANGOLO BAR, A BOLOGNA! sì). Usare il ciclo for. 2. Scrivere una funzione che presi due numeri come parametri della funzione, restituisca il Massimo Comun Divisore (MCD) tra i due numeri. Usare il ciclo for. 3. Scrivere una funzione che preso come parametro un numero n restituisce il più piccolo c (c>=2) tale che MCD(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 versione a 5 punte. NB! Il numero dei lati da saltare può essere scelto come un numero non divisibile per n (e dunque si può usare la funzione dell esercizio 3).