Laboratorio di Python

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Python"

Transcript

1 Laboratorio di Python Programmazione orientata agli oggetti Lab14 11 Maggio 2018

2 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa

3 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa

4 Esercizio 1 Scrivere una funzione (da più di una riga) mul(s) che moltiplica gli elementi di una sequenza (usando il for sugli elementi, non gli indici espliciti); poi usare tale funzione per stampare con una sola istruzione il prodotto dei numeri dispari minori di 42

5 Esercizio 1 Scrivere una funzione (da più di una riga) mul(s) che moltiplica gli elementi di una sequenza (usando il for sugli elementi, non gli indici espliciti); poi usare tale funzione per stampare con una sola istruzione il prodotto dei numeri dispari minori di 42 1 def mul (s): 2 p = 1 3 f o r e i n s: 4 p *= e 5 r e t u r n p 6 7 p r i n t ( mul (i f o r i i n range (1,42) i f i%2!= 0))

6 Esercizio 2 Scrivere un programma di due righe che importa math.factorial e poi, con una print su una sola riga, stampa la lista delle potenze di 2 da 2 0 a 2 10, utilizzando la formula n i=0 ( ) n = 2 n i che fa uso dei binomi di Newton: ricordare che ( ) n k equivale a n! k!(n k)!

7 Esercizio 2 Scrivere un programma di due righe che importa math.factorial e poi, con una print su una sola riga, stampa la lista delle potenze di 2 da 2 0 a 2 10, utilizzando la formula n i=0 ( ) n = 2 n i che fa uso dei binomi di Newton: ricordare che ( ) n k equivale a n! k!(n k)! 1 from math import factorial 2 p r i n t ([sum( factorial (n)/( factorial (i)* factorial ( n-i)) f o r i i n range (0,n +1) ) f o r n i n range (11) ])

8 Esercizio 3 Scrivere un programma che stampa con una sola sitruzione un dizionario di elementi car:pos in cui car è ciascuna lettera maiuscola e minuscola, e pos la sua posizione nel codice ASCII, usando la funzione chr() ma non la funzione ord(), senza nessun import, sapendo che ord( A ) vale 65, che ord( a ) vale 97 e che le lettere inglesi sono 26.

9 Esercizio 3 Scrivere un programma che stampa con una sola sitruzione un dizionario di elementi car:pos in cui car è ciascuna lettera maiuscola e minuscola, e pos la sua posizione nel codice ASCII, usando la funzione chr() ma non la funzione ord(), senza nessun import, sapendo che ord( A ) vale 65, che ord( a ) vale 97 e che le lettere inglesi sono #usando SOLO d i c t i o n a r y c o m p r e h e n s i o n 2 p r i n t ({ chr ( pos ): pos f o r pos i n range (65,97+26) i f chr ( pos ). isalpha () }) 3 4 #usando l a f u n z i o n e c o n c a t e n a 5 def concatena (tr): 6 r e t u r n t u p l e (n f o r r i n tr f o r n i n r) 7 8 p r i n t ({ chr ( pos ): pos f o r pos i n concatena (( range (65,65+26), range (97,97+26) ))}) 9 10 #o p i u ' s e m p l i c e m e n t e 11 p r i n t ({ chr ( pos ): pos f o r i i n ( range (65,91), range (97,123) ) f o r pos i n i})

10 Esercizio 4 Scrivere una funzione di una sola riga che prende come parametro un dizionario i cui valori sono oggetti immutabili e inverte tale dizionario, cioè ogni valore distinto diventa una chiave per ogni chiave del dizionario invertito, il valore sarà una lista delle chiavi originali associate a quel vaore Esempio: >>> d = {'a':2, 'b':2, 'c':3, 'd':4, 'e':3, 'f':0, 'g':3, 'h':2} >>> inverti(d) {2: ['a', 'b', 'h'], 3: ['c', 'e', 'g'], 4: ['d'], 0: ['f']}

11 Esercizio 4 Scrivere una funzione di una sola riga che prende come parametro un dizionario i cui valori sono oggetti immutabili e inverte tale dizionario, cioè ogni valore distinto diventa una chiave per ogni chiave del dizionario invertito, il valore sarà una lista delle chiavi originali associate a quel vaore Esempio: >>> d = {'a':2, 'b':2, 'c':3, 'd':4, 'e':3, 'f':0, 'g':3, 'h':2} >>> inverti(d) {2: ['a', 'b', 'h'], 3: ['c', 'e', 'g'], 4: ['d'], 0: ['f']} 1 def inverti (d): 2 r e t u r n {kr :[k f o r k i n d. keys () i f d[k ]== kr] f o r kr i n d. values ()}

12 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa

13 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa

14 Programmazione orientata agli oggetti Python supporta la programmazione orientata agli oggetti (object-oriented programming - OOP): Ci si concentra sulla creazione di oggetti che contengono sia dati (attributi) che funzionalità (metodi). Un oggetto è un istanza di una classe; le classi descrivono come saranno fatti gli oggetti (una classe è la specifica, la definizione di un oggetto). Si può usare una classe come un modello (uno stampo ) per costruire più oggetti con le caratteristiche definite dalla classe. 1 c l a s s nome_della_classe : 2 < attributi > 3 <metodi >

15 Costruttore Il metodo init (chiamato costruttore) viene invocato quando, usando il nome della classe come una funzione, si crea un istanza (un oggetto) della classe. Tutti i metodi devono avere self come primo parametro quando sono definiti, ma esso non va espliciato quando si chiamano i metodi. All interno di una definizione di metodo, self si riferisce all istanza su cui viene chiamato il metodo. Nel metodo init, self viene usato per impostare i valori iniziali degli attributi fondamentali di un istanza della classe. 1 c l a s s Cane : 2 def init (self, nome, colore ): 3 self. nome = nome 4 self. colore = colore 5 6 istanza_di_cane = Cane ('Fido ', ' marrone ')

16 Attributi Le istanze di una classe hanno attributi: dati ad esse associati. Gli attributi sono accessibili con un punto e il nome dell attributo dopo il nome di un istanza. 1 c l a s s Cane : 2 def init (self, nome, colore ): 3 self. nome = nome 4 self. colore = colore 5 6 istanza_di_cane = Cane ('Fido ', ' marrone ') 7 8 p r i n t ("Il cane si chiama ", istanza_di_cane. nome )

17 Metodi Un metodo differisce da una funzione in due aspetti: Appartiene a una classe (ed è definito all interno di una classe) Il primo parametro nella definizione di un metodo deve essere un riferimento all istanza che ha chiamato il metodo: per convezione lo chiamiamo self. Equivalentemente agli attributi, si può accedere ai metodi con la notazione punto. 1 c l a s s Cane : 2 def init (self, nome, colore ): 3 self. nome = nome 4 self. colore = colore 5 def abbaia ( self ): 6 p r i n t (" Bau!") 7 8 ic = Cane ('Fido ', ' marrone ') 9 ic. abbaia () >>> Bau! >>>

18 Metodi e attributi privati Gli attributi e i metodi privati possono essere richiamati solo all interno di una classe Attributi e metodi sono resi privati anteponendo ai loro nomi un doppio underscore 1 c l a s s Paniere : 2 uova = 8 # a t t r i b u t o p r i v a t o 3 4 def aumenta ( self ): # metodo p r i v a t o 5 self. uova += 1 6 def aggiungi_stampa ( self ): # metodo p u b b l i c o 7 self. aumenta () 8 p r i n t ( self. uova ) 9 p = Paniere () >>> p.aggiungi_stampa() 9 >>> print(p. uova) AttributeError: Paniere object has no attribute uova >>> p. aumenta() AttributeError: Paniere object has no attribute aumenta

19 Metodi e attributi protetti Gli attributi e i metodi protetti possono essere richiamati solo all interno di una classe o delle sottoclassi Se vogliamo che le sottoclassi possano accedere, attributi e metodi devono essere protetti anteponendo un singolo underscore. 1 c l a s s O(): 2 pri = ' privato ' 3 _pro = ' protetto ' 4 def met_pri ( self ): 5 p r i n t (" met. privato ") 6 def _met_pro ( self ): 7 p r i n t (" met. protetto ") 8 c l a s s S(O): 9 def f( self ): 0 p r i n t ( self. pri ) 1 def g( self ): 2 p r i n t ( self. _pro ) 3 def h( self ): 4 self. met_pri () 5 def i( self ): 6 self. _met_pro () >>> o = O() >>> s = S() >>> s.f() AttributeError: S object has no attribute _S pri >>> s.g() protetto >>> s.h() AttributeError: S object has no attribute _S met_pri >>> s.i() met. protetto >>>

20 Ereditarietà L ereditarietà permette di condividere funzionalità tra classi. Supponiamo di avere le classi Gatto, Cane, Topo e così via. Sebbene possano differire in qualche modo (es. solo Cane ha il metodo abbaia), è probabile che siano simili in altri modi (tutti hanno attributi colore e nome). Questa similarità può essere espressa rendendoli tutti ereditari da una superclasse Animale, che contiene le funzionalità condivise. Una classe che eredita da un altra classe è chiamata sottoclasse. Una classe da cui si eredita da è chiamata superclasse. Per ereditare una classe da un altra classe, inseriamo il nome della superclasse tra parentesi dopo il nome della classe. Se la sottoclasse ha attributi o metodi con lo stesso nome della superclasse, la sottoclasse li sovrascrive. Una classe può ereditare da un altra, e quella classe può ereditare da una terza classe.

21 Ereditarietà: esempio 1 c l a s s Animale : # s u p e r c l a s s e 2 def init (self, nome, colore ): 3 self. nome = nome 4 self. colore = colore 5 6 c l a s s Cat ( Animale ): # s o t t o c l a s s e 7 def miagola ( self ): 8 p r i n t ('Miao!') 9 10 c l a s s Cane ( Animale ): # s o t t o c l a s s e e s u p e r c l a s s e 11 def abbaia ( self ): 12 p r i n t ('Bau!') c l a s s CaneLupo ( Cane ): #s o t t o c l a s s e 15 def abbaia ( self ): #s o v r a s c r i t t u r a d e l metodo 16 p r i n t ('Grr!')

22 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa

23 Sistema bancario Definiremo un semplice sistema per gestire conti bancari, lavorando con istanze di tre classi Conto Correntista Banca NB: svolgere tutti gli esercizi (anche quelli per casa) in un unico file.

24 Classe Conto Realizzare la classe Conto. Il costruttore è init (self, banca, numero, correntista, saldo iniziale=0), che inizializza i seguenti attribuit: banca : il nome della banca in cui il conto è registrato numero : identificatore univoco del conto correntista : un istanza della classe Correntista, che rappresenta il correntista a cui appartiene quel conto saldo : attributo protetto che rappresenta il saldo attuale del conto La classe Conto ha tre metodi: get saldo(self) : restituisce il saldo del conto deposita(self, somma) : incrementa il saldo di una certa somma preleva(self, somma) : decrementa il saldo di un certa somma (solo se essa è minore o uguale al saldo, altrimenti preleva fino ad azzerare il saldo e stampa un messaggio di errore "Fondi insufficienti"). In ogni caso restituisce solo la somma effettivamente prelevata. Testare opportunamente la classe creando alcune istanze e invocando i metodi su di esse

25 Possibile implementazione I 1 c l a s s Conto : 2 def init (self, banca, numero, correntista, saldo_ iniziale =0) : 3 self. banca = banca 4 self. numero = numero 5 self. correntista = correntista 6 self. _ saldo = saldo_ iniziale 7 8 def get_saldo ( self ): 9 r e t u r n self. _saldo def deposita (self, somma ): 12 self. _ saldo += somma

26 Possibile implementazione II 18 def preleva (self, somma ): 19 i f somma <= self. _saldo : 20 self. _ saldo -= somma 21 r e t u r n somma 22 e l s e : 23 tutto = self. _ saldo 24 self. _saldo = 0 25 p r i n t (" Fondi insufficienti ") 26 r e t u r n tutto

27 Classe Correntista La classe Correntista ha quattro attributi: ident : identificatore univoco (es. codice fiscale) nome cognome conti : lista di conti (istanze della classe Conto) che appartengono al correntista Il costruttore: init (self, ident, nome, cognome) inizializza gli attributi passati, e la lista di conti come lista vuota. I metodi: aggiungi conto(self, conto) : aggiunge un istanza della classe Conto alla lista dei conti del correntista (se il conto non è già presente) saldo totale(self) : restituisce la somma di tutti i saldi dei conti di quel correntista Testare opportunamente la classe creando alcune istanze e invocando i metodi su di esse

28 Possibile implementazione I 1 c l a s s Correntista : 2 def init (self, ident, nome, cognome ): 3 self. ident = ident 4 self. nome = nome 5 self. cognome = cognome 6 self. conti = [] 7 8 def aggiungi_conto (self, conto ): 9 i f conto not i n self. conti : 10 self. conti. append ( conto ) def saldo_totale ( self ): 13 r e t u r n sum(c. get_saldo () f o r c i n self. conti )

29 Classe Banca: attributi e costruttore La classe Banca ha quattro attributi nome : nome della banca ultimo creato : l ultimo numero di conto creato (così da permettere di generare numeri di conto univoci e incrementali) correntisti : lista di tutti i correntisti di quella banca (istanze di Correntista) conti : lista di conti (istanze di Conto) della banca Il costruttore: init (self, nome) inizializza il nome della banca, inizializza a 0 ultimo creato e con liste vuote gli attributi correntisti e conti

30 Possibile implementazione I 1 c l a s s Banca : 2 def init (self, nome ): 3 self. nome = nome 4 self. ultimo_creato = 0 5 self. correntisti = [] 6 self. conti = []

31 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa

32 Esercizi per casa (per il 18/05/2018 ore 8:59) (Mail: Lab14-...) I NB: consegnare un solo file con tutti gli esercizi di stamattina e le integraizoni seguenti: Implementare i metodi della classe Banca stampa correntisti(self) : stampa identificatore, nome e cognome di ogni correntista della banca stampa conti(self) : stampa numero di conto, id del correntista, saldo di ogni conto della banca crea conto(self, correntista, saldo iniziale=0) : se l argomento passato per correntista è un istanza di Correntista (isinstance(correntista, Correntista)) e l argomento passato per saldo iniziale è maggiore o uguale a 0 (si presume essere 0 se non passato), crea una nuova istanza della classe Conto con un nuovo numero di conto (aggiorna e usa ultimo creato), il correntista e il saldo passati. Il nuovo conto va aggiunto agli elenchi della banca e del correntista. Se non già presente, il correntista va aggiunto all elenco della banca. get conto(self, numero conto) : dato il numero di un conto, restituisce la corrispodente istanza della classe Conto, oppure None

33 Esercizi per casa (per il 18/05/2018 ore 8:59) (Mail: Lab14-...) II deposita(self, numero conto, somma) : deposita la somma nel conto corrispondente, se presente preleva(self, numero conto, somma) : preleva, se possibile, la somma dal conto corrispondente, se presente, e stampa un messaggio con la somma prelevata Creare la sottoclasse ContoConInteressi della classe Conto. La sottoclasse ha nuovi attributi: tasso : il tasso di interesse n : numero di volte in cui vengono calcolati gli interessi in un anno ultimo anno : rappresenta l ultimo anno in cui sono stati accreditati gli interessi

34 Esercizi per casa (per il 18/05/2018 ore 8:59) (Mail: Lab14-...) III Il costruttore è init (self, banca, numero, correntista, saldo iniziale=0, tasso=0.03, n=4), che fa uso del costruttore della superclasse (super(). init (banca, numero, correntista, saldo iniziale)) e poi inizializza gli attributi della sottoclasse con i valori passati. Inizializza anche l ultimo anno all anno corrente (suggerimento: datetime.datetime.now().year). La sottoclasse ha un metodo aggiungi interessi(self, anno) che calcola il valore del saldo aumentato degli interessi composti per anni = anno - ultimo anno, calcolati usando la formula dell interesse composto: ( saldo finale = saldo 1 + tasso n e aggiorna il valore del saldo. ) n anni

35 Esercizi per casa (per il 18/05/2018 ore 8:59) (Mail: Lab14-...) IV Come ulteriori miglioramenti, FACOLTATIVI, potete provare a aggiungere alla classe Banca il metodo giroconto(self, conto addebito, conto accredito, somma) : dati i loro numeri, trasferisce una somma di denaro da un conto ad un altro della stessa banca, ma solo se esistono entrambi e se il conto di addebito ha fondi sufficienti, altrimenti stampa opportuni messaggi di errore. aggiungere alla classe Banca il metodo bonifico(self, numero conto addebito, banca beneficiario, numero conto accredito, somma), che trasferisce una somma di denaro dal conto di addebito a un conto di accredito della banca (istanza di Banca passata come parametro), ma solo se esistono (banca e conti) e se il conto di addebito ha fondi sufficienti, altrimenti stampa opportuni messaggi di errore. Creare una nuova sottoclasse ContoConScoperto della classe Conto che ha un nuovo attributo scoperto (di default a 1000) che è un numero positivo che indica di quanti euro al massimo il conto può andare in rosso. La classe sovrascrive il metodo preleva(self, somma) per far sì che il correntista possa prelevare fino ad arrivare a un rosso (numero negativo) pari allo scoperto massimo.

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

OOP - Object Oriented Programming

OOP - Object Oriented Programming OOP - Object Oriented Programming Python linguaggio versatile, supporta, sia programmazione procedurale/funzionale sia, programmazione a oggetti (in maniera non esclusiva) Programmazione orientata agli

Dettagli

OOP: Object Oriented Programming

OOP: Object Oriented Programming OOP: Object Oriented Programming Riferimenti per questa parte: 1. Capitoli 7 e 8 del testo di riferimento 2. https://docs.python.org/3.6/tutorial/classes.html OOP: Idea Principale L idea principale della

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

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Programmazione orientata agli oggetti: le classi

Programmazione orientata agli oggetti: le classi Programmazione orientata agli oggetti: le classi Oggetti e tipi di dati La programmazione che abbiamo visto finora agisce su variabili che appartengono a tipi di dati predefiniti: interi, floating point,

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

Programmazione II Compitino (Vers. A)

Programmazione II Compitino (Vers. A) Programmazione II Compitino (Vers. A) 15 gennaio 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Informatica Ereditarietà Java. Ereditarietà

Informatica Ereditarietà Java. Ereditarietà Ereditarietà L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi

Dettagli

Liste. Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi.

Liste. Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi. Python Liste Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi. Una lista di 8 elementi: el1 el2 el3 el4 el5 el6 el7

Dettagli

Laboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java.

Laboratorio di Sistemi Polimorfismo Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Prerequisiti: per la comprensione dell'articolo è necessario conoscere il concetto di Ereditarietà in Java. Di solito se abbiamo la struttura di una classe con gli attributi e i metodi possiamo istanziare

Dettagli

Il paradigma Object Oriented. Iolanda Salinari

Il paradigma Object Oriented. Iolanda Salinari Il paradigma Object Oriented Iolanda Salinari gli oggetti un oggetto è un elemento o concetto del mondo reale che può essere identificato in modo univoco: un cliente, un articolo, un impiegato ogni oggetto

Dettagli

Funzioni - Se non si sono mai viste si possono considerare il modo piu' semplice per poter creare del codice riutilizzabile.

Funzioni - Se non si sono mai viste si possono considerare il modo piu' semplice per poter creare del codice riutilizzabile. Giugno 2006 Funzioni - Se non si sono mai viste si possono considerare il modo piu' semplice per poter creare del codice riutilizzabile. Classi - Senza voler entrare in termini tecnici si possono considerare

Dettagli

Laboratorio di Python

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

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

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

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015 APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.VI.2015 VINCENZO MARRA Indice Esercizio 1 1 Definizione dei tipi P e T, e calcolo dell area.

Dettagli

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0 Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 10 a cura del prof Francesco Tappi Il paradigma orientato agli oggetti implica lo sviluppo di unità di programmazione attive, chiamate

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

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

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

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

Esercizio: punti e segmenti

Esercizio: punti e segmenti Esercizio: punti e segmenti! Punti e segmenti nel piano, con data abstraction Esercizio: punti e segmenti! Punti e segmenti nel piano, con data abstraction! Lunghezza di un segmento l = (x 2 " x 1 ) 2

Dettagli

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate

Dettagli

PRINCIPI DELLA OOP. Ereditarietà e polimorfismo

PRINCIPI DELLA OOP. Ereditarietà e polimorfismo PRINCIPI DELLA OOP Ereditarietà e polimorfismo Ereditarietà e specializzazione Una delle caratteristiche distintive del paradigma di programmazione orientato agli oggetti è l'ereditarietà L'ereditarietà

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

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 Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 12 Polimorfismo e ereditarietà Prof. Mauro Gaspari: gaspari@cs.unibo.it Una classe tempo class Time: def init (self,hours=0,minutes=0,seconds=0): self.hours = hours

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

Bank account. private double balance; 11/2/2011

Bank account. private double balance; 11/2/2011 Il Linguaggio Java Ereditarietà Bank account class BankAccount { public BankAccount() { balance = 0; } public void deposit(double amount) { balance += amount; } public void withdraw(double amount) { balance

Dettagli

Python moduli classi e qualche funzione grafica di base

Python moduli classi e qualche funzione grafica di base Python moduli classi e qualche funzione grafica di base Loriano Storchi loriano@storchi.org http:://www.storchi.org/ I moduli I moduli sono codice sorgente, quindi una collezione di dati, funzioni e classi

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Dettagli

Elementi di Base. Introduzione a Python.

Elementi di Base. Introduzione a Python. Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,

Dettagli

Esercizi su strutture dati

Esercizi su strutture dati Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate

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

Informatica 1 - Esercitazione Python

Informatica 1 - Esercitazione Python Informatica - Esercitazione Python Alessandro Ortis - 23/05/209 Ripasso su uso delle liste. In [42]: ls = [] # lista vuota ls.append(2) # aggiungi alla fine della lista ls.append(22) ls.append(99) ls[]

Dettagli

Concetti principali Ereditarietà e (overriding) di metodi. Ereditarietà e costruttori Livelli di accesso protected e package La classe Object

Concetti principali Ereditarietà e (overriding) di metodi. Ereditarietà e costruttori Livelli di accesso protected e package La classe Object Ereditarietà Concetti principali Ereditarietà e (overriding) di metodi Dynamic dispatch e polimorfismo Ereditarietà e costruttori Livelli di accesso protected e package La classe Object metodi tostring,

Dettagli

INFORMATICA OOP Relazioni tra classi Roberta Gerboni

INFORMATICA OOP Relazioni tra classi Roberta Gerboni 2015 - Roberta Gerboni Relazione di associazione E possibile legare varie classi presenti in un progetto con una relazione di associazione. Una associazione individua una connessione logica tra classi

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e Polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

OOP in Python L O R E N Z O D I S I L V E S T R O

OOP in Python L O R E N Z O D I S I L V E S T R O L O R E N Z O D I S I L V E S T R O w w w. d m i. u n i c t. i t / ~ d i s i l v e s t r o d i s i l v e s t r o @ d m i. u n i c t. i t Imperativo Paradigmi di programmazione 2 i programmi sono sequenze

Dettagli

Calcolo su Polinomi ===================

Calcolo su Polinomi =================== Calcolo su Polinomi =================== Descrizione Implementare la classe Monomio le cui istanze rappresentano generici monomi a valori reali del tipo: m(x) = c* x d ovvero monomi contenenti una sola

Dettagli

Gerarchia di classi Java 1

Gerarchia di classi Java 1 Specializzare un modello Gerarchia di classi Java Corso di laurea in Una classe modella un pezzo di realtà Una macchina, una moneta, un impiegato Spesso è necessario specializzare la versione originale

Dettagli

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

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

ESERCIZIO 1 ESERCIZIO 1

ESERCIZIO 1 ESERCIZIO 1 Si crei un progetto Java che mappi un semplice sistema medico. Il progetto deve contenere tre classi: una per i pazienti, una per le patologie e una per il main. Inoltre si definiscano le seguenti eccezioni:

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

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

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

Dettagli

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa. 3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il

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

Programmazione Orientata agli Oggetti e Scripting in Python

Programmazione Orientata agli Oggetti e Scripting in Python DIEE - Università degli Studi di Cagliari Programmazione Orientata agli Oggetti e Scripting in Python Paradigma ad Oggetti - 2 Alessandro Orro DIEE Univ. di Cagliari 1 ereditarietà: metodi Il meccanismo

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

Usare Python in Linux

Usare Python in Linux 26 Febbraio 2015 Outline 1 Struttura e programma delle lezioni 2 3 Outline Struttura e programma delle lezioni 1 Struttura e programma delle lezioni 2 3 Lezione tipo Struttura e programma delle lezioni

Dettagli

Ingegneria degli Algoritmi (II parte pratica)

Ingegneria degli Algoritmi (II parte pratica) Ingegneria degli Algoritmi (II parte pratica) Correzione prova pratica Ing. Domenico Spera domenico.spera@students.uniroma2.eu Premessa Sono stati richiesti i seguenti task: Implementare la versione in-order

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

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 Paradigma O.O. Oggetti e Classi Ereditarietà Paradigma Object-Oriented Il paradigma O.O. si ispira all ambiente che ci circonda,

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

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming Una metodologia di programmazione che consente di modellare la realtà in modo più naturale e vicino all uomo Concetti fondamentali Oggetto Incapsulazione Messaggio Classe Ereditarietà

Dettagli

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Ereditarietà: concetti di base

Ereditarietà: concetti di base : concetti di base L ereditarietà è uno dei concetti base della programmazione ad oggetti Concetto di base: l ereditarietà permette di usare una classe precedentemente definita per la definizione di una

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Dettagli

Progettazione Object-Oriented

Progettazione Object-Oriented Progettazione Object-Oriented Generalità, Relazione fra OOA e OOD Concetti di base: Classi e Oggetti, Relazioni fra oggetti, Ereditarietà e Polimorfismo La specifica del Progetto: notazione UML Una metodologia

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

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

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto Java Java: compilatore e interprete Il linguaggio Java è un linguaggio di programmazione ad alto livello - algoritmo: astrazione della realtà - linguaggio di programmazione: astrazione del processore -

Dettagli

La progettazione concettuale

La progettazione concettuale PROGETTAZIONE La progettazione concettuale Sintesi tra la visione degli utenti e la visione dei progettisti. I progettisti devono essere certi di aver compreso esattamente e completamente le esigenze degli

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Ereditarietà Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 15 Ereditarietà: definizione Meccanismo

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

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

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

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ù

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

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

Dettagli

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

Dettagli

Una classe Borsellino. Tipi numerici di base - Costanti. Esempio d uso. Classe Borsellino cont d. Primi passi per l implementazione di Purse

Una classe Borsellino. Tipi numerici di base - Costanti. Esempio d uso. Classe Borsellino cont d. Primi passi per l implementazione di Purse Una classe Borsellino Tipi numerici di base - Interi e decimali Definizione di costanti /** Realizza un borsellino per le monete. Registra il numero di monete e calcola il valore totale public class Purse

Dettagli

Avviate l interprete Python selezionandolo dal menu dei programmi. Una volta avviato, l interprete presenta un cursore in cui inserire comandi

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

Dettagli

Programmazione orientata agli oggetti Ereditarietà

Programmazione orientata agli oggetti Ereditarietà Programmazione orientata agli oggetti Ereditarietà Fondamenti di Informatica L-B 1 Programmazione basata su oggetti Il modello visto finora costituisce un sottoinsieme del modello orientato agli oggetti

Dettagli

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

Dettagli

Tecnologie dell'informazione e della Comunicazione

Tecnologie dell'informazione e della Comunicazione Tecnologie dell'informazione e della Comunicazione Capitolo 11 Classi e Oggetti Prof. Mauro Gaspari: gaspari@cs.unibo.it Definire nuovi tipi? Abbiamo visto diversi tipi di dato strutturati: stringhe liste

Dettagli

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

Dettagli

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Dettagli

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Variabili e input/ Alessandra Giordani Lunedì 18 marzo Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile

Dettagli

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione Corso di PHP 8.1 PHP e MySQL 1 Prerequisiti Conoscenza MySQL Tecnica della programmazione procedurale ad oggetti Principi di programmazione web Programmazione elementare in PHP 2 1 Introduzione In questa

Dettagli

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Introduzione a Python e Gurobi

Introduzione a Python e Gurobi Introduzione a Python e Gurobi Introduzione Python è un linguaggio di programmazione ad alto livello, rilasciato pubblicamente per la prima volta nel 1991 dal suo creatore Guido van Rossum, programmatore

Dettagli

Installazioni preliminari

Installazioni preliminari Installazioni preliminari È uscita la versione 6u23 dell SDK. Disponibile a: http://www.java.com/en/download/index.jsp Per installare Eclipse invece andare su: http://www.eclipse.org Stile Sono elementi

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