Introduzione alla Programmazione ad Oggetti in C++
|
|
|
- Dario Antonucci
- 10 anni fa
- Visualizzazioni
Transcript
1 Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente modificabili Tecnica di programmazione introdotta agli inizi degli anni 80 Principali linguaggi utilizzati sono ad oggetti C++, Java Le tecniche di progettazione più diffuse sono ad oggetti database, interfacce grafiche, protocolli di rete, applicazioni Web 1 Dati 2001/02 1
2 Idea Base della Programmazione Orientata agli Oggetti Un progetto è costituito da più oggetti che operano indipendentemente e interagiscono secondo modalità prefissate Ogni oggetto rappresenta un elemento del dominio del problema, che può rispondere a determinati stimoli provenienti dal mondo esterno ai fini della corretta interazione tra gli oggetti non è importante sapere come queste risposte vengono determinate Ogni oggetto viene implementato separatamente e indipendentemente dagli altri 2 Esempio: FIFA 2004 Calciatore Campo Stadio seleziona muovi calcia posizione scegli stadio gol Pallone para Portiere Interfaccia utente 3 Dati 2001/02 2
3 Perché la Programmazione Orientata agli Oggetti Si riesce a produrre codice più pulito ed in minor tempo Aumenta produttività del programmatore E più semplice mantenere il codice E possibile far fronte a nuove esigenze Fornisce un coerente modello di sviluppo del software Maggiori possibilità di realizzare un programma che soddisfa le esigenze del cliente 4 Maggiore Produttività La OOP (Object Oriented Programming) consente costruzione di librerie di routine che implementano funzioni comuni utilizzo delle funzioni delle librerie indipendente dalla implementazione facile adattabilità delle funzioni di libreria a differenti esigenze L utilizzo sistematico di componenti software riutilizzabili aumenta enormemente la produttività dei programmatori 5 Dati 2001/02 3
4 Mantenibilità Del Software Un programma consiste di componenti distinte ed autonome (oggetti) che interagiscono secondo interfacce ben definite dettagli della specifica localizzati negli oggetti se una parte delle specifiche viene modificata devono essere aggiornati solo gli oggetti interessati alle modifiche La localizzazione aiuta a controllare grossi progetti e ne favorisce l evoluzione 6 Modello di Sviluppo del Software La OOP fornisce un modello coerente per descrivere le esigenze del cliente e le proposte del progettista Cliente e progettista fanno riferimento alle stesse entità astratte, chiamandole con gli stessi nomi Favorisce la comunicazione tra cliente e sviluppatore ed aumenta la possibilità che il programma soddisfi le reali esigenze del cliente 7 Dati 2001/02 4
5 Il C++ Introdotto da B. Stroustrup nel 1984 all AT&T Nel definito lo standard ANSI del linguaggio e della libreria Inizialmente era C + classi Supporta la programmazione basata sugli oggetti, la programmazione orientata agli oggetti e la programmazione generica 8 Perché il C++ Il C++ è un linguaggio ibrido concilia l efficienza di un linguaggio di basso livello (C) con le potenzialità di un linguaggio ad alto livello (SIMULA) Il C++ è quasi totalmente compatibile con il C utilizzabile su tutte le piattaforme con efficienza paragonabile al C Il C++ è un linguaggio multi-stile consente di utilizzare lo stile di programmazione più adatto senza costi aggiuntivi OGNUNO PAGA SOLO PER QUELLO CHE USA 9 Dati 2001/02 5
6 Linguaggio Multi-Stile Un linguaggio di programmazione serve per specificare le azioni della macchina descrivere i concetti necessari a rappresentare le funzionalità del programma Il C++ consente di controllare la macchina a basso livello e supporta l astrazione dei dati e la OOP Supportare uno stile di programmazione significa fornire strumenti che rendono quello stile semplice ed efficiente operatori, controlli in compilazione ed esecuzione 10 Stili Supportati In C++ Procedurale Modulare Programmazione basata sugli oggetti Programmazione orientata agli oggetti Programmazione generica Il programma paga solo per le risorse che richiede 11 Dati 2001/02 6
7 Caso di Studio: il Vettore Definizione di una struttura dati Vettore Insieme di elementi, dello stesso tipo, identificabili tramite una posizione Possibilità di specificare la dimensione del vettore ed il tipo degli elementi 12 Operazioni del tipo Vettore Creare e inizializzare un vettore Lettura e scrittura di singoli elementi, individuati tramite la posizione nell insieme Controllo sulla correttezza dell indicizzazione Assegnazione di un vettore ad un altro vettore Confronto tra due vettori Ricerca di un elemento, del minimo e del massimo Ordinamento degli elementi del vettore 13 Dati 2001/02 7
8 Programmazione Procedurale 1. Definire le operazioni da eseguire 2. Individuare gli algoritmi migliori per eseguire tali operazioni Il C++ supporta la programmazione procedurale attraverso il meccanismo di chiamata a funzione 14 Problemi della Programmazione Procedurale Non facilita il riutilizzo del codice La conoscenza dei dettagli delle specifiche è distribuita in tutto il codice 15 Dati 2001/02 8
9 Implementazione di Vettore in Programmazione Procedurale Il Vettore può essere implementato tramite il tipo array insieme di elementi dello stesso tipo memorizzati sequenzialmente in memoria ed indirizzati tramite un puntatore contenente l indirizzo del primo elemento int a[10]; a[3] = 1; int i = a[0]; 16 Creazione e Inizializzazione E possibile definire e inizializzare solo vettori di dimensione costante int a[4] = {1, 2, 3, 4}; Vettori di dimensione variabile devono essere allocati dinamicamente L inizializzazione deve essere eseguita tramite ciclo for int size = 4; int *a = new int[size]; for(int i = 0; i < size; i++) a[i] = i+1; 17 Dati 2001/02 9
10 Accesso agli elementi Effettuato tramite l operatore di indicizzazione [] calcola l indirizzo dell elemento da accedere a partire dall indirizzo del primo elemento del vettore gli indici partono da 0 Il compilatore controlla solo se l indice non è negativo Il compilatore non segnala come errato un indice oltre la dimensione dell array Il programma deve provvedere a controllare l indice esplicitamente if( i < size) a[i] = 0; 18 Operazioni su Vettori Non esistono operazioni su array Ogni funzione su un vettore deve essere implementata da una funzione che accede gli elementi uno per volta Si deve passare alla funzione sia il puntatore al primo elemento che la dimensione int min(int* vett, int size); int ricerca(int* vett, int size, int x); int ordina(int* vett, int size); void assegna(int* vett1, int* vett2, int size); int confronta(int* vett1, int* vett2, int size1, int size2); 19 Dati 2001/02 10
11 Operazioni sui Vettori Si deve definire una funzione diversa per ogni tipo di vettore Non è possibile modificare il comportamento di una funzione 20 Programmazione Modulare Un modulo è Insieme di dati e di funzioni che operano su tali dati. Accesso ai dati del modulo tramite un interfaccia utente. Attenzione spostata dalle operazioni ai dati (principio del data hiding) 21 Dati 2001/02 11
12 Programmazione Modulare 1. Individuare i moduli necessari 2. Suddividere il programma in modo che i dati siano nascosti nei moduli. Il C la consente attraverso la compilazione di unità separate. Il C++ la supporta con le classi 22 Vantaggi e Svantaggi dei Moduli Vantaggi Dettagli delle specifiche confinati nei moduli Definizione di strutture dati opache (visibile solo l interfaccia ma non l implementazione) Svantaggi Moduli non flessibili 23 Dati 2001/02 12
13 Modulo Vettore organizzato su due file vettore.cc (oppure.c o.cpp) vettore.h vettore.cc contiene le definizioni delle funzioni che implementano le operazioni sui vettori vettore.h contiene i prototipi delle funzioni e le definizioni delle variabili globali e delle costanti per usare una variabile di tipo vettore si include vettore.h nel proprio programma e si linka vettore.cc Per evitare conflitti di nome tutte le definizioni vengono inserite in uno spazio dei nomi (namespace) VETTORE 24 Gestione delle Eccezioni Può accadere che un eccezione provocata da un modulo venga individuata da un altro modulo L eccezione è un comportamento che si verifica in esecuzione Il modulo che individua l eccezione non è in grado di gestirla In C++ esiste un metodo standard per gestire le eccezioni Il modulo che individua l eccezione lancia un messaggio Questo messaggio viene raccolto dalla funzione addetta che provvede a risolvere l eccezione Se il messaggio non viene raccolto il programma termina 25 Dati 2001/02 13
14 Moduli ed Astrazione dei Dati La programmazione modulare consente di definire tipi di dati astratti Un modulo di gestione X può controllare tutte la variabili di tipo X del programma L utilizzo delle funzioni dell interfaccia del modulo di gestione è indipendente dalla loro implementazione ma non supporta l astrazione dei dati Il tipo di dato creato dal modulo di gestione è sostanzialmente diverso dai tipi di dati predefiniti 26 Programmazione Basata sugli Oggetti Un linguaggio che supporta la programmazione basata sugli oggetti deve consentire di definire nuovi tipi di dato che si comportino come quelli predefiniti la programmazione basata sugli oggetti consente di definire dei tipi di dato che siano chiusi (implementazione non visibile) aperti (facilmente modificabili) 27 Dati 2001/02 14
15 La Programmazione Basata sugli Oggetti 1. Individuare i tipi di dato da utilizzare 2. Fornire l interfaccia di ciascun tipo di dato Il C++ supporta la programmazione basata sugli oggetti con le classi 28 Classe Vettore class intvettore { public: intvettore(int size); // inizializzazione intvettore(const intvettore&); ~intvettore(); // distruzione int& operator[](int); // indicizzazione bool operator==(const intvettore&) const; // uguaglianza bool operator!=(const intvettore&) const; // diseguaglianza IntVettore& operator=(const intvettore&); // assegna int size() const; // dimensione int min() const; // minimo int max() const; // massimo int ricerca(int x) const; // ricerca void ordina(); // ordinamento private: int dimensione, *a; }; 29 Dati 2001/02 15
16 Incapsulamento dei Dati La parte pubblica della classe costituisce l interfaccia pubblica L interfaccia contiene i metodi di intvettore che possono essere invocati dagli utenti della classe Ogni funzione che utilizza oggetti intvettore deve conoscere soltanto la sua interfaccia pubblica La parte privata contiene l implementazione della classe L implementazione è indipendente dalla definizione dell interfaccia e può essere cambiata senza effetti sulle funzioni che utilizzano la classe 30 Creazione e Inizializzazione E possibile definire variabili di tipo intvettore di qualunque dimensione int dim = 10; intvettore vett(dim); Una funzione può prendere come argomento e restituire come risultato variabili di tipo intvettore intvettore f(intvettore); E possibile inizializzare una variabile intvettore copiandola da un altra variabile dello stesso tipo intvettore vett2 = vett; 31 Dati 2001/02 16
17 Accesso agli elementi L accesso agli elementi del vettore è effettuato tramite l operatore [] L implementazione della funzione operator[] può essere realizzata in modo che gli indici partono da 1 (o da qualunque altro valore) È possibile impedire accessi a elementi non esistenti vett[5] = 10; vett[15] = 0; // scrittura non eseguita 32 Operazioni sui Vettori E possibile invocare una delle funzioni della classe utilizzando l operatore di selezione Lo stesso operatore utilizzato per selezionare i campi di uno struct del C int x = vett.min(); L utilizzo di queste funzioni è indipendente dalla loro implementazione Se qualcuno modifica l implementazione della funzione ordina tutti i programmi che utilizzavano tale funzione devono solo essere ricompilati con la nuova libreria 33 Dati 2001/02 17
18 Problemi della classe intvettore La classe intvettore implementa solo vettori di interi Per avere vettori di char si deve definire una nuova classe La nuova classe è identica alla precedente ma contiene char Non è possibile creare nuovi classi che modifichino alcuni comportamenti della classe Per definire la classe intvettoresorted si deve partire da zero 34 Programmazione Orientata agli Oggetti Ereditarietà definisce un tipo di dati come specializzazione di un altro tipo esistente Legame dinamico (dynamic binding) accede ad una intera gerarchia di classi attraverso una interfaccia comune e lascia al compilatore il compito di individuare a quale delle diverse implementazioni si sta facendo riferimento 35 Dati 2001/02 18
19 Programmazione Orientata agli Oggetti 1. Individuare i tipi di dati da utilizzare 2. Fornire l interfaccia di ciascun tipo di dati 3. Individuare gli elementi comuni tra i vari tipi di dati I linguaggi Object Oriented supportano la programmazione per differenze ed il polimorfismo Il C++ supporta queste tecniche con la derivazione di classi e le funzioni virtuali 36 Programmazione per Differenze Per ogni nuovo tipo di dati cerca se esistono in libreria tipi simili individua tutti gli elementi che possono essere ereditati implementa soltanto le funzioni totalmente nuove 37 Dati 2001/02 19
20 Definizione di intvettoresorted Si definisce la nuova classe intvettoresorted come derivata da intvettore Tutte le funzioni definite per intvettore vengono estese a intvettoresorted Si modifica l operatore [] per far in modo da mantenere l ordine dopo ogni modifica #include intvettore.h class intvettoresorted : public intvettore; int& intvettoresorted::operator[](int i) { } 38 Polimorfismo Il tipo di dati costruito attraverso l eredità può avere stesse funzionalità del tipo base ma con implementazioni differenti oggetti del tipo base e di quello ereditato possono essere trattati alla stessa maniera il compilatore capisce quale implementazione utilizzare void riempi(intvettore* v) { int x; for( int i = 0; i < v->dimensione; i++ ) { cin >> x; v[i] = x; } } intvettoresorted *v; riempi(v); 39 Dati 2001/02 20
21 Uso Polimorfico delle Classi intvettore e intvettoresorted Definiamo la classe intvettore in modo che Ad una funzione che ha come argomento un intvettore può essere passato sia un oggetto intvettore che intvettoresorted In esecuzione il programma capisce di che tipo è l argomento che gli è stato passato Se l argomento è di tipo intvettoresorted gli accessi vengono eseguiti con l operatore [] modificato 40 Programmazione Generica 1. Decidere quali algoritmi utilizzare 2. Parametrizzarli in modo che possano operare su un ampia gamma di tipi di dato e di strutture dati Il C++ implementa la programmazione generica con i template 41 Dati 2001/02 21
22 Template di Classe Vettore il template è un modello di classe descrive la classe senza specificare che elementi contiene il compilatore può ricavare dal modello la definizione della classe Vettore e di tutte le sue funzioni, relative ad ogni tipo di dati contenuto ogni istanza viene creata solo quando richiesto dal programma template <class T> class Vettore { }; Vettore<int> vi; Vettore<double> vd; Vettore<string> vs; 42 Template Classe Vettore template <class T> class Vettore { public: Vettore(int size); Vettore(const Vettore<T>&); virtual ~Vettore(); virtual T& operator[](int); bool operator==(const Vettore<T>&) const; bool operator!=(const intvettore<t>&) const; Vettore<T>& operator=(const Vettore<T>&); int size() const; virtual T min() const; virtual T max() const; virtual T ricerca(int x) const; void ordina(); private: int dimensione; T *a; }; // inizializzazione // distruzione // indicizzazione // uguaglianza // diseguaglianza // assegna // dimensione // minimo // massimo // ricerca // ordinamento 43 Dati 2001/02 22
23 Librerie standard del C++ Le librerie standard del C++ offrono vasto supporto alla programmazione generica (STL) Classi contenitore classi contenenti collezioni di elementi dello stesso tipo Iteratori Costrutti che permettono di accedere agli elementi di un contenitore indipendentemente da come è implementato Algoritmi generici Algoritmi parametrizzati per poter lavorare su ogni tipo di contenitore 44 La classe Vettore della libreria standard La libreria standard contiene un template vector Consente di modificare dinamicamente la dimensione del vettore Contiene solo gli operatori strettamente necessari ad accedere agli elementi begin(), end(), [], ++ Tutte le altre operazioni sono implementate da algoritmi generici che operano su contenitori vector<int> A; sort(a.begin(), A.end()); 45 Dati 2001/02 23
Lezione 1 Introduzione alla programmazione ad oggetti
Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente
Object 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
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi
Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)
12 - 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,
Approccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Inizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
Proff. Fabio Ciao e Raffaele Bortone
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro [email protected] Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate
Automazione Industriale (scheduling+mms) scheduling+mms. [email protected]
Automazione Industriale (scheduling+mms) scheduling+mms [email protected] Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Organizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi
Introduzione alla Programmazione Orientata agli Oggetti Classi, Oggetti e Messaggi Agenda 1. La metodologia di progettazione ad oggetti Concetti fondamentali: oggetti, classi, messaggi 2. I concetti fondamentali
Il Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE
SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software
costruttori 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,
Monitor. Introduzione. Struttura di un TDA Monitor
Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione
Programmazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
dall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
ISTITUTO TECNICO ECONOMICO MOSSOTTI
CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche
Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. [email protected]
Programmazione II Lezione 4 Daniele Sgandurra [email protected] 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3
Lezione 1. Introduzione e Modellazione Concettuale
Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and
Progettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
Corso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente
Pag. 1 di 15 VERS V01 REDAZIONE VERIFICHE E APPROVAZIONI CONTROLLO APPROVAZIONE AUTORIZZAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA A. Marchisio C. Pernumian 29/12/2014 M. Molino 27/02/2015 M. Molino
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
La struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
Protezione. Protezione. Protezione. Obiettivi della protezione
Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in
Automazione Industriale 4- Ingegneria del Software
Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi ([email protected]) Ingegneria Meccatronica
Concetti di base di ingegneria del software
Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza
Database. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10
Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro
A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Corso di Programmazione ad Oggetti
Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che
Laboratorio di programmazione
Laboratorio di programmazione Lezione VI Tatiana Zolo [email protected] 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di
Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione
Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni
L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo
Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,
Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)
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 Informatica 3 Lezione 7 -
Allocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
Introduzione a Classi e Oggetti
Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto
BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015
BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi
Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi
DATABASE. A cura di Massimiliano Buschi
DATABASE A cura di Massimiliano Buschi Introduzione Con Microsoft Access: Immissione dati e interrogazione Interfaccia per applicazioni e report Ma prima bisogna definire alcune conoscenze di base sui
Gestione dell account AdWords di Google Guida pratica
Gestione dell account AdWords di Google Guida pratica Benvenuti in AdWords di Google Questa guida fornisce una panoramica del Centro di controllo gestionale AdWords, l interfaccia per la gestione e il
SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.
Scheda Il CRM per la Gestione delle Vendite Le organizzazioni di vendita sono costantemente alla ricerca delle modalità migliori per aumentare i ricavi aziendali e ridurre i costi operativi. Oggi il personale
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING
Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN
Lezione 10: Librerie e compilazione separata
Lezione 10: Librerie e compilazione separata Laboratorio di Elementi di Architettura e Sistemi Operativi 16 Maggio 2012 Calendario della parte finale del corso Mer 23 Maggio ultima lezione sul C Gio 24
I puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
Linguaggi di programmazione
Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore
Parola chiave extends
Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi
GESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy [email protected] Rudimenti di programmazione Programming
Fasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
Abstract Data Type (ADT)
Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo
Sistemi informativi secondo prospettive combinate
Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da
AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema
AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web
Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
Modello di Controllo dell Accesso basato sui ruoli (RBAC)
Modello di Controllo dell Accesso basato sui ruoli (RBAC) POLITICHE RBAC Sistemi di tipo Role Based Access Control (RBAC) assegnano i privilegi non agli utenti, ma alla funzione che questi possono svolgere
Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014
Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche
Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare
Relazioni 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
IL SISTEMA INFORMATIVO
IL SISTEMA INFORMATIVO In un organizzazione l informazione è una risorsa importante al pari di altri tipi di risorse: umane, materiali, finanziarie, (con il termine organizzazione intendiamo un insieme
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected]
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected] POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
Registratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
SISTEMI OPERATIVI DISTRIBUITI
SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching
Introduzione alla Progettazione per Componenti
Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica
Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi
Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi
Strutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
Introduzione all Information Retrieval
Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information
Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci
Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme
Gestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
Librerie. Laboratorio di Informatica Antonio Monteleone 28
Librerie Una libreria è una collezione di funzioni (classi, variabili) usata per sviluppare applicazioni. Le funzioni (classi, variabili) contenute in una libreria si dicono da questa esportate. L'uso
Base di dati e sistemi informativi
Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per
