Laboratorio 05. Programmazione - CdS Matematica. Marco Virgulin 2 dicembre 2014
|
|
- Iolanda Manzo
- 5 anni fa
- Visualizzazioni
Transcript
1 Laboratorio 05 Programmazione - CdS Matematica Marco Virgulin 2 dicembre 2014
2 Script Aprire idle dal terminale (ricordarsi la & per poter utilizzare lo stesso terminale con idle in esecuzione): idle & Aprire l editor dal menu File New window Salvare il file (es: lab5.py). Per eseguire lo script utilizzare il comando da terminale: python lab5.py Oppure premere F5 all interno dell editor. 2 of 31
3 Funzioni I La sintassi generale della definizione di una funzione è: def nome_funzione(<parametri>): # i parametri sono opzionali documentazione della funzione # opzionale <corpo della funzione> Esempi di definizione di funzioni: def saluta(): print("ciao!") def saluta_qualcuno(chi): print "Ciao %s!" % chi 3 of 31
4 Funzioni II Invocazione di funzioni (nello stesso script delle definizioni): saluta() saluta_qualcuno("marco") Dall esecuzione dello script da console si ottiene: Ciao! Ciao Marco! 4 of 31
5 Funzioni III Valori di default per i parametri: def saluta_qualcuno(chi = "Nessuno"): print "Ciao %s!" % chi saluta_qualcuno() saluta_qualcuno("marco") Output: Ciao Nessuno! Ciao Marco! 5 of 31
6 Funzioni IV Tutte le funzioni ritornano un valore. Se non è specificato il comando return, viene aggiunto un return None. Esempio: def valore_assoluto(x): if x < 0: return -x return x print valore_assoluto(1) print valore_assoluto(-10) type(valore_assoluto(-10)) type(saluta()) 1 10 <type int > Ciao! <type NoneType > 6 of 31
7 Esercizio Esercizio Scrivere una funzione chiedi_positivo() che chiede all utente di inserire un intero positivo. Se l utente non inserisce un intero positivo la funzione continua a richiederlo, se invece viene inserito un intero positivo la funzione ritorna l intero stesso. 7 of 31
8 Esercizio Esercizio Scrivere una funzione chiedi_positivo() che chiede all utente di inserire un intero positivo. Se l utente non inserisce un intero positivo la funzione continua a richiederlo, se invece viene inserito un intero positivo la funzione ritorna l intero stesso. def chiedi_positivo(): n = int(raw_input("inserire un intero positivo: ")) while n < 1: n = int(raw_input("inserire un intero positivo: ")) return n 7 of 31
9 Esercizio Soluzioni equivalenti? def chiedi_positivo(): n = int(raw_input("inserire un intero positivo: ")) while n < 1: n = int(raw_input("inserire un intero positivo: ")) return n def chiedi_positivo(): n = 0 while n < 1: n = int(raw_input("inserire un intero positivo: ")) return n 8 of 31
10 Esercizio Esercizio Scrivere un videogioco per giocare a morra cinese contro il calcolatore. In particolare: (i) il sasso spezza le forbici, (ii) le forbici tagliano la carta, (iii) la carta avvolge il sasso. 9 of 31
11 Esercizio Esercizio Scrivere un videogioco per giocare a morra cinese contro il calcolatore. In particolare: (i) il sasso spezza le forbici, (ii) le forbici tagliano la carta, (iii) la carta avvolge il sasso. Suggerimenti, funzioni da definire: mossa_utente(), che chiede e ritorna la mossa dell utente (l utente dovrebbe poter scrivere sia carta che CARta ) mossa_calc(), che ritorna la mossa del calcolatore vincitore(utente, calc), che stampa il vincitore date le due mosse 9 of 31
12 Soluzione I import random def mossa_utente(): mosse_legali = ["carta", "sasso", "forbice"] l = raw_input("inserisci la tua mossa: ").lower() while l not in mosse_legali: l = raw_input("inserisci la tua mossa: ").lower() return l def mossa_calc(): mosse_legali = ["carta", "sasso", "forbice"] return mosse_legali[random.randint(0,2)] 10 of 31
13 Soluzione II def vincitore(utente, calc): print "Utente: %s\ncalcolatore: %s" % (mossa_utente, mossa_calc) if (utente == calc): print "Pareggio!" elif (utente=="carta" and calc=="sasso") or (utente== "sasso" and calc=="forbice") or (utente=="forbice" and calc=="carta"): print "Hai vinto! :D" else: print "Hai perso! D:" # Per giocare una partita si esegue l istruzione: vincitore(mossa_utente(), mossa_calc()) 11 of 31
14 Esercizio Esercizio Estendere l esercizio precedente, chiedendo, come prima cosa, il numero di round (intero positivo) da effettuare. Il vincitore finale è colui che vince più round. Suggerimenti: Utilizzare la funzione chiedi_positivo() (definita prima) per chiedere all utente il numero di round Definire la funzione gioca_partita(num_round) che gestisce i round (quale struttura dati per le statistiche durante i vari round?) Modificare la funzione vincitore(mossa_utente, mossa_calc) affinché ritorni il risultato del round invece di stampare un messaggio 12 of 31
15 Soluzione def vincitore(mossa_utente, mossa_calc): if (mossa_utente == mossa_calc): return "pareggio" elif #... return "vittoria" else: return "sconfitta" def gioca_partita(num_round): stato = {"pareggio":0, "vittoria":0, "sconfitta":0} for r in range(0, num_round): print "ROUND %d" % r stato[vincitore(mossa_utente(),mossa_calc())] += 1 return stato print gioca_partita(chiedi_positivo()) 13 of 31
16 Visibilità delle variabili I Variabili locali definite dentro alle funzioni (locali alla funzione) Variabili globali definite fuori da tutte le funzioni var = "glob" def f(): var2 = "loc" print var + " " + var2 f() var += "-mod" f() glob loc glob-mod loc 14 of 31
17 Visibilità delle variabili II Risoluzione nomi: variabili locali funzioni esterne globali built-in Esempio: x = 1 def f(): x = 2 print x f() print x of 31
18 Esercizio Che cosa stampa? (ragionateci prima di provare) def f(x = 1): print x + 1 f() f(2) x = 3 f() 16 of 31
19 Esercizio Che cosa stampa? (ragionateci prima di provare) def f(x = 1): print x + 1 f() f(2) x = 3 f() of 31
20 Funzioni come parametri Funzioni possono essere parametri di funzioni def f(x): return x**2 def g(x): return 2*x def applica(lista, h): r = [] for e in lista: r.append((e, h(e))) return r print applica([1, 2, 3, 4], f) print applica([1, 2, 3, 4], g) 17 of 31
21 Funzioni come parametri Funzioni possono essere parametri di funzioni def f(x): return x**2 def g(x): return 2*x def applica(lista, h): r = [] for e in lista: r.append((e, h(e))) return r print applica([1, 2, 3, 4], f) print applica([1, 2, 3, 4], g) [(1, 1), (2, 4), (3, 9), (4, 16)] [(1, 2), (2, 4), (3, 6), (4, 8)] 17 of 31
22 Esercizio I Esercizio Scrivere una funzione crypt che possa sia cifrare che decifrare una stringa passando un carattere alla volta alle funzioni (parametro) crypt_char e decrypt_char che codificano e decodificano singoli caratteri con chiave k. Esempio di invocazione def crypt_char(c, k = 3): return " " if c == " " else chr(ord("a") + ((ord(c) - ord("a") + k) % 26)) def decrypt_char(c): return crypt_char(c, -3) s = "stringa" enc = crypt(s, crypt_char) dec = crypt(enc, decrypt_char) 18 of 31
23 Soluzione I def crypt(s, f): enc = "" for c in s: enc += f(c) return enc enc = crypt("test cifratura", crypt_char) print enc dec = crypt(enc, decrypt_char) print dec whvw fliudwxud test cifratura 19 of 31
24 Funzioni ricorsive Funzioni che dipendono dal risultato della funzione stessa su valori più semplici. 20 of 31
25 Funzioni ricorsive Funzioni che dipendono dal risultato della funzione stessa su valori più semplici. Il fattoriale di un numero: { 1 se n 1 detto caso base n! = n(n 1)! se n > 1 20 of 31
26 Funzioni ricorsive Funzioni che dipendono dal risultato della funzione stessa su valori più semplici. Il fattoriale di un numero: { 1 se n 1 detto caso base n! = n(n 1)! se n > 1 def fatt(n): if n <= 1: return 1 else: return n * fatt(n-1) 20 of 31
27 Funzioni ricorsive def fatt(n): if n <= 1: return 1 else: return n*fatt(n-1) fatt(4) of 31
28 Funzioni ricorsive def fatt(n): if n <= 1: return 1 else: return n*fatt(n-1) fatt(4) of 31
29 Esercizio Esercizio Scrivere una funzione ricorsiva per il calcolo dell n-esimo numero nella serie di Fibonacci. Dove F n = F n 1 + F n 2. Si assume F 1 = 0 e F 2 = 1. I primi termini della serie sono quindi: 0, 1, 1, 2, 3, 5, 8, of 31
30 Esercizio Esercizio Scrivere una funzione ricorsiva per il calcolo dell n-esimo numero nella serie di Fibonacci. Dove F n = F n 1 + F n 2. Si assume F 1 = 0 e F 2 = 1. I primi termini della serie sono quindi: 0, 1, 1, 2, 3, 5, 8,... def fib(n): if n == 1: return 0 elif n == 2: return 1 else: return fib(n-1) + fib(n-2) 22 of 31
31 Esercizio Esercizio Riscrivere la funzione chiedi_positivo() senza usare while (versione iterativa) sfruttando invece la ricorsione. 23 of 31
32 Esercizio Esercizio Riscrivere la funzione chiedi_positivo() senza usare while (versione iterativa) sfruttando invece la ricorsione. def chiedi_positivo(): n = int(raw_input("inserisci un intero positivo: ")) if n < 1: return chiedi_positivo() return n print chiedi_positivo() Inserisci un intero positivo: -5 Inserisci un intero positivo: of 31
33 Esercizio Esercizio Definire una funzione ricorsiva che, data una stringa, ritorna True se questa è palindroma, False altrimenti. Non potete usare alcuna funzione delle stringhe, ad eccezione di len e dello slicing (non si può usare striding). 24 of 31
34 Esercizio Esercizio Definire una funzione ricorsiva che, data una stringa, ritorna True se questa è palindroma, False altrimenti. Non potete usare alcuna funzione delle stringhe, ad eccezione di len e dello slicing (non si può usare striding). def palindroma(s): if not s: return True elif s[0] == s[len(s)-1]: return palindroma(s[1:len(s)-1]) else: return False print palindroma("osso") True 24 of 31
35 Esercizio Estensione esercizio Estendere l esercizio precedente al trattamento di frasi palindrome (senza considerare spazi, segni di punteggiatura e la distinzione maiuscole/minuscole). Suggerimento: può essere utile la funzione str.isalpha(). Esempi di frasi palindrome: O mordo tua nuora o aro un Occorre pepe per Rocco autodromo Etna gigante I topi non avevano nipoti Ave, Eva! Avida diva Alla bisogna tango si balla Amo Roma Ettore evitava le madame lavative e rotte Eran i mesi di seminare I tropici, mamma. Mi ci porti? Alle carte t alleni nella tetra cella 25 of 31
36 Soluzione Possibile soluzione def palindroma(s): if not s: return True if s[0].isalpha() == False: # nuovo caso return palindroma(s[1:len(s)]) if s[-1].isalpha() == False: # nuovo caso return palindroma(s[0:len(s)-1]) elif s[0].lower() == s[len(s)-1].lower(): return palindroma(s[1:len(s)-1]) else: return False 26 of 31
37 Direzione della ricorsione Possibili direzioni della ricorsione In avanti: chiamata ricorsiva è l ultima istruzione All indietro: chiamata ricorsiva è prima istruzione (dopo caso base) 27 of 31
38 Direzione della ricorsione Possibili direzioni della ricorsione In avanti: chiamata ricorsiva è l ultima istruzione All indietro: chiamata ricorsiva è prima istruzione (dopo caso base) Esercizio Scrivere una funzione ricorsiva avanti(l) che stampa gli elementi della lista l dal primo all ultimo. Scrivere una funzione ricorsiva indietro(l) che stampa gli elementi della lista l dall ultimo al primo. avanti e indietro devono differenziarsi solo per la posizione della chiamata ricorsiva. 27 of 31
39 Soluzione I def avanti(l): if not l: return print l[0] avanti(l[1:]) def indietro(l): if not l: return indietro(l[1:]) print l[0] l = [1,2] avanti(l) indietro(l) of 31
40 Esercizio Esercizio Scrivere un generatore di frasi casuali (non di senso compiuto). Ciascuna frase() genera un soggetto() un verbo() e, se il verbo è transitivo, un complemento() Più frasi si possono concatenare con una congiunzione() Non si possono concatenare più di 4 frasi assieme Esecuzione di frase() devono produrre risultati differenti 29 of 31
41 Soluzione import random 30 of 31
42 Soluzione import random def soggetto(): l = ["Pippo", "Pluto", "Paperino", "un robot"] return l[random.randrange(len(l))] 30 of 31
43 Soluzione import random def soggetto(): l = ["Pippo", "Pluto", "Paperino", "un robot"] return l[random.randrange(len(l))] def verbo(): l = [("corre", False), ("dorme", False), ("mangia", True), ("lancia", True)] verbo = l[random.randrange(len(l))] if (verbo[1]): return verbo[0] + " " + complemento() return verbo[0] 30 of 31
44 Soluzione import random def soggetto(): l = ["Pippo", "Pluto", "Paperino", "un robot"] return l[random.randrange(len(l))] def verbo(): l = [("corre", False), ("dorme", False), ("mangia", True), ("lancia", True)] verbo = l[random.randrange(len(l))] if (verbo[1]): return verbo[0] + " " + complemento() return verbo[0] def complemento(): l = ["il libro", "la porta", "un panino"] return l[random.randrange(len(l))] 30 of 31
45 Soluzione def congiunzione(): l = ["e", "ma", "mentre"] return l[random.randrange(len(l))] 31 of 31
46 Soluzione def congiunzione(): l = ["e", "ma", "mentre"] return l[random.randrange(len(l))] def frase(n = 2): if (n == 0 or random.random() > 0.5): return soggetto() + " " + verbo() else: return frase(n-1) + " " + congiunzione() + " " + frase(n-1) 31 of 31
Laboratorio 06. Programmazione - CdS Matematica. Michele Donini 03 dicembre 2013
Laboratorio 06 Programmazione - CdS Matematica Michele Donini 03 dicembre 2013 Esercizio I Esercizio Scrivere una funzione crypt che cripta una stringa, passando un carattere per volta alla funzione (parametro)
Laboratorio 05b. Programmazione - CdS Matematica. Lauriola Ivano 13 dicembre 2016
Laboratorio 05b Programmazione - CdS Matematica Lauriola Ivano 13 dicembre 2016 Script Aprire idle dal terminale (ricordarsi la & per poter utilizzare lo stesso terminale con idle in esecuzione): idle
Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 19 Novembre 2013
Laboratorio 04 Programmazione - CdS Matematica Michele Donini 19 Novembre 2013 Controllo del flusso Selezione: ci permette di modificare il normale flusso sequenziale di un programma a seconda della valutazione
Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 17 Novembre 2015
Laboratorio 04 Programmazione - CdS Matematica Michele Donini 17 Novembre 2015 Controllo del flusso Selezione: ci permette di modificare il normale flusso sequenziale di un programma a seconda della valutazione
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
ma può aiutare La ricorsione all opera
ma può aiutare Un problema complesso Numero di percorsi su una griglia di strade (Manhattan-like) quanti percorsi minimi differenti da A a B? minimi: aventi la minima lunghezza possibile ogni segmento
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
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
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
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ù
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
Laboratorio 09. Programmazione - CdS Matematica. Ivano Lauriola 16 gennaio 2018
Laboratorio 09 Programmazione - CdS Matematica Ivano Lauriola 16 gennaio 2018 Binary Search Tree Alberi binari di ricerca Gli alberi binari di ricerca (binary search trees, BST), detti anche alberi ordinati,
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
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
Laboratorio 8. Programmazione - CdS Matematica. Marco Virgulin 13 Gennaio 2015
Laboratorio 8 Programmazione - CdS Matematica Marco Virgulin 13 Gennaio 2015 Esercizio di riepilogo. Generare N numeri reali in [0,1[ e scriverli su file. Leggere i valori dal file e inserirli in un albero
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
Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU
Tutorato di Fondamenti di Informatica PROFESSORE: GIAN LUCA MARCIALIS TUTOR: DAVIDE GHIANI, GIULIA ORRU Organizzazione Informazioni di contatto: informatica.marcialis@gmail.com Davide Ghiani Giulia Orrù
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)
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
Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013
Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare
Laboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Dottoressa Sara Zuppiroli - sara.zuppiroli@unibo.it L'importanza di capire Perché non dobbiamo dichiarare
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
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
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
Laboratorio 8. Programmazione - CdS Matematica. Mirko Polato 15 Dicembre 2015
Laboratorio 8 Programmazione - CdS Matematica Mirko Polato 15 Dicembre 2015 Operare su File Per operare su un file occorre eseguire le seguenti operazioni: aprire il file in scrittura o lettura; scrivere
LA RICORSIONE LA RICORSIONE LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO LA RICORSIONE: ESEMPIO
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
Esercizi su programmazione ricorsiva 1. Pericle Perazzo 23 marzo 2012
su programmazione ricorsiva 1 Pericle Perazzo pericle.perazzo@iet.unipi.it http://info.iet.unipi.it/~fondii/ 23 marzo 2012 Ripasso di programmazione ricorsiva Ripasso di programmazione ricorsiva Algoritmo
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
Fondamenti di Informatica
Fondamenti di Informatica (La Ricorsione e Debugging) Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2017/18 OUTLINE La ricorsione - Principi base Caso Studio
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
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
Laboratorio 10. Programmazione - CdS Matematica. Michele Donini, Marta Gatto, Mirko Polato 19 gennaio 2016
Laboratorio 10 Programmazione - CdS Matematica Michele Donini, Marta Gatto, Mirko Polato 19 gennaio 2016 Esercizio 1 Date le seguenti istruzioni, dire senza eseguire, quale sarà il valore contenuto nella
LA RICORSIONE. Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa
LA RICORSIONE Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa La ricorsione consiste nella possibilità di definire una funzione in termini
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
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
Primi script in MATLAB
Primi script in MATLAB Laboratorio di Calcolo Numerico 6 Marzo 2018 Introduzione alla programmazione Obiettivo: scrivere programmi e sviluppare algoritmi in MATLAB Si utilizzano gli m-file, ovvero file
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,
Laboratorio 01. Programmazione - CdS Matematica. Michele Donini 27 Ottobre 2015
Laboratorio 01 Programmazione - CdS Matematica Michele Donini 27 Ottobre 2015 Prendiamo confidenza Apriamo la console di Python: python Python 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3] on linux2
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
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Corso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 6 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Funzioni che restituiscono tuple di valori Le funzioni Python possono
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
Comunicazioni di servizio. I metodi - III. Oggi. Dove siamo. Esempio. Parametri di tipo array. Stefano Mizzaro 1. Domani non c è lezione :-(
Comunicazioni di servizio I metodi - III Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 11
Laboratorio 03. Programmazione - CdS Matematica. Andrea Burattin 12 novembre 2013
Laboratorio 03 Programmazione - CdS Matematica Andrea Burattin 12 novembre 2013 Dizionari Un dizionario è Contenitore di coppie: chiave, valore Non prevede alcun ordinamento (Un array associativo) A cosa
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
Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Esercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
Ambienti di Programmazione per il Software di Base
Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base
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
Laboratorio di Python
Laboratorio di Python Esercizi di debug Lab07 27 Marzo 2018 Outline Correzione esercizi per oggi Debug Strategia Esercizi di debug Esercizi per casa Outline Correzione esercizi per oggi Debug Strategia
Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario La ricorsione Metodi ricorsivi Esercizi proposti 16/01/2013 2 La ricorsione In Java ogni metodo può chiamare anche se stesso,
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
Laboratorio 03. Programmazione - CdS Matematica. Michele Donini 11 novembre 2014
Laboratorio 03 Programmazione - CdS Matematica Michele Donini 11 novembre 2014 Dizionari Un dizionario è Contenitore di coppie: chiave, valore Non prevede alcun ordinamento A cosa può servire Iterare sulle
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:
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 08/02/2017/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 08/02/2017/ Foglio delle domande/ VERSIONE 1 1) Nella ricorsione, quando il problema ha soluzione immediata siamo a) nell ipotesi ricorsiva b) nel
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
Programmazione. Selezione e ripetizione. Francesco Tiezzi. Scuola di Scienze e Tecnologie Sezione di Informatica Università di Camerino
Programmazione Francesco Tiezzi Scuola di Scienze e Tecnologie Sezione di Informatica Università di Camerino Lucidi originali di Pierluigi Crescenzi Variabili ed espressioni Booleane Variabili ed espressioni
Laboratorio 01. Programmazione - CdS Matematica. Ivano Lauriola 31 Ottobre 2017
Laboratorio 01 Programmazione - CdS Matematica Ivano Lauriola 31 Ottobre 2017 Prendiamo confidenza Apriamo la console di Python: python Python 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3] on linux2
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS
CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS Comandi da terminale Il comando sleep fa attendere un comando prima dell'esecuzione. Prova il comando: $ sleep 3s && echo Ciao Mondo! $ Comandi da terminale
Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.
INDICE Indentazione note sull'indentazione in script e moduli scritti con un editor di testo. istruzione if Truth testing in cicli if e while istruzione for istruzione while Uscita dai cicli for e while
FUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice
Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni
Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013
Laboratorio Progettazione Web Le funzioni in PHP Angelica Lo Duca IIT-CNR angelica.loduca@iit.cnr.it 2012/2013 Funzioni Una funzione è una sequenza di istruzioni che implementano una specifica funzionalità
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
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
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2010 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti Funzioni e domini definiti induttivamente
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Esercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe/array Uguaglianza tra oggetti Utilizzo di classi come componenti
Indice generale Prefazione...xiii Capitolo 1 Introduzione...1 Capitolo 2 Sviluppo del software, tipi di dati ed espressioni...31
Indice generale Prefazione...xiii Capitolo 1 Introduzione...1 1.1 Due concetti fondamentali dell informatica: algoritmi ed elaborazione delle informazioni... 2 1.1.1 Algoritmi... 2 1.1.2 Elaborazione delle
Pensiero Algoritmico. Lezione 3 23 Novembre Ripasso. Anatomia di un programma. Anatomia di un programma. Ozalp Babaoglu Università di Bologna
Pensiero Algoritmico Lezione 3 23 Novembre 2016 Ozalp Babaoglu Università di Bologna Ripasso Definizione del problema Astrarre i dettagli, costruire un modello Costruire l algoritmo che risolve il problema
CENNI MINIMI DI PROGRAMMAZIONE FUNZIONALE IN PYTHON - V. 0.3
CENNI MINIMI DI PROGRAMMAZIONE FUNZIONALE IN PYTHON - V. 0.3 MATTEO PRADELLA 1. Introduzione e concetti base La programmazione funzionale è uno stile di programmzione che enfatizza la valutazione di espressioni,
RICORSIONE RICORSIONE
Perchè RICORSIONE (Come, Quando e Perchè) i programmi ricorsivi sono più chiari, più semplici, più brevi e più facili da capire delle corrispondenti versioni iterative. il programma spesso riflette fedelmente
Lezione 9 Alberi binari: visite ed esercizi
Lezione 9 Alberi binari: visite ed esercizi Informatica 4 Maggio 2016 Operazioni sugli alberi: visita La visita di un albero esplora tutti i nodi ed esegue una qualche operazione su di essi. Per esempio,
liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
Avviate l interprete Python selezionandolo dal menu dei programmi. Una volta avviato, l interprete presenta un cursore in cui inserire comandi
Introduzione al Python Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti permette di programmare con
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e
Ricorsione in C. slides credit Prof. Paolo Romano
Ricorsione in C slides credit Prof. Paolo Romano 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati ottenuti risolvendo i
Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Italiano
Python Start Docente: M. Chiara Debernardi Lingua del corso Italiano Descrizione del corso e obiettivi Il corso mira a far conoscere i fondamenti di Python i cui ambiti di utilizzo sono molteplici: intelligenza
Inserimento in una lista ordinata
Inserimento in una lista ordinata Vogliamo inserire un nuovo elemento in una lista in cui gli elementi sono memorizzati in ordine crescente: Passo 1: creare un nuovo nodo della lista Passo 2: trovare il
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
Programmazione in Python. Moreno Marzolla
Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative
Operativamente, risolvere un problema con un approccio ricorsivo comporta
! Una funzione matematica è definita ricorsivamente quando nella sua definizione compare un riferimento a se stessa!! La ricorsione consiste nella possibilità di definire una funzione in termini di se
Elementi di Informatica
Elementi di Informatica Capitolo 5 Sviluppo di Funzioni Prof. Mauro Gaspari: mauro,gaspari@unibo.it Esercizio 0: Calcolo del BMI Possiamo scomporre il problema in: 1. Calcolo del BMI, secondo la formula
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
Programmare Ottenere Python Primi passi Tipi dati Funzioni Approfondimenti. Un introduzione a Python 7 maggio 2012
Un introduzione a Python 7 maggio 2012 Programmi e linguaggi Programma: Serie di istruzioni che indicano al computer quali operazioni svolgere. Programmi e linguaggi Programma: Serie di istruzioni che
Corso di Fondamenti di Informatica. La ricorsione
Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini
Gocce di Java. Gocce di Java. Selezione e ripetizione. Pierluigi Crescenzi. Università degli Studi di Firenze
Gocce di Java Pierluigi Crescenzi Università degli Studi di Firenze Variabili ed espressioni Booleane Variabile booleana: può assumere valore true o false Espressione Booleana: valore di ritorno true o
If Statement. Il costrutto condizionale if ha la seguente sintassi:
Costrutti Control Flow Con control flow (o strutture di controllo) si intende l insieme dei costrutti che servono a gestire il flusso di esecuzione di un programma, cioè a specificare quando e come eseguire
Ricordiamo come si definisce una funzione
Ricordiamo come si definisce una funzione Definiamo una funzione che restituisce il massimo di una lista passata come argomento: La parola chiave def introduce una definizione di funzione Deve essere seguita
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
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
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
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]