Classi e oggetti Seconda parte. Oggetti dinamici
|
|
- Leonzia Monica Pasini
- 7 anni fa
- Visualizzazioni
Transcript
1 Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Classi e oggetti Seconda parte Paolo Trunfio * * DEIS, Università della Calabria Oggetti dinamici class Esame { string nome; int voto; bool lode; Esame(const string &n, int v, bool l) { nome = n; voto = v; lode = l; cout << nome << ": " << voto; if (lode) { cout << " e lode"; cout << endl; ; Esame e1("poo", 28, false); cout << e1.voto << endl; // 28 e1.voto = 30; cout << e1.voto << endl; // 30 Esame *e2 = new Esame("Fisica", 24, false); cout << (*e2).voto << endl; // 24 cout << e2->voto << endl; // 24 (*e2).voto = 30; // e2->voto = 30 (*e2).lode = true; // e2->lode = true (*e2).stampa(); // e2->stampa() Programmazione Orientata agli Oggetti 8.2 Paolo Trunfio DEIS, UNICAL
2 L operatore this class Esame { private: string nome; int voto; Esame(const string& nome, int voto) { // nome = nome; // errore this->nome = nome; // (*this).nome = nome; this->voto = voto; // (*this).voto = voto; const string& getnome() { return nome; int getvoto() { return voto; void setvoto(int voto) { this->voto = voto; // (*this).voto = voto; ; Programmazione Orientata agli Oggetti 8.3 Paolo Trunfio DEIS, UNICAL class Data { private: int giorno; int mese; int anno; Data(int g, int m, int a); Data(int a); Data(); // costruttore di default void stampa(); ; Data::Data(int g, int m, int a) { giorno = g; mese = m; anno = a; Data::Data(int a) { giorno = 1; mese = 1; anno = a; Costruttori sovraccaricati Data::Data() { giorno = 1; mese = 1; anno = 1980; void Data::stampa() { cout << giorno << "-" << mese << "-" << anno << endl; Data a(3,3,2003); a.stampa(); // Data b(1990); b.stampa(); // Data c; c.stampa(); // Programmazione Orientata agli Oggetti 8.4 Paolo Trunfio DEIS, UNICAL
3 Attributi dinamici class Vettore { int length; int *array; Vettore(int dim) { length = dim; array = new int[dim]; ; void elabora(int d) { Vettore v(d); for (int i = 0; i < v.length; i++) v.array[i] = i; for (int i = v.length-1; i >= 0; i--) cout << v.array[i] << " "; cout << endl; elabora(3); // elabora(8); // elabora(2); // 1 0 Nota: Quando il metodo elabora termina la sua esecuzione, l oggetto v viene eliminato ma la memoria dinamica ad esso associata (puntata dall attributo array) non viene liberata. L invocazione ripetuta del metodo elabora causa quindi uno spreco di memoria. Per liberare la memoria quando l oggetto viene rimosso è necessario definire un distruttore. Programmazione Orientata agli Oggetti 8.5 Paolo Trunfio DEIS, UNICAL Distruttori class Vettore { int length; int *array; Vettore(int dim) { cout << "\n"; length = dim; array = new int[dim]; ~Vettore() { delete[] array; cout << "\n"; ; void elabora(int d) { Vettore v(d); for (int i = 0; i < v.length; i++) v.array[i] = i; for (int i = v.length-1; i >= 0; i--) cout << v.array[i] << " "; cout << endl; elabora(3); elabora(8); elabora(2); Programmazione Orientata agli Oggetti 8.6 Paolo Trunfio DEIS, UNICAL
4 class Vettore { int length; int *array; Vettore(int dim) { cout << "\n"; length = dim; array = new int[dim]; ~Vettore() { delete[] array; cout << "\n"; ; void metodo() { Vettore *v = new Vettore(10); delete v; Distruttori metodo(); metodo(); Programmazione Orientata agli Oggetti 8.7 Paolo Trunfio DEIS, UNICAL Metodi const class Persona { private: string nome; int eta; Persona(const string& n, int e) { nome = n; eta = e; const string& getnome() const { // eta = 10; // errore return nome; const int geteta() const { return eta; void seteta(int e) { eta = e; ; Persona p("mario Rossi", 20); const string &n = p.getnome(); int eta = p.geteta(); p.seteta(eta+10); cout << n << ": " << p.geteta() << endl; // Mario Rossi: 30 Nota: I metodi const non possono modificare lo stato dell oggetto Programmazione Orientata agli Oggetti 8.8 Paolo Trunfio DEIS, UNICAL
5 Membri statici static MyClass(int x) { y++; ; // definizione e inizializzazione int MyClass::y = 0; cout << MyClass::y << endl; // 0 MyClass a(8); cout << MyClass::y << endl; // 1 MyClass b(4); cout << MyClass::y << endl; // 2 MyClass c(6); cout << MyClass::y << endl; // 3 Nota: I membri statici sono utilizzati per condividere informazioni tra tutti gli oggetti della classe Programmazione Orientata agli Oggetti 8.9 Paolo Trunfio DEIS, UNICAL Metodi statici static MyClass(int x) { y++; static long f(); ; int MyClass::y = 0; long MyClass::f() { // x = x+1; // errore: campo non statico return y*y; cout << MyClass::y << endl; // 0 MyClass a(8); cout << MyClass::y << endl; // 1 MyClass b(4); cout << MyClass::y << endl; // 2 cout << MyClass::f() << endl; // 4 Nota: I metodi statici non possono accedere a membri non statici Programmazione Orientata agli Oggetti 8.10 Paolo Trunfio DEIS, UNICAL
6 Assegnamenti tra oggetti ; MyClass a(2,3); MyClass b = a; b.stampa(); // 2 3 b.x = 10; a.stampa(); // 2 3 MyClass *c = new MyClass(4,1); MyClass *d = c; d->stampa(); // 4 1 d->x = 7; c->stampa(); // 7 1 Programmazione Orientata agli Oggetti 8.11 Paolo Trunfio DEIS, UNICAL Array statici di oggetti statici MyClass() { x = y = 0; ; int dim = 4; MyClass a[dim]; // richiede il costruttore di default a[i].x = i; a[i].y = i*i; a[i].stampa(); Programmazione Orientata agli Oggetti 8.12 Paolo Trunfio DEIS, UNICAL
7 Array dinamici di oggetti statici MyClass() { x = y = 0; ; int dim = 4; MyClass *b = new MyClass[dim]; // richiede il costruttore di default b[i].x = i; b[i].y = i*i; b[i].stampa(); delete[] b; Programmazione Orientata agli Oggetti 8.13 Paolo Trunfio DEIS, UNICAL Array dinamici di oggetti dinamici MyClass() { x = y = 0; ; int dim = 4; MyClass **c = new MyClass*[dim]; // non richiede il costruttore di default c[i] = new MyClass(i,i*i); c[i]->stampa(); delete c[i]; delete[] c; Programmazione Orientata agli Oggetti 8.14 Paolo Trunfio DEIS, UNICAL
Ereditarietà e polimorfismo
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Ereditarietà e polimorfismo Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio
DettagliIl paradigma OO e le Classi
Oggetti e Classi (CAP 10) Alberto Garfagnini Università degli studi di Padova 1 Dicembre 2009 Il paradigma OO e le Classi La programmazione ad Oggetti () è una filosofia di programmazione che si basa sui
DettagliCorso di Programmazione ad Oggetti
Corso di Programmazione ad Oggetti Costruttori di copia, funzioni di accesso e variabili static aa 2008/2009 Claudio De Stefano Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 1
DettagliCostruttori/distruttori. Sovraccarico degli operatori. Costruttori/distruttori. Necessità di un cotruttore
Costruttori/distruttori. Sovraccarico degli operatori. Costruttori/distruttori Quando un oggetto viene allocato viene eseguita una routine di inizializzazione: il costruttore. Quando viene deallocato si
DettagliLaboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
DettagliCorso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 24 Ottobre 2014
Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli 24 Ottobre 2014 1 Una funzione membro importante: il costruttore In logica OOP l accesso allo stato interno di un istanza deve avvenire solo attraverso
DettagliLa classe std::vector della Standard Template Library del C++
La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente
DettagliINFORMATICA 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
Dettagli18 - 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
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
DettagliTemplate (1) Molte volte l operato di una funzione o le proprietà di una classe non dipendono dal tipo dei dati coinvolti
Template (1) Molte volte l operato di una funzione o le proprietà di una classe non dipendono dal tipo dei dati coinvolti int sumvector(int *array, int n) { int sum(0); for (int i = 0; i < n; ++i) sum
DettagliLaboratorio di Informatica
Strutture di dati Laboratorio di Informatica 5. Strutture / Array di oggetti / Pila&Coda in C++ Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna
DettagliStringhe 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ì
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 8 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
DettagliClasse 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
DettagliFondamenti 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
DettagliFondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Enumerativi
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Enumerativi Finora abbiamo creato enumerativi
Dettagli9 - 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
Dettagli3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;
Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso
DettagliUniversità degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B. Esercitazioni 7 e 8
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 7 e 8 Bounded Buffer con sincronizzazione Java (1) public class BoundedBuffer private
DettagliProgrammazione 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
DettagliJava: Definire Classi e Creare Oggetti
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito
Dettagli14 - 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
DettagliLaboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una
DettagliSOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria
Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito
DettagliStrutture. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Strutture Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Tipi strutturati Rappresentano informazioni composte dall insieme di più valori
DettagliGeneralizzazione di funzioni e di classi. Macro come funzioni generiche
Alessio Bechini - Corso di - Generalizzazione di funzioni e di classi Il meccanismo di template Macro come funzioni generiche long longmax(long x, long y) { Possibile soluzione int intmax(int x, int y)
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliDati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
DettagliCorso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione
Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array
DettagliEreditarietà. Ereditarietà. Ereditarietà. Ereditarietà
L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe
DettagliCorso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010
Esercizio 1. Si deve modellare con una classe Java il contenuto di un portamonete, con delle opportune semplificazioni. Le monete da considerare sono di soli 4 tagli: 10, 20, 50 e 100 centesimi (cioè 1
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliLaboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di Bari
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2011-12 17 settembre 2012 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliLaboratorio 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
DettagliProgrammazione. 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
Dettagli16 - Ereditarietà, tipi e gerarchie
16 - Ereditarietà, tipi e gerarchie 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
DettagliIstruzioni semplici e strutturate
Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
DettagliEsonero del corso di Programmazione a Oggetti
Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
DettagliOperatore di indirizzo
Operatore di indirizzo L operatore unario di indirizzo & restituisce l indirizzo della locazione di memoria dell operando Il valore restituito non va usato come l- value (in quanto l indirizzo di memoria
DettagliRicerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5
Ricerca e ordinamento su array di oggetti Corso di Programmazione 2 Esercitazione 5 Sommario Ricercare in array di oggetti Interfaccia comparable Ordinare array di oggetti Problema Come ordinare, ricercare
DettagliIntroduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
Dettagliarray: strumento per costruire rappresentazioni di tipi strutturati omogenei
array: strumento per costruire rappresentazioni di tipi strutturati omogenei ogni elemento è un aggregato di componenti elementari tutti dello stesso tipo (caso tipico: sequenze di numeri, nomi, ) ogni
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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
DettagliEsercizi su programmazione ricorsiva 1. Pericle Perazzo 23 marzo 2012
su programmazione ricorsiva 1 Pericle Perazzo pericle.perazzo@iet.unipi.it http://info.iet.unipi.it/~fondii/ 23 marzo 2012 Ripasso di programmazione ricorsiva Ripasso di programmazione ricorsiva Algoritmo
DettagliVariabili 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
DettagliFondamenti di Informatica T-1. Classi e array
Classi e array 2 Classi e metodi statici Una classe è un costrutto linguistico che permette di modellare un'entità di un sistema, definendone le caratteristiche (variabili interne) e le azioni (metodi).
DettagliLaboratorio di Informatica
Cosa sono i puntatori? I puntatori sono fondamentalmente delle variabili che non contengono un valore numerico o alfanumerico, ma un puntatore (ossia un indirizzo) alla locazione di memoria dove è memorizzato
DettagliSAPIENZA 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
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a febbraio 2013
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 22 febbraio 2013 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliUniversità degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Allocazione dinamica di memoria
di Cassino e del Lazio Meridionale Corso di Informatica Allocazione dinamica di memoria Anno Accademico 2015/2016 Francesco Tortorella Allocazione dinamica di memoria Finora abbiamo considerato variabili
DettagliCapitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73
Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio
DettagliCorso di Programmazione a oggetti
Corso di Programmazione a oggetti Introduzione alla programmazione a oggetti aa 2014/2015 Francesco Fontanella La Programmazione Modulare Un programma può essere visto come un insieme di moduli che interagiscono
DettagliLe 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
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliLaboratorio di Programmazione e Calcolo
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI FISICA E. AMALDI Laboratorio di Programmazione e Calcolo 6 crediti a cura di Severino Bussino Anno Accademico 2016-17 0) Struttura del Corso 1) Trattamento
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliProgrammazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):
Programmazione I 11 gennaio 2012 Matricola:........................................................................ Cognome:........................................................................ Nome:...........................................................................
DettagliRicerca binaria (o dicotomica) di un elemento in un vettore
Ricerca binaria (o dicotomica) di un elemento in un La ricerca binaria o dicotomica è utilizzata per ricercare i dati in un ORDNATO. L algoritmo di ricerca binaria, dopo ogni confronto, scarta metà degli
DettagliLa fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo & Monica Scannapieco Anno Accademico 2003/04 LA FASE DI PROGETTO E
DettagliProgrammazione II Compitino (Vers. B)
Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi
DettagliA. 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),
DettagliLinked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture
Linked Lists Liste linkate () La combinazione di class/struct e puntatori porta alla creazioni di interessanti Abstract Data Type liste linkate ( stack, queues ), trees Liste linkate come strutture struct
DettagliEspressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test
Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo
DettagliRicerca sequenziale di un elemento in un vettore
Ricerca sequenziale di un elemento in un vettore La ricerca sequenziale o lineare è utilizzata per ricercare i dati in un vettore NON ordinato. L algoritmo di ricerca sequenziale utilizza quan non ha alcuna
Dettaglicostruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
DettagliClassi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++
Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -
DettagliIngegneria 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
DettagliVisibilità dei Membri di una Classe
Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliArray multidimensionali e stringhe
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi
DettagliCorso di Programmazione a oggetti
Corso di Programmazione a oggetti Overloading delle funzioni e parametri di default a.a. 2014/2015 Francesco Fontanella Overloading delle funzioni In C++, è possibile dare a funzioni diverse lo stesso
DettagliProgrammazione 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,
Dettagli7 - 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
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Concetti Avanzati versione 2.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento
DettagliAlgoritmo di ordinamento per scambio (a bolle o bubble sort)
Algoritmo di ordinamento per scambio (a bolle o bubble sort) Per ottenere un ordinamento crescente con l algoritmo di ordinamento per scambio (bubble sort) si prenno in considerazione i primi due elementi
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento
DettagliRichiami su oggetti e OOP
Richiami su oggetti e OOP Un oggetto (object) è una entità caratterizzata da una struttura dati alla quale si associa l insieme delle operazioni che è possibile compiere su di essa. Un oggetto può essere
DettagliI numeri razionali. Specifica: la sintassi. Specifica: la semantica
Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi Che cos è un tipo di dato? Tutti i linguaggi di programmazione tipati forniscono tipi ed operatori predefiniti
DettagliIL 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
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliLaboratorio 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[]
DettagliEsonero del corso di Programmazione a Oggetti
Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio
DettagliGli array Array multidimensionali I puntatori L aritmetica dei puntatori Puntatori ed array I reference L attributo const a puntatori e reference
Sintassi III Parte Indice Gli array Array multidimensionali I puntatori L aritmetica dei puntatori Puntatori ed array I reference L attributo const a puntatori e reference Array Per un tipo T t[size] è
Dettagli1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:
DettagliCognome Nome Matricola Postazione PC. Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a Gennaio 2015
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2014 15 Gennaio 2015 Testo Il database di un bar è costituito da due vettori paralleli. Il primo
DettagliPassaggio parametri puntatore
Passaggio parametri puntatore Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
DettagliEsercitazioni 7 e 8. Bounded Buffer con sincronizzazione Java (1)
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 7 e 8 Bounded Buffer con sincronizzazione Java (1) public class BoundedBuffer private
DettagliLaboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste (II) Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di
DettagliLa programmazione ad oggetti (OOP)
Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente
Dettagli