Corso di Fondamenti di Informatica. Dispensa 9: Composizione di Classi. Prof. Domenico Rosaci

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Fondamenti di Informatica. Dispensa 9: Composizione di Classi. Prof. Domenico Rosaci"

Transcript

1 Corso di Fondaenti di Inforatica Dispensa 9: Coposizione di Classi Prof. Doenico Rosaci

2 Coposizione di Classi In Java, la dichiarazione di un oggetto appartenente ad una deterinata classe, coporta sepliceente la creazione di un riferiento all oggetto e non la costruzione in eoria dell oggetto stesso. Esepio: Sia Materia una classe che rappresenti una ateria universitaria, e che contenga due capi, il prio rappresentante il noe della ateria e il secondo rappresentante il settore scientifico disciplinare a cui la ateria afferisce. class Materia { private String denoinazione; private String ssd; public Materia(String d, String s){ denoinazione=d; ssd=s; public Materia(Materia ){ denoinazione=.getdenoinazione(); ssd=.getssd()); public String getdenoinazione(){ return denoinazione; public void setdenoinazione(string s){ denoinazione=s; public String getssd(){ return ssd; public Materia getstatus(){ Materia =new Materia(denoinazione,ssd); return ; Syste.out.println(denoinazione+"("+ssd+")"); Si consideri la seguente istruzione, che dichiara una variabile della classe Materia. Materia ; la situazione che si crea con questa istruzione corrisponde alla creazione di una cella che contiene un indirizzo di eoria (un riferiento) ad un oggetto di classe Materia. Tuttavia, poiché l oggetto non è stato ancora creato, il riferiento contenuto nella variabile non corrisponde a nessuna cella di eoria, e viene indicato con l identificatore null.

3 null Se si vuole far puntare ad un oggetto della classe Materia, bisogna creare l oggetto usando l operatore new abbinato ad un costruttore della classe. =new Materia( Fondaenti di Inforatica, ); In seguito a questa istruzione, la variabile punta all oggetto appena creato Fondaenti di Inforatica Nell esepio di cui sopra, abbiao supposto che l oggetto a cui punta sia stato creato all indirizzo di eoria L insiee dei due valori Fondaenti di Inforatica e rappresenta lo stato dell oggetto. Adesso iaginiao di voler creare una copia di, ed a tale scopo dichiariao una seconda variabile di tipo Materia, ad esepio: Materia 1; Per ottenere che 1 abbia lo stesse stato di, potreo scrivere: 1=; Tuttavia, anche se così 1 assue lo stesso stato di, esso non rappresenta una copia dell oggetto a cui fa riferiento. Sepliceente, 1 è un secondo riferiento all oggetto puntato da Fondaenti di Inforatica L operazione che abbiao effettuato è potenzialente pericolosa. Infatti, se operiao odifiche sull oggetto attraverso 1, dobbiao essere coscienti che l oggetto odificato è lo stesso a cui anche fa riferiento. Ad esepio, se odifichiao la denoinazione dell oggetto puntato da 1 scrivendo: 1.setDenoinazione( Chiica ); possiao riscontrare il cabiaento di denoinazione anche attraverso, scrivendo: Syste.out.println(.getDenoinazione()); avendo coe effetto la visualizzazione sullo schero della stringa Chiica.

4 Per questo otivo, al fine di evitare tale effetto collaterale degli assegnaenti di riferienti, se vogliao creare una copia di un oggetto dobbiao usare new ed il costruttore: 1=new Materia(.getDenoinazione(),.getSsd()); Ottenendo la seguente situazione: 1024 Fondaenti di Inforatica 1154 Fondaenti di Inforatica 1 che produce un effettiva copia dell oggetto puntato da, assegnando tale copia al riferiento 1. Possiao ottenere una copia dell oggetto puntato da anche attraverso il costruttore di copia della classe Materia. Questo costruttore accetta in ingresso un oggetto della classe, e crea un nuovo oggetto avente lo stesso stato dell oggetto passato. Quindi l istruzione: 1=new Materia(); produce lo stesso effetto dell istruzione 1=newMateria(.getDenoinazione(),.getSsd()); Infine, un terzo odo di creare una copia dell oggetto puntato da è quello di usare un etodo getstatus() della classe Materia, che appunto crea un oggetto di classe Materia avente lo stesso stato dell oggetto che chiaa il etodo getstatus(), e restituisce un riferiento a questo nuovo oggetto. 1=.getStatus(); Ovviaente questo terzo etodo di creare una copia dell oggetto, rispetto all uso del costruttore di copia, consente di assegnare la copia ad un nuovo riferiento in qualunque oento, e non solo in fase di creazione del riferiento. Le considerazioni di cui sopra sono particolarente iportanti quando si introduce la Coposizione di classi, ovvero quando si dichiara una classe in cui alcuni capi sono oggetti di altre classi. E questo il caso, ad esepio, della classe Corso illustrata di seguito, coposta da un capo ateria di classe Materia, da un capo intero anno, e da un capo doc di classe Docente. class Docente { private String noe; private String cognoe; public Docente(String n, String c){ noe=n; cognoe=c;

5 public String getnoe(){ return noe; public String getcognoe(){ return cognoe; public Docente getstatus(){ Docente d=new Docente(noe,cognoe); return d; Syste.out.println(noe+" "+cognoe); class Corso { private Materia ateria; private int anno; private Docente doc; public Corso(Materia, int a, Docente d){ ateria=.getstatus(); anno=a; doc =d.getstatus(); public Materia getmateria(){ return ateria.getstatus(); public int getanno(){ return anno; public Docente getdocente(){ return doc.getstatus(); public Corso getstatus(){ Corso e=new Corso(ateria,anno,doc); return e; ateria.stapa(); Syste.out.println("anno:"+anno); doc.stapa(); Coe si vede, il costruttore paraetrizzato della classe Corso, per assegnare al capo ateria lo stato dell oggetto a cui fa riferiento il paraetro, non effettua una seplice assegnazione di riferiento, del

6 tipo ateria=, a invece assegna a ateria una copia dell oggetto, ottenuta invocando.getstatus. Ciò consente di creare un oggetto di classe Corso il cui capo ateria è reso indipendente dall oggetto di classe Materia usato per crearlo. Per presentare un esepio concreto in questo contesto, iaginiao di creare un oggetto di classe Materia e un oggetto di classe Docente nel odo seguente: Materia =new Materia( Fondaenti di Inforatica, ); Docente d=new Docente( Mario, Rossi ); adesso serviaoci di e di d per creare un oggetto della classe Corso: Corso c=new Corso(,2008,d); se successivaente noi volessio cabiare lo stato dell oggetto, ad esepio cabiando la denoinazione della ateria in Reti di Calcolatori, tale odifica non si rifletterà sullo stato dell oggetto c, che continuerà a contenere un riferiento alla ateria Fondaenti di Inforatica. Questo coportaento corretto è stato ottenuto procedendo coe descritto sopra nel costruttore paraetrizzato della classe Corso. Se in questo costruttore avessio scritto, invece di ateria=.getstatus, sepliceente ateria=, la odifica sull oggetto avrebbe coportato l effetto collaterale di una odifica sullo stato dell oggetto c. Per identico otivo, anche i etodi getmateria() e getdocente() della classe Corso, non restituiscono dei riferienti ai corrispondenti capi dell oggetto, a piuttosto riferienti a copie di questi capi. Infatti, supponiao coe esepio che il etodo getmateria() di Corso restituisse il capo ateria dell oggetto (usando l istruzione return ateria invece di return ateria.getstatus()). Allora l istruzione: Materia v=c.getmateria(); peretterebbe di creare un riferiento v all oggetto che rappresenta la ateria del corso c. Attraverso questo riferiento si potrebbe odificare lo stato del corso c, ad esepio scrivendo: v.setdenoinazione( Reti di Calcolatori ); Fortunataente, getmateria() restituisce solo una copia dell oggetto che rappresenta la ateria del corso c, ipedendo tale inconveniente. Di seguito sono riportate le descrizioni di altre due classi, Esae e Studente, che rappresentano due ulteriori esepi di coposizione tra classi. class Esae { private Corso corso; private int voto; public Esae(Corso c, int v){ corso=c.getstatus(); voto=v; public Corso getcorso(){ return corso.getstatus(); public int getvoto(){ return voto; public Esae getstatus(){ Esae e=new Esae(corso,voto);

7 return e; corso.stapa(); Syste.out.println("voto:"+voto); public class Studente { private String noe; private String cognoe; private int atricola; private Esae[] listaesai; public Studente(String n, String c, int, Esae e[]){ noe=n; cognoe=c; atricola=; listaesai=new Esae[e.length]; for(int i=0;i<e.length;i++) listaesai[i]=e[i].getstatus(); Syste.out.println(noe+" "+cognoe+", atricola:"+atricola); for(int i=0;i<listaesai.length;i++) listaesai[i].stapa(); public static void ain(string[] args){ Docente profrossi=new Docente("Mario","Rossi"); Docente profbianchi=new Docente("Gianni","Bianchi"); Materia Inforatica=new Materia("Inforatica",""); Materia Analisi=new Materia("Analisi","MAT/05"); Corso Inforatica08=new Corso(Inforatica,2008,profRossi); Corso Analisi08=new Corso(Analisi,2008,profBianchi); Esae[] esaipasquale=new Esae[2]; esaipasquale[0]=new Esae(Inforatica08,28); esaipasquale[1]=new Esae(Analisi08,25); Studente pasquale=new Studente("Pasquale","Verdi",126,esaiPasquale); pasquale.stapa();

PRINCIPIO DI INDUZIONE. k =. 2. k 2 n(n + 1)(2n + 1) 6

PRINCIPIO DI INDUZIONE. k =. 2. k 2 n(n + 1)(2n + 1) 6 PRINCIPIO DI INDUZIONE LORENZO BRASCO Esercizio. Diostrare che per ogni n si ha nn + ) ). 2 Esercizio 2. Diostrare che per ogni n si ha 2) 2 nn + )2n + ). Soluzione. Procediao per induzione: la 2) è ovviaente

Dettagli

I moti. Daniel Gessuti

I moti. Daniel Gessuti I oti Daniel Gessuti 1 introduzione Uno dei problei che ha interessato gli scienziati fin dall antichità e che costituisce un notevole capo d indagine della Fisica è senza dubbio quello che riguarda il

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero

Dettagli

Unità Didattica N 16. Il comportamento dei gas perfetti

Unità Didattica N 16. Il comportamento dei gas perfetti Unità Didattica N 16 Il coportaento dei gas perfetti Unità Didattica N 16 Il coportaento dei gas perfetti 1) Alcune considerazioni sullo studio dei sistei gassosi 2) Dilatazione terica degli aerifori 3)

Dettagli

Amperometri analogici passivi

Amperometri analogici passivi ppunti di Misure Elettriche peroetri analogici passivi NTODUZONE L aperoetro è, in generale, lo struento atto a isurare una corrente elettrica. Parliao invece di galvanoetro quando tale corrente è di intensità

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file

Dettagli

Isometrie Ad ogni simmetria delle Natura corrisponde una quantità conservata (Emmy Noether)

Isometrie Ad ogni simmetria delle Natura corrisponde una quantità conservata (Emmy Noether) Isoetrie Ad ogni sietria delle Natura corrisponde una quantità conservata (E Noether) Le isoetrie sono particolari affinità cioè trasforazioni lineari del piano in sé, che lasciano invariata la distanza

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli.

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli. Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 16 Tipi riferimento e stringhe Carla Limongelli Maggio 2010 Definizione di metodi 1 Contenuti Tipi riferimento Stringhe e oggetti String

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Linguaggio C: puntatori

Linguaggio C: puntatori Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa

Dettagli

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico Francesco Tortorella Le strutture Gli array permettono la sola aggregazione di variabili dello stesso tipo. Quindi

Dettagli

Introduzione alla Programmazione in Java attraverso un esempio commentato

Introduzione alla Programmazione in Java attraverso un esempio commentato Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria

Dettagli

Esercizio 3. Oppure fare queste operazioni nel metodo main all interno della classe Persona.

Esercizio 3. Oppure fare queste operazioni nel metodo main all interno della classe Persona. Esercizio 3 Scrivere un programma con i seguenti requisiti. Utilizzare una classe Persona che dichiara le variabili nome, cognome, età. Si dichiari inoltre un metodo dettagli() che restituisce in una stringa

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

Definizione di metodi

Definizione di metodi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 9 Definizione di metodi Carla Limongelli Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di metodi 1 Contenuti

Dettagli

Definizione di classi con array di oggetti

Definizione di classi con array di oggetti Definizione di classi con array di oggetti 1. (Esame scritto del 18/9/2002, Esercizio 6.) La banca dati di un agenzia assicurativa per auto è caratterizzata da un insieme di polizze di assicurazioni per

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Potenze, logaritmi, equazioni esponenziali e logaritmiche.

Potenze, logaritmi, equazioni esponenziali e logaritmiche. Potenze, logariti, equazioni esponenziali e logaritiche Potenza con esponente intero di un nuero reale Sia a R ed n Z Ricordiao, anzitutto, le seguenti definizioni: ) se n >, si chiaa potenza ennesia (che,

Dettagli

Lezione n.15. Doppi bipoli

Lezione n.15. Doppi bipoli Lezione 5 Doppi bipoli Lezione n.5 Doppi bipoli. Definizione di N-polo. Definizione di doppio-bipolo 3. Doppi-bipoli in regie stazionario (doppi-bipoli di resistenze 4. Problei di analisi 5. Problei di

Dettagli

Uso di metodi statici. Walter Didimo

Uso di metodi statici. Walter Didimo Uso di metodi statici Walter Didimo Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un

Dettagli

Appunti di complemento per le lezioni del corso di Matematica Finanziaria L OPERAZIONE DI AMMORTAMENTO

Appunti di complemento per le lezioni del corso di Matematica Finanziaria L OPERAZIONE DI AMMORTAMENTO Appunti di copleento per le lezioni del corso di Mateatica Finanziaria L OPERAZIONE DI AMMORTAMENTO Preessa Il presente testo di appunti è stato scritto per fornire agli studenti un supporto didattico

Dettagli

Puntatori in C Lucidi della Pof.ssa Pazienza

Puntatori in C Lucidi della Pof.ssa Pazienza Puntatori in C Lucidi della Pof.ssa Pazienza http://www.uniroma2.it/didattica/foi2/ Puntatori L operatore di indirizzo & Indirizzi, puntatori Aritmetica dei puntatori L operatore di dereferenziazione *

Dettagli

Gli strumenti necessari per lo studio

Gli strumenti necessari per lo studio La potenza di un fucile a olla Sunto E possibile deterinare la potenza di un fucile a olla quando sono note la costante elastica K della olla, la isura d della copressione e la assa del proiettile sparato?

Dettagli

Fondamenti di Informatica I

Fondamenti di Informatica I Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Oggetti Composti (1) Oggetti Composti (2)

Oggetti Composti (1) Oggetti Composti (2) Oggetti Composti () Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi dei riferimenti ad oggetti di qualche classe

Dettagli

Mini-dispensa sui puntatori in C

Mini-dispensa sui puntatori in C Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

SAPIENZA Università di Roma, Facoltà di Ingegneria

SAPIENZA Università di Roma, Facoltà di Ingegneria SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. E.Casalicchio A.A. 2008/09 QUARTA PARTE: Soluzioni Esercizi 13-23 Soluzione

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

PRINCIPIO DI INDUZIONE. k =. 2. k 2 n(n + 1)(2n + 1) 6

PRINCIPIO DI INDUZIONE. k =. 2. k 2 n(n + 1)(2n + 1) 6 PRINCIPIO DI INDUZIONE LORENZO BRASCO Esercizio. Diostrare che per ogni n si ha nn. 2 Esercizio 2. Diostrare che per ogni n si ha 2 2 nn 2n. Soluzione Procediao per induzione: la 2 è ovviaente vera per

Dettagli

Chi sono e come contattarmi. Corso di Architettura degli Elaboratori. Bibliografia. Bibliografia (breaking news, sigh!)

Chi sono e come contattarmi. Corso di Architettura degli Elaboratori. Bibliografia. Bibliografia (breaking news, sigh!) ( '! %& % -" A : ;5 L K%. J J % 0 T NM ]\ [ % %R.% J % 0 T P Q n n Corso di Architettura degli Elaboratori Chi sono e coe contattari "! Introduzione: linguaggi, livelli e acchine virtuali, +" * ) 3 * 3

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe

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

24 - Possibili approfondimenti

24 - Possibili approfondimenti 24 - Possibili approfondimenti 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

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate

Dettagli

Esercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Esercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Scheda di Lavoro relativa all'esperienza di laboratorio: LA TAVOLA DEI LEGUMI

Scheda di Lavoro relativa all'esperienza di laboratorio: LA TAVOLA DEI LEGUMI Scheda di Lavoro relativa all'esperienza di laboratorio: LA TAVOLA DEI LEGUMI Scopo dell'esperienza: si vuole deterinare la assa relativa di sei diversi e il nuero di sei contenuti in una certa quantità

Dettagli

Informatica 3 secondo recupero 13 Settembre 2002

Informatica 3 secondo recupero 13 Settembre 2002 Informatica 3 secondo recupero 13 Settembre 2002 Nome (stampatello) Cognome (stampatello) Matr Recupero: Prima prova in itinere Seconda prova in itinere spazio per il docente Punteggi recupero prima prova

Dettagli

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E05 Definizione di classi A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di classi 1 Contenuti

Dettagli

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni La Classe String In Java le stringhe, a differenza della maggior parte dei linguaggi di programmazione, non sono array di caratteri (char), bensì

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Linguaggio C I puntatori

Linguaggio C I puntatori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Operazioni numeriche - Input

Operazioni numeriche - Input Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java

Dettagli

Esercizi sul modello Runtime di Java e sulla ricorsione (Fondamenti di Informatica 2 Walter Didimo) (Soluzioni)

Esercizi sul modello Runtime di Java e sulla ricorsione (Fondamenti di Informatica 2 Walter Didimo) (Soluzioni) Esercizi sul modello Runtime di Java e sulla ricorsione (Fondamenti di Informatica 2 Walter Didimo) (Soluzioni) Esercizio 1 1) Fornisci una definizione induttiva per la funzione: pari(n): N {true,false;

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Strutture Dinamiche. Fondamenti di Informatica

Strutture Dinamiche. Fondamenti di Informatica Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));

Dettagli

Corso di Fondamenti di Informatica I

Corso di Fondamenti di Informatica I Corso di Fondamenti di Informatica I Generics in Java Fabio Patrizi, Silvia Bonomi Dipartimento di Ingegneria Informatica, Automatica e Gestionale Facoltà di Ingegneria dell Informazione, Informatica e

Dettagli

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

Dettagli

IL CONCETTO DI CLASSE

IL CONCETTO DI CLASSE IL CONCETTO DI CLASSE Una CLASSE riunisce le proprietà di: componente software: può essere dotata di suoi propri dati / operazioni moduli: riunisce dati e relative operazioni, fornendo idonei meccanismi

Dettagli

LAVORO ED ENERGIA Corso di Fisica per Farmacia, Facoltà di Farmacia, Università G. D Annunzio, Cosimo Del Gratta 2006

LAVORO ED ENERGIA Corso di Fisica per Farmacia, Facoltà di Farmacia, Università G. D Annunzio, Cosimo Del Gratta 2006 LAVORO ED ENERGIA INTRODUZIONE L introduzione dei concetto di lavoro, energia cinetica ed energia potenziale ci perettono di affrontare i problei della dinaica in un odo nuovo In particolare enuncereo

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002. INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002 Esercizio 4) import fiji.io.simplereader; class Programma{ public static

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

Esercitazione n 1. Obiettivi

Esercitazione n 1. Obiettivi Esercitazione n 1 Obiettivi Introduzione all utilizzo di Java Development Kit (JDK) versione 1.3 Sviluppare programmi Java tramite linea di comando Es: javac, java, jdb, javadoc Primo esempio di programma

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Capitolo 1 Fisica, grandezze, unità di misura, metodo scientifico.

Capitolo 1 Fisica, grandezze, unità di misura, metodo scientifico. Capitolo 1 Fisica, grandezze, unità di isura, etodo scientifico. Fisica e etodo Il terine fisica deriva dal greco physiké che letteralente significa riguardante la natura. Tale definizione, corretta dal

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

Dettagli

Misura delle distanze

Misura delle distanze Prof. V. Franco: Topografia e tecniche cartografiche Corso di laurea in Ingegneria per l Abiente e il Territorio a.a. 006-007 Misura delle distanze Le isure di distanze vengono suddivise in: - isure dirette:

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

TRASLAZIONI E DILATAZIONI

TRASLAZIONI E DILATAZIONI TRASLAZIONI E DILATAZIONI Prof. Fabio Breda Abstract. Lo scopo di questo articolo è fare chiarezza sulla odalità di costruzione del graco di funzioni attraverso traslazioni o dilatazioni del graco di altre

Dettagli

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi

Precedenza e associatività. Complementi sul C - 2. Esempi. Esempi Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Programmazione 1 A.A. 2015/2016

Programmazione 1 A.A. 2015/2016 Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,

Dettagli

FERRARI 575M Maranello Velocità Massima 325 Km/h Accelerazione Massima 0-100Km/h in 4,2 s

FERRARI 575M Maranello Velocità Massima 325 Km/h Accelerazione Massima 0-100Km/h in 4,2 s 1 IL MOTO RETTILINEO UNIFORMEMENTE ACCELERATO L accelerazione. Una autoobile di grossa cilindrata, coe la Ferrari 575M Maranello, è apprezzata per la sua ripresa, cioè per la sua capacità di variare la

Dettagli

1 Simulazione di prova d Esame di Stato

1 Simulazione di prova d Esame di Stato Siulazione di prova d Esae di Stato Problea Risolvi uno dei due problei e 5 dei 0 quesiti in cui si articola il questionario Sia y = f) una funzione reale di variabile reale tale che la sua derivata seconda

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

MATERIALI COMPOSITI. Non esiste una definizione semplice per i materiali compositi.

MATERIALI COMPOSITI. Non esiste una definizione semplice per i materiali compositi. MATRIALI COMPOSITI Non esiste una deinizione seplice per i ateriali copositi. Sono orati da una iscela su scala icroscopica di olte asi con strutture e coposizioni dierenti che concorrono in odo sinergico

Dettagli

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio) Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Riferimenti ad oggetti: Cosa si può fare con i riferimenti?

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.1 Programmazione base 1 Prerequisiti Saper scrivere algoritmi elementari Tecniche elementari di sviluppo di una applicazione Modalità a riga di comando Utilizzo

Dettagli

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 19 Maggio 2010 1 Contenuti Classi per istanziare oggetti Esempio: la classe Punto Variabili d istanza Metodi d istanza Costruttori Ulteriori

Dettagli

Progetto di una capriata in acciaio

Progetto di una capriata in acciaio Progetto di una capriata in acciaio Concetti di base Nella progettazione di una qualsiasi struttura in capo civile è necessario seguire sepre uno schea entale preciso che sia chiaro e preciso per la realizzazione

Dettagli

L'allocazione dinamica della memoria

L'allocazione dinamica della memoria L'allocazione dinamica della memoria Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino I puntatori Le variabili di tipo puntatore permettono di accedere alla memoria

Dettagli

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili

Dettagli

Corso di Fondamenti di Informatica. Dispensa 3: Espressioni artimetico-logiche e costrutti di decisione. Prof. Domenico Rosaci

Corso di Fondamenti di Informatica. Dispensa 3: Espressioni artimetico-logiche e costrutti di decisione. Prof. Domenico Rosaci Corso di Fondamenti di Informatica Dispensa 3: Espressioni artimetico-logiche e costrutti di decisione Prof. Domenico Rosaci 2014-15 Esercizio 1: Scrivere un programma che chieda all'utente di inserire

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture

Dettagli

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012 Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Esercizio ContoCorrente Creare una classe ContoCorrente

Dettagli

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di

Dettagli

Lezione 12. Sottogruppi finiti di ordine fissato. I Teoremi di Sylow.

Lezione 12. Sottogruppi finiti di ordine fissato. I Teoremi di Sylow. Lezione 1 Prerequisiti: Lezioni, 7. ruppi di perutazioni. Riferienti ai testi: [Fd] Sezione.1; [H] Sezione.7; [PC] Sezione 5.1 Sottogruppi finiti di ordine fissato. I Teorei di Sylow. Dal Teorea di Lagrange

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

Le classi. Costruttori

Le classi. Costruttori Costruttori Le classi Usare una funzione per inizializzare membri di una classe viene considerato poco elegante. Ci si potrebbe dimenticare di invocare la funzione di inizializzaione o, peggio, chiamarla

Dettagli

3. Le routine evento in Access 2000/2003

3. Le routine evento in Access 2000/2003 LIBRERIA WEB 3. Le routine evento in Access 2000/2003 Le routine evento possono essere associate a un singolo controllo grafico (caselle di testo, pulsanti di comando, ecc.) presente all interno di una

Dettagli

Operazioni di Ordinamento

Operazioni di Ordinamento Operazioni di Ordinamento E possibile ordinare i dati di una tabella, una maschera, una query in ordine crescente decrescente o alfabetico se si tratta di stringhe. Per effettuare queste operazioni di

Dettagli

Pubblico e privato. Per capire il concetto di pubblico e privato è possibile pensare a diversi oggetti del mondo reale. Ad esempio: bancomat.

Pubblico e privato. Per capire il concetto di pubblico e privato è possibile pensare a diversi oggetti del mondo reale. Ad esempio: bancomat. Pubblico e privato Per capire il concetto di pubblico e privato è possibile pensare a diversi oggetti del mondo reale. Ad esempio: bancomat. La tessera bancomat esegue operazioni sul conto corrente, ma

Dettagli

Fondamenti di Informatica T-1. Classi & vettori

Fondamenti di Informatica T-1. Classi & vettori Classi & vettori 2 Array Un vettore (array) è un insieme ordinato, di dimensione fissa, di oggetti dello stesso tipo. Esempio: array capace di contenere al più 10 numeri interi int[] arrayinteri = new

Dettagli

Lezione 9 programmazione in Java Classi come contenitori

Lezione 9 programmazione in Java Classi come contenitori Lezione 9 programmazione in Java Classi come contenitori Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Gestione della Memoria Dati dinamici e statici Il passaggio

Dettagli

Refactoring 5 Sposta Metodo. 5 Sposta Metodo. 5 Sposta Metodo - Codice iniziale

Refactoring 5 Sposta Metodo. 5 Sposta Metodo. 5 Sposta Metodo - Codice iniziale Refactoring Un metodo sta usando più caratteristiche (attributi e operazioni) di un altra classe che non quella in cui è definito Crea un nuovo metodo con un corpo simile nella classe che il metodo usa

Dettagli

Strutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16

Strutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16 Strutture Dati Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Strutture Dati 1 / 16 Introduzione Fino ad ora nei nostri programmi abbiamo usato Variabili;

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Java Relazioni Associazioni 1 Associazione Uno a Zero-Uno Un esempio Un autovettura ha al più un proprietario 0..1 Dato il verso di navigazione specificato è necessario avere una

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

3. IL METODO DI TUNNELING

3. IL METODO DI TUNNELING 3. IL METODO DI TUNNELING L analisi nuerica ha da tepo reso disponibili una varietà di etodi di tipo iterativo per la soluzione di problei di inio. In questo capo si sono diostrati particolarente efficienti

Dettagli

MODELLO ATOMISTICO PER I DATI OCSE SULL ISTRUZIONE

MODELLO ATOMISTICO PER I DATI OCSE SULL ISTRUZIONE MODELLO ATOMISTICO PER I DATI OCSE SULL ISTRUZIOE Arturo Marcello Allega 1 Dirigente scolastico ITIS Giovanni XXIII di Roa Via di Tor Sapienza 160, 00155 Roa Abstract I dati OCSE sull istruzione sono distribuiti

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli