Laboratorio di Informatica
|
|
- Domenica Spano
- 7 anni fa
- Visualizzazioni
Transcript
1 Modellazione della realtà L astrazione Modellazione di un auto la modellazione di un oggetto (p.e. un auto) dipende dalle finalità che si pone la persona che lo sta analizzando: Laboratorio di Informatica 2. Programmazione ad oggetti in C++ lettore di Quattroruote guidatore manutentore progettista del motore progettista/design della carrozzeria Corso di Laurea in Ingegneria Elettronica e Telecomunicazioni A.A Semestre Prof. Giovanni Pascoschi Livelli di astrazione differenti in funzione della persona che vuole utilizzare l oggetto : chi conosce maggiori dettagli sull auto? chi conosce meno dettagli dell auto? 2 Progettazione del software L astrazione Progettazione del software L astrazione Nella progettazione software si possono adottare diversi livelli di astrazione p.e. possiamo prescindere da come è realizzata in dettaglio una funzione scritta da un altro programmatore Puo essere importante per noi conoscere solo come interfacciare questa funzione, ma non come è stata realizzata. Se avessimo tante funzioni già pronte e da utilizzare, potremmo integrare il nostro programma applicativo semplicemente conoscendo come interfacciare queste funzioni Astrazione sul controllo consiste nell'astrarre una data funzionalità dai dettagli implementativi della stessa funzione; è già supportata dai linguaggi di programmazione come il linguaggio C tramite il concetto di sottoprogramma (procedura o funzione). Astrazione dei dati consiste nell'astrarre le entità (oggetti) costituenti il sistema, descritte in termini di una struttura dati e delle funzioni possibili tramite essa. Nel linguaggio C il concetto di tipo di dato è quello di insieme dei valori che può assumere una informazione (tipicamente una variabile). 3 4
2 Progettazione del software ADT Progettazione del software OOP Il tipo di dati astratto (ADT) estende la definizione di dato, includendo anche l'insieme di tutte e sole le operazioni (funzioni) possibili su dati di quel tipo. La struttura dati è incapsulata nelle operazioni su di essa definite incapsulamento di classe/oggetto Un tipo di dato astratto (ADT) è un modello matematico consistente in una collezione di valori insieme ad una collezione di operazioni definite sul modello. Gli ADT generalizzano i tipi di dato primitivi (interi, reali, etc.), mentre le procedure generalizzano le operazioni primitive (+, -,...). Anche nel linguaggio C è possibile forzare l applicazione di una metodologia basata sugli oggetti, adoperando una opportuna disciplina di programmazione, aderendo cioè ad un insieme di regole, il cui uso però dipende dal programmatore senza nessun controllo da parte del compilatore Un linguaggio di programmazione OOP (Object Oriented Programming) supporta invece direttamente tecniche di sviluppo software basate sugli oggetti offrendo meccanismi espliciti per la definizione di entità (oggetti) che incapsulano una struttura dati nelle operazioni possibili su di essa. Il C++ permette ad esempio di definire istanze (cioè, variabili) di un ADT (dato tipo astratto). In tal caso il linguaggio basato su OOP presenta istruzioni per la definizione di classi ed oggetto. Una classe è una implementazione di un tipo di dati astratto. Un oggetto può essere riguardato come una istanza di una classe 5 6 Progettazione del software OOP Analogia progettista della FIAT La programmazione orientata agli oggetti OOP è intimamente connessa a tecniche di progettazione/sviluppo di tipo bottom-up. La metodologia bottom-up mira all'individuazione delle entità astratte (oggetti) facenti parte del sistema, delle loro proprietà e delle interazioni tra di esse è favorito il riuso del software attraverso l'individuazione di entità corrispondenti a componenti già esistenti una nuova applicazione può essere costruita a partire da componenti esistenti (mattoni elementari), opportunamente integrati/assemblati Il linguaggio C è invece orientato ad una programmazione di tipo top-down Un progettista FIAT per progettare un auto ha due possibilità: 1.progettare ogni oggetto dell auto 2.utilizzare oggetti già realizzati da altre aziende integrandoli con oggetti progettati internamente nella FIAT Cosa sceglie di solito? Occorre progettare ex-novo anche il tergicristallo? Di cosa ha bisogno il progettista per montare un tergicristallo su un auto FIAT? conoscere le caratteristiche e le funzionalità del tergicristallo e come interfacciare l oggetto tergicristallo 7 8
3 Esempio di oggetto fisico Esempio di oggetto fisico Caratterizzazione di un auto Attributi colore potenza marce peso cilindrata Utilizzazione di un auto Interfacciamento pedale dell acceleratore pedale del freno leva del cambio volante Funzionalità accelera frena cambia marcia cambia direzione 9 10 Esempio di oggetto software Perchè la programmazione OOP? Programmare per oggetti non velocizza l esecuzione dei programmi... Programmare per oggetti non ottimizza l uso della memoria... Dato 1 E allora perchè programmare per oggetti? Dato... Dato n 11 12
4 Implicazione dell incapsulamento Vantaggi della programmazione OOP L incapsulamento determina una netta divisione fra interfaccia e implementazione Da fuori si vede solo l interfaccia che definisce i messaggi accettati dall oggetto I dettagli dell implementazione (dati e codice delle funzioni) sono invisibili dall esterno ( information hiding ) Ogni oggetto ha in se tutto ciò che gli serve per rispondere alle chiamate La programmazione ad oggetti, attraverso l incapsulamento, consente di: ridurre la dipendenza del codice di alto livello dalla rappresentazione dei dati riutilizzare codice di alto livello sviluppare moduli indipendenti l uno dall altro avere codice utente che dipende dalle interfacce ma non dall implementazione Il confinamento di informazioni e funzionalità in oggetti permette livelli maggiori di astrazione e semplifica la gestione di sistemi complessi. Cos è? / Com è fatto? Data Oriented Cosa può fare per me? Object Oriented Vantaggi della programmazione OOP Oggetto in C++ Protezione delle strutture dati Incapsulamento information hiding Maggiore semplicità di progettazione astratta progettazione top-down e bottom-up, gerarchia di classi composizione delle classi come mattoni fondamentali Un oggetto in C++ è una entità software che incapsula un insieme di attributi (o dati) e comprende un insieme di operazioni (o metodi o funzioni) che manipolano i dati. L insieme dei valori assunti dai suoi attributi costituisce lo stato dell oggetto. Migliore riutilizzazione del codice composizione, aggregazione, derivazione L insieme delle sue operazioni definiscono il comportamento dell oggetto. Migliore manutenzione del codice le modifiche sono realizzate mediante aggiunta di classi e funzioni virtuali non è necessario riprendere e modificare l intero codice Migliore documentazione del codice Strumenti grafici del tipo UML 15 16
5 Classe in C++ Classe in C++ Il concetto di classe fornisce al programmatore uno strumento per creare nuovi tipi che possono essere usati facilmente come i tipi predefiniti (int, float, double, etc.) Un tipo è la rappresentazione concreta di un concetto. Ad es., il tipo predefinito double, insieme alle sue operazioni +, -, * e /, fornisce una rappresentazione del concetto di numero reale Una classe è quindi un nuovo tipo definito dal programmatore. Si progetta un nuovo tipo per fornire la definizione di un concetto che non è definito direttamente tra i tipi predefiniti (in maniera analoga alla struct) Ogni oggetto è istanza di una determinata classe Una classe definisce una tipologia di oggetti che possono essere descritti dallo stesso insieme di attributi e dallo stesso insieme di metodi Due istanze della stessa classe condividono le stesse proprietà strutturali (attributi) e le medesime proprietà comportamentali (metodi), ma sono comunque oggetti distinti Classe in C++ (sintassi) Oggetti in C++ una classe è il modello-prototipo al quale si conformano gli oggetti che istanziano la classe sintassi/struttura di una classe: class nome_classe { /* (default) dati e metodi accessibili solo ai metodi della classe. Sono quindi nascosti all esterno (non accessibili direttamente) */ protected: prossime lezioni /* privati all esterno; dati e metodi accessibili solo all interno della classe e tramite classi derivate */ /* dati e metodi accessibili pubblicamente a tutte le funzioni dello stesso scope dell oggetto */ ; Definita una classe, possono essere generate istanze della classe, ossia oggetti con la seguente sintassi: nome_classe identificatore; Per accedere ai singoli membri dell oggetto si usa l operatore. in maniera simile al caso delle strutture. le componenti funzionali dichiarati in una struttura possono essere definite all'interno (inline) o all'esterno 19 20
6 Esempio1: classe in C++ Esempio2: classe in C++ class Rettangolo { double base, altezza; void Set (double b, double h) { base = b; altezza = h; double Area( ) { return base * altezza; int main ( ) { Rettangolo tovaglia; // istanza oggetto tovaglia.set (12.0, 30.0); cout<< l area e :<< tovaglia.area( ); class orologio { int ora; int minuti; int secondi; void init(int h, int m, int s) { ora = h; minuti = m; secondi = s; ; int main ( ) { orologio a; // istanza oggetto a a.init(12, 30, 20); orologio b; // istanza oggetto b b.init(15, 05, 30); cout << a.ora << "\n"; // 12 cout << a.minuti << "\n"; // 30 cout << b.ora << "\n"; // 15 b.ora = a.ora + 1; cout << b.ora << "\n"; // 13 ; Classe in C++ : dati membro (attributi) Classe in C++ : funzioni membro (metodi) Non è possibile inizializzare dati membro di tipo privato I metodi sono dichiarati all interno della classe, ma possono essere definiti sia all interno della classe che all esterno Per ovviare al problema di inizializzare attributi privati si utilizzano i costruttori chiamate a funzioni membro tramite l operatore. p.e. : r1.funz1( ); //rappresenta l invio di un messaggio all oggetto r1 perchè esegua un determinato compito 23 24
7 Classe in C++ : funzioni membro (metodi) Esempio classe in C++ (campi pubblici & privati) I tipi di funzione membro (metodi): Costruttori e distruttori si invocano automaticamente alla creazione e alla distruzione di un oggetto Selettori (get) restituiscono valori di attributi privati Modificatori (set) modificano valori di attributi privati Operatori definiscono operatori standard C++ Iteratori elaborano insiemi di oggetti come gli array 25 class orologio { int ora; int minuti; int secondi; void init(int h, int m, int s) { ora = h; minuti = m; secondi = s; void stampa( ) { cout << ora << :" << minuti << :" << secondi << endl; ; int main ( ) { orologio a; // istanza oggetto a a.init(12, 30, 20); orologio b; // istanza oggetto b b.init(15, 05, 30); cout << a.ora << "\n"; // errore a.minuti = 25; // errore a.stampa( ); // 12 : 30 : 20 cout << b.ora << "\n"; // errore b.ora = a.ora + 1; // errore b.stampa( ); // 15 : 05 : Esempio classe in C++ (metodi definiti fuori dalla Classe) class orologio { int ora; int minuti; int secondi; void init(int h, int m, int s); void stampa( ); ; void orologio::init(int h, int m, int s){ ora = h; minuti = m; secondi = s; void orologio::stampa( ) { cout << ora << :" << minuti << :" << secondi << endl; int main ( ) { orologio a; // istanza oggetto a a.init(12, 30, 20); orologio b; // istanza oggetto b b.init(15, 05, 30); cout << a.ora << "\n"; // errore a.minuti = 25; // errore a.stampa( ); // 12 : 30 : 20 cout << b.ora << "\n"; // errore b.ora = a.ora + 1; // errore b.stampa( ); // 15 : 05 : 30 a = b; // l oggetto b è assegnato ad a 27 Classi in C++ : costruttori Per autoinizializzare gli attributi privati di un oggetto si utilizza il costruttore Il costruttore è il metodo che parte automaticamente alla creazione dell oggetto (anche se non definito esplicitamente dal programmatore, di default parte sempre all istanza dell oggetto) class Rettangolo { il costruttore ha lo stesso nome della classe il costruttore non ritorna alcun tipo di dato double base, altezza; void Set (double b, double h); double Area( ); // costruttore Rettangolo ( ) { base = 0.0; altezza = 0.0; ; ; 28
8 Classi in C++ : costruttori Un costruttore con parametri si dice costruttore alternativo esempio Rettangolo (10.0, 30.0); un costruttore, come per qualsiasi funzione (escluso il distruttore) puo essere sovraccaricata (overload) viene eseguito un unico costruttore in funzione del tipo e quantità di parametri utilizzati Rettangolo r1(20.0, 13.0); 29 Esempio classe in C++ (costruttori) class orologio { int ora; int minuti; int secondi; orologio(int h, int m, int s); void stampa( ); ; orologio::orologio(int h, int m, int s){ ora = h; minuti = m; secondi = s; void orologio::stampa( ) { cout << ora << :" << minuti << :" << secondi << endl; int main ( ) { orologio a(12, 30, 20); // istanza oggetto a a.stampa( ); // 12 : 30 : 20 N.B.: i costruttori hanno lo stesso nome della classe e non specificano alcun valore di ritorno 30 Classi in C++ : distruttori Esempio classe in C++ (distruttori) Un distruttore è un metodo speciale (opzionale) che viene chiamato automaticamente quando si distrugge un oggetto esempio ~Rettangolo ( ); Il distruttore serve normalmente per liberare la memoria assegnata dal costruttore Se non dichiarato dal programmatore il C++ ne crea automaticamente uno vuoto class Rettangolo { double base, altezza; void Set (double b, double h); double Area( ); // costruttore Rettangolo ( ) { base = 0.0; altezza = 0.0; ; // distruttore Rettangolo ( ) { cout<< Oggetto eliminato ; ; ; 31 32
9 Classi in C++ : classi composte Classi in C++ : overloading di funzioni membro Un classe è composta quando contiene membri dato che sono a loro volta delle classi class orologio { int ora; int minuti; int secondi; orologio(int h, int m, int s); void stampa( ); ; class data { int giorno; int mese; int anno; orologio time;. 33 i metodi come qualsiasi altra funzione possono essere sovraccaricati (overload) i costruttori sono i metodi che normalmente sono sovraccaricati 34 Classi in C++ : rappresentazione UML Classi in C++ : esempio numeri complessi Per rappresentare graficamente le classi si usa lo standard UML (Unified Modelling Language) Esempio complesso Rettangolo base altezza Assegna() Area() pr : float pi : float complesso() complesso() cadd() csub() cmult() visualizza() 35 36
10 Esempio numeri complessi (#1) Esempio numeri complessi (#2) #include <conio.h> class complesso { ; float pr, pi; complesso( ) {pr=0; pi=0; complesso(float x,float y); void cadd(complesso arg); void csub(complesso arg); void cmult(complesso arg); void visualizza(); //costruttore di default //altro costruttore //operazione addizione //operazione sottrazione //operazione moltiplicazione 37 // definizione metodi della classe complesso::complesso(float x, float y) { pr=x; pi=y; void complesso::cadd(complesso arg) { pr+=arg.pr; pi+=arg.pi; void complesso::csub(complesso arg) { pr-=arg.pr; pi-=arg.pi; void complesso::cmult(complesso arg){ float temp1, temp2; temp1=pr*arg.pr - pi*arg.pi; temp2=pr*arg.pi + pi*arg.pr; pr=temp1; pi=temp2; 38 Esempio numeri complessi (#3) Esempio numeri complessi (#4) void complesso::visualizza(){ if(pi<0.0) cout << '\n' << "complesso: " << pr << "- j" << abs(pi); else cout << '\n' << "complesso: " << pr << "+ j" << pi; a.csub(b); a.visualizza(); b.visualizza(); // differenza a-b int main(){ complesso a(1,3), b(2,2); complesso *c; c = new complesso(5.1,2.2); a.visualizza(); b.visualizza(); c->visualizza(); // allocazione dinamica dell oggetto puntato da c a.cmult(b); a.visualizza(); b.visualizza(); getch(); // moltiplicazione a*b a.cadd(b); b.cadd(b); a.visualizza(); b.visualizza(); // somma a+b // somma b+b 39 40
11 Riepilogo della lezione Fine della lezione Programmazione ad oggetti in C++ Astrazione Progettazione del software - OOP Classi e oggetti in C++ Membri pubblici/privati Costruttori/distruttori Domande? 41 42
Programmazione ad oggetti
Programmazione ad oggetti Tipi di dati Tipo = insieme di valori + insieme di operazioni Es. int: valori:, -2, -1, 0, 1, 2, operazioni:: +,-,*,/,
DettagliIngegneria del Software
Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi
DettagliProgrammazione 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.
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 -
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
DettagliProgrammi e Oggetti Software
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software
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
DettagliProgrammazione Orientata agli Oggetti
Programmazione Orientata agli Oggetti Lezione 13 La programmazione ad oggetti si basa su due principi fondamentali ereditarietà polimorfismo Queste due proprietà consentono di definire nuovi tipi di dato
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
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
DettagliLa programmazione a oggetti e il C++ (introduzione)
Corso di Programmazione I La programmazione a oggetti e il C++ (introduzione) Argomenti I concetti di astrazione e modulo Meccanismi di astrazione Metodologie top-down e bottom-up Programmazione a oggetti
DettagliIntroduzione alla programmazione Object Oriented. Luca Lista
Introduzione alla programmazione Object Oriented Luca Lista Concetti base del software OO Classi e oggetti Incapsulamento Relazione di ereditarietà Polimorfismo Cos è un Oggetto? Definizione da vocabolario:
DettagliI livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
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
DettagliProprietà 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
DettagliLa programmazione ad oggetti: chiamate di metodi. Overloading. This
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.
DettagliEsempio Principio di sostituibilità
Ereditarietà E uno dei concetti chiave delle tecniche orientate agli oggetti Esprime le somiglianze tra le classi, semplificando la definizione di una classe e riducendola a una o più classi simili Rappresenta
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliIntroduzione alla OOP Object Oriented Programming
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
DettagliObject Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
DettagliClassi e oggetti Seconda parte. Oggetti dinamici
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
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 Incapsulamento Polimorfismo e overloading Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
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
DettagliTipi di dato personalizzati Array di struct. Tipi di dato utente. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Array di Tipi di dato utente Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Array di Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione
DettagliCorso Programmazione Java Standard
Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate
DettagliSommario. Le strutture Le classi
Le Classi in C++ Sommario Le strutture Le classi Introduzione Iniziamo a parlare di strutture dati di tipo struct cioè di aggregati di dati Muoveremo poi dalla analisi dei limiti di queste strutture per
DettagliProgrammazione 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,
DettagliISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI
DettagliCaratteristiche di un linguaggio ad alto livello
Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono
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
DettagliProgrammazione è gestione di eventi
FUNZIONI Ed Eventi Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
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)
DettagliProgrammazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento
DettagliIl C nel C++: Funzioni
Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma
DettagliOggetti 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
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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliEreditarietà 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
DettagliProgrammazione 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,
DettagliLinguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti
LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE Anno Accademico 2000-2001 Alberto Martelli Programmazione ad Oggetti Parte I Linguaggi ad oggetti (object oriented) I linguaggi di programmazione
DettagliLa classe java.lang.object
La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita
DettagliOOP 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
DettagliInformatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione
Informatica 3 Informatica 3 LEZIONE 2: Sintassi e semantica Lezione 2- Modulo 1 Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4:
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi
Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di
DettagliOggetti 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,
DettagliProgrammazione. 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
DettagliTIPI PRIMITIVI: LIMITI
TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come
DettagliLinguaggi ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione. I principali linguaggi ad oggetti. Programmazione ad oggetti.
Linguaggi di Programmazione: Paradigmi di Programmazione Linguaggi ad oggetti I linguaggi di programmazione ad oggetti consentono di applicare metodologie di sviluppo di programmi "object oriented", ossia
DettagliOOP: 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
DettagliIL 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
DettagliIntroduzione alle Classi e agli Oggetti. Prof. Francesco Accarino IIS Altiero Spinelli Via leopardi 132 Sesto San Giovanni
Introduzione alle Classi e agli Oggetti Prof. Francesco Accarino IIS Altiero Spinelli Via leopardi 132 Sesto San Giovanni Oggetti Per capire cos è un oggetto prendiamo spunto dalla vita reale: un oggetto
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliMODELLO e RAPPRESENTAZIONE
MODELLO e RAPPRESENTAZIONE I calcolatori elaborano informazione e restituiscono nuova informazione: questa deve essere rappresentata in forma simbolica Esempio : Per poter gestire una biblioteca dobbiamo
DettagliLettura e scrittura di file di dati input/output
Lettura e scrittura di file di dati input/output Lettura e scrittura da disco Molto semplice in C++: si fa esattamente come se fosse una tastiera (se sto leggendo da disco) o lo schermo (se sto scrivendo
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
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
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
DettagliACSO 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à
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliAbstact Data Type. Abstact Data Type. Pubblico e privato. Struttura di un ADT
Abstact Data Type 2 Abstact Data Type Ver. 2.4 ADT, definisce un concetto astratto e il suo comportamento Viene utilizzato come una scatola nera (oggetto) di cui è visibile solo che cosa fa e non come
DettagliClassi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
DettagliStruttura dei programmi C
Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte
DettagliEreditarietà e Polimorfismo. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Ereditarietà e Polimorfismo Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Ereditarietà L ereditarietà è lo strumento che permette di costruire nuove classi utilizzando
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliDiagrammi di classe e sistemi orientati agli oggetti
Appendice D Diagrammi di classe e sistemi orientati agli oggetti ANDREA GINI Un effetto della strategia di incapsulamento è quello di spingere il programmatore a esprimere il comportamento di un sistema
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliModelli di interazione tra processi
Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema
DettagliJava. 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 -
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
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
DettagliIngegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 4. Introduzione a UML Dipartimento di Informatica Università di Pisa A.A. 2014/15 e per i modelli iterativi analisi peliminare analisi e progettazione realizzazione Necessità di
Dettagliuguale livello gerarchico non vi sono funzioni più importanti di altre main main
FUNZIONI in C/C++ Un programma C++ è un insieme di funzioni indipendenti e di uguale livello gerarchico (nel senso che non vi sono funzioni più importanti di altre o dotate, in qualche modo, di diritti
Dettaglioggetti: Cenni generali Programmazione ad Ingegneria Informatica e dell'informazione Michelangelo Diligenti
Programmazione ad oggetti: Cenni generali Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@dii.unisi.it Argomenti Programmazione ad oggetti Motivazioni Classi Metodi e membri
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
DettagliUnità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
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++:
DettagliComunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2
DettagliUniversità di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
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
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliJava. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto
Java Il linguaggio Java è un linguaggio di programmazione ad alto livello algoritmo: astrazione della realtà linguaggio di programmazione: astrazione del processore variabile e tipo: astrazione della locazione
DettagliRelazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore
Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di
DettagliCorso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque
DettagliConcetti base programmazione. Antonio Gallo
Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,
DettagliPrincipi della programmazione orientata agli oggetti. I principi della programmazione ad oggetti
Principi della programmazione orientata agli oggetti I principi della programmazione ad oggetti Roadmap Introduzione alle tecniche di programmazione Principi base del paradigma OO Astrazione Classi ed
DettagliProgrammazione orientata agli oggetti
Programmazione orientata agli oggetti La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione che prevede di raggruppare in un unica entità (la classe)
DettagliProcedura. Procedure e funzioni. Esempio di procedura in C. Procedure in C. Esempio con prototipo. Esecuzione del codice
Procedure e funzioni In linguaggio C Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere
Dettagli18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliSpecifica: la sintassi. Specifica: la semantica. 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
DettagliBasi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati
Basi di Dati Cosa vuol dire progettare una base di dati? Il DBMS non va progettato il DBMS si acquista o esiste già è impossibile pensare di sviluppare un DBMS anni di sviluppo necessità di elevate competenze
DettagliFinestre di dialogo. Corso di Laboratorio di Programmazione Web. Controllo dell input e window.alert. prompt di stringhe!
Corso di Funzioni ed Oggetti Finestre di dialogo prompt( Inserisci il valore, 1000 ); restituisce la stringa inserita nel campo alarm( Stai per uscire! ); Dipartimento di Informatica Università degli Studi
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
DettagliIntroduzione 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
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
Dettagli