PROGRAMMAZIONE A OGGETTI (OOP) Lezione 8 prj Mesa (Prof. Ing N. Muto)
|
|
- Adolfo Fabiano Sartori
- 6 anni fa
- Visualizzazioni
Transcript
1 PROGRAMMAZIONE A OGGETTI (OOP) Lezione 8 prj Mesa (Prof. Ing N. Muto) Approfondimento EREDITARIETA' In questa lezione trattiamo il terzo ed ultimo fattore caratteristico della programmazione a oggetti, ossia la possibilità di implementare classi a partire da altre classi implementate in precedenza. Oltre al vantaggio di poter riutilizzare codice già scritto, l'ereditarietà consente una organizzazione efficientissima del codice, potendo creare delle gerarchie di classi, estendibile finché si vuole oltre semplici e veloci da manutenere. Come già anticipato nella lezione XXX la classe creata prima viene denominata classe base o madre mentre la classe derivata prende il nome di derivata o figlia e quest'ultima può diventare a sua volta classe base per una successiva classe derivata e così via. Una delle differenze del linguaggio C# con altri linguaggi OOP riguardo all'ereditarietà è che in C# una classe figlia può avere SOLO una classe base e non più di una. Rappresentando il concetto in forma grafica quindi si ha che la soluzione a sinistra è ammessa mentre quella a destra no. CLASSE BASE CLASSE BASE1 CLASSE BASE2 CLASSE DERIVATA CLASSE DERIVATA Invece è possibile per una classe base avere più classi derivate nello stesso livello.
2 La classe derivata eredita tutti i membri della classe base ma possono essere imposte delle condizioni per motivi di sicurezza e praticità usando gli stessi modificatori di accesso o visibilità già incontrati finora con l'aggiunto di uno nuovo: protected ; in particolare sono valide le regole riassunte dalla seguente tabella: Modificatore di visibilità public protected private Descrizione Le classi derivate hanno accesso a questi membri, come tutto il codice esterno alla classe. Le classi derivate hanno accesso ai membri dichiarati protected ma il codice esterno no. Le classi derivate NON hanno accesso a questi membri, così come il codice esterno. Una classe base potrebbe essere creata solo per motivi organizzativi, senza contenere nessuna implementazione di metodi, in questo caso occorre usare la parola chiave abstract, sarà poi la classe derivata a implementare i metodi in modo corretto. Ad esempio se dobbiamo creare una raccolta di codice per gestire delle figure geometriche piane, potremmo decidere per motivi organizzativi di creare una classe base FiguraGeometrica che conterrà dei metodi CalcolaArea e CalcolaPerimetro anche se di fatto non sapremo come fare a calcolarli perché abbiamo solo creato il concetto di figura geometrica, e quindi siamo rimasti ad un livello astratto appunto! Quando avremo derivato la classe Quadrilatero oppure la classe Triangolo dalla classe base, allora potremo definire il metodo CalcolaPerimetro mentre non è detto che sappiamo come calcolare l'area, per la quale dovremo aspettare di avere un ulteriore livello di derivazione, come ad esempio Rettangolo, oppure TriangoloRettangolo. In questo esempio possiamo anche capire quindi come l'ereditarietà consenta una organizzazione che dal generale scende mano a mano nello specifico, permettendo di definire in modo più dettagliato le proprietà degli oggetti derivati. Un altra situazione che potremmo avere è quella di una classe base che contiene dei metodi implementati, da cui si deriva una classe derivata che ha bisogno di personalizzare qualcuno dei metodi ereditati dalla classe base. Questo si può fare usando le parole chiave
3 virtual ed override, come vedremo nell'esempio di codice che seguirà a breve. Qui possiamo intanto anticipare che virtual si userà nella classe base in corrispondenza del metodo che potrà essere riscritto dalla classe derivata, invece override si userà nella classe derivata quando andremo a riscrivere il metodo suddetto. Per inciso possiamo notare che questa situazione altro non è se non un caso di polimorfismo, applicato all'ereditarietà. Infatti classe base e classe derivata usano sempre lo stesso nome per indicare codice differente, sarà poi il compilatore ad eseguire il giusto collegamento poiché conosce da dove è derivato l'oggetto chiamato. Ora è arrivato il momento di mettere in pratica quanto finora definito per cui decidiamo di realizzare un codice per gestire le figure geometriche piane organizzando il suo sviluppo usando le classi con l'ereditarietà. Decidiamo di partire da una classe base che rappresenti il concetto astratto di Figura Geometrica ma che contengo comunque dei dati membro, da questa deriveremo due classi figlie ossia Triangolo e Rettangolo. Successivamente dalla classe Triangolo deriveremo una ulteriore classe specializzata, ossia TriangoloRettangolo //classe base astratta per definire una figura geometrica piana public abstract class FiguraGeometrica2D //dati membro utilizzabili dalle classi derivate ma non dal codice esterno alla classe protected float Area; public float Perimetro; public int NumeroLati; //questa è un metodo astratto e si può evitare di definirne il corpo public abstract float CalcolaArea(); public FiguraGeometrica2D() Console.WriteLine("\n Stai creando una figura geometrica 2D"); //fine della classe FiguraGeometrica La classe FiguraGeometrica definisce una organizzazione, una base comune e condivisa fra tutte le figure piane che vogliamo rappresentare. Definendo una funzione abstract si può evitare di definirne il corpo. In effetti non sapremmo cosa scrivere in questo metodo perché la classe non rappresenta al momento NESSUNA figura specifica. La scritta Console.WriteLine("\n Stai creando una figura geometrica 2D"); nel costruttore è stata inserita per facilitare allo studente nel seguire le varie fasi di creazione degli oggetti. Nella prossima pagina vedremo l'esempio di una prima classe derivata, ossia la classe Triangolo.
4 public class Triangolo : FiguraGeometrica2D //definisco i dati membro per i lati //invece Area, Perimetro e NumeroLati vengono ereditate public float a; public float b; public float c; Poiché ora so che sto creando un triangolo, è corretto definire i dati membro per rappresentarne i 3 lati. //Scrivo il costruttore public Triangolo(float pa, float pb, float pc) //controlliamo che ogni lato sia minore della somma degli altri due, altrimenti il programma termina if (!((pa < pb + pc) && (pb < pa + pc) && (pc < pb + pa))) Console.WriteLine("\n I dati inseriti non consentono la creazione di un triangolo!"); Console.ReadLine(); Environment.Exit(-1); Console.WriteLine("\n Stai creando un TRIANGOLO generico"); this.a = pa; this.b = pb; this.c = pc; Perimetro = a + b + c; this.numerolati = 3; //la funzione per calcolare l'area posso scriverla usando la formula di Erone public override float CalcolaArea() float p = Perimetro / 2; Area = (float)math.sqrt(p*(p-a)*(p-b)*(p-c)); return Area; public virtual void CheckRetto() Console.WriteLine("Metodo che deve essere sovrascritto dalla classe derivata"); La parola chiave this identifica l'oggetto stesso. In questo caso avremmo anche potuto scrivere a= pa; b = pb; c = pc; Questa funzione sovrascrive quella definita nella classe base, occorre perciò avvisare il compilatore che ciò è voluto, questo si fa con la parola chiave override. Questo metodo invece è destinato ad essere sovrascritto nella classe TriangoloRetto che sarà derivato dalla classe Triangolo, per cui viene dichiarato virtual nella classe base. //fine della classe Triangolo In questo esempio vediamo quindi anche come si sovrascrive una funzione avente lo stesso nome di un'altra (altro esempio di polimorfismo) e come ci si predispone a crearne una segnaposto da far scrivere realmente alla classe figlia. Nella prossima pagina vedremo l'ultima classe derivata: TriangoloRettangolo, arrivando così a ben 3 livelli gerarchici!
5 public class TriangoloRettangolo : Triangolo public TriangoloRettangolo(float pra, float prb, float prc) : base(pra, prb, prc) //questa istruzione richiama il costruttore della classe base di TriangoloRettangolo Console.WriteLine("\n Stai creando un TRIANGOLO RETTANGOLO, i primi due lati si considerano cateti"); //In questa classe posso riscrivere il metodo per calcolare l'area public override float CalcolaArea() float A = a * b/2; return A; public override void CheckRetto() Console.WriteLine("\n Metodo della classe derivata"); if(!((a*a == b*b+c*c) (b*b == a*a+c*c) (c*c == a*a+b*b))) Console.WriteLine("\n I dati inseriti non sono di un triangolo rettangolo!"); Console.ReadLine(); Environment.Exit(-1); // fine della classe TriangoloRettangolo Notiamo che con questa notazione : base... abbiamo richiamato il costruttore della classe base di TriangoloRettangolo, che altrimenti non avrebbe potuto inizializzare correttamente l'oggetto stesso. La funzione CalcolaArea() viene come al solito sovrascritta per usare una formula specifica dell'oggetto in questione. Questa funzione sovrascrive quella definita nella classe base, occorre perciò avvisare il compilatore che ciò è voluto, questo si fa con la parola chiave override. Vediamo ora, per completezza, una classe Rettangolo creat a partire dalla classe base astratta "FiguraGeometrica"; non mettiamo alcun commento per stimolare il lettore a comprenderla da solo usando le informazioni già abbondantemente fornite negli esempi precedenti. public class Rettangolo : FiguraGeometrica2D //definisco i dati membro per i lati //invece Area, Perimetro e NumeroLati vengono ereditate public float a; public float b; //Scrivo il costruttore public Rettangolo(float pa, float pb) Console.WriteLine("\n Stai creando un RETTANGOLO "); this.a = pa; this.b = pb; Perimetro = 2*(a + b); this.numerolati = 4; public override float CalcolaArea() Area = a * b; return Area; //fine della classe Rettangolo
6 Come esercizio si propone di derivare una classe Quadrilatero dalla classe FiguraGeometrica2D e poi dalla classe Quadrilatero derivare una classe Quadrato. Aggiungiamo a questa lezione il modificatore sealed, applicabile alla dichiarazione di una classe, quando si vuole che da tale classe NON sia possibile derivarne altre: sealed class TriangoloEquilatero : Triangolo Se provassimo infatti a scrivere class TriangoloPippo : TriangoloEquilatero, il compilatore ci darebbe un messaggio in cui ci avvisa che TriangoloPippo non può derivare da TriangoloEquilatero. Anche questa è una caratteristica che risulta utile per l'organizzazione e la sicurezza del codice, specie quando il codice deve girare fra vari programmatori. Analizziamo infine il codice scritto per creare concretamente gli oggetti e vederli in azione: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ereditarieta class Program static void Main(string[] args) //Faccio scegliere all'utente le misure dei lati del triangolo Console.WriteLine("\n Inserisci i tre lati del triangolo: "); Console.Write("\n a: "); float La = Convert.ToSingle(Console.ReadLine()); Console.Write("\n b: "); float Lb = Convert.ToSingle(Console.ReadLine()); Console.Write("\n c: "); float Lc = Convert.ToSingle(Console.ReadLine()); //Creo un'oggetto Triangolo Triangolo mytg = new Triangolo(La, Lb, Lc); Console.WriteLine("\n Il perimetro vale: 0 e l'area vale: 1", mytg.perimetro, mytg.calcolaarea()); Console.ReadLine(); In questo primo "runtime" ci limiteremo a creare un triangolo generico per cui, una volta lanciato, il programma chiederà i dati e produrrà la seguente uscita: Le scritte "Stai creando... 2D" e "Stai creando..." ci mostrano i costruttori in azione.
7 azione: Modificando il main con altri oggetti, possiamo vedere la gerarchia completa di classi in static void Main(string[] args) //Faccio scegliere all'utente le misure dei lati del triangolo Console.WriteLine("\n Inserisci i tre lati del triangolo: "); Console.Write("\n a: "); float La = Convert.ToSingle(Console.ReadLine()); Console.Write("\n b: "); float Lb = Convert.ToSingle(Console.ReadLine()); Console.Write("\n c: "); float Lc = Convert.ToSingle(Console.ReadLine()); //Creo un'oggetto Triangolo Triangolo mytg = new Triangolo(La, Lb, Lc); Per il primo oggetto triangolo chiedo i lati. Inseriremo i lati di un triangolo rettangolo(3,4,5), in modo che possiamo passare tali valori direttamente al secondo oggetto, senza doverli chiedere ancora. Console.WriteLine("\n Il perimetro vale: 0 e l'area vale: 1", mytg.perimetro, mytg.calcolaarea()); //Ora creo un triangolo Rettangolo TriangoloRettangolo mytr = new TriangoloRettangolo(La,Lb,Lc); Come premesso usiamo gli stessi lati già inseriti per motivi di praticità. mytr.checkretto(); Console.WriteLine("\n Il perimetro vale: 0 e l'area vale: 1\n\n", mytr.perimetro, mytr.calcolaarea()); //Ora creo un Rettangolo Console.WriteLine("\n Inserisci base e altezza del rettangolo: "); Console.Write("\n a: "); La = Convert.ToSingle(Console.ReadLine()); Console.Write("\n b: "); Lb = Convert.ToSingle(Console.ReadLine()); In questo caso invece chiediamo i lati di un rettangolo e lo creiamo. Rettangolo myr = new Rettangolo(La, Lb); Console.WriteLine("\n Il perimetro vale: 0 e l'area vale: 1", myr.perimetro, myr.calcolaarea()); Console.ReadLine() La pagina seguente mostra l'output completo del programma, notare le scritte didattiche che indicano quando i costruttori agiscono e a chi appartengono i metodi chiamati.
8 Le tre scritte sono rispettivamente: del costruttore della classe base astratta, del costruttore della prima classe derivata Triangolo e del costruttore della seconda classe derivata TriangoloRettangolo Scritta del costruttore della classe base e del costruttore della derivata
Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
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
Dettaglipublic double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40
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. 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. 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
DettagliLaboratorio di Programmazione Lezione 1. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: cristian.delfabbro@uniud.it telefono: 0432 558676
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliESERCIZI DEL CORSO DI INFORMATICA
ESERCIZI DEL CORSO DI INFORMTIC Questa breve raccolta di esercizi vuole mettere in luce alcuni aspetti della prima parte del corso e fornire qualche spunto di riflessione. Il contenuto del materiale seguente
DettagliEsercizi sulla conversione tra unità di misura
Esercizi sulla conversione tra unità di misura Autore: Enrico Campanelli Prima stesura: Settembre 2013 Ultima revisione: Settembre 2013 Per segnalare errori o per osservazioni e suggerimenti di qualsiasi
DettagliCreare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.
Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il
DettagliLezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari
Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri
DettagliIl mandato professionale e la formazione del preventivodi massima
Il mandato professionale e la formazione del preventivodi massima Relatori: Rag. Bruno Gagliano Dott. Alessandro De Sanctis 27 ottobre 2015 Sede Ordine viale Lavagnini n.42 Software applicativo Il CNDCEC,
DettagliJava Native Interface Appunti
Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per
DettagliEsercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
DettagliARROTONDANDO FIGURE CON TRIANGOLI EQUILATERI
ARROTONDANDO Cosa succede ad accostare figure identiche una all altra? Le figure ottenute che proprietà presentano? Posso trovare un qualche tipo di legge generale? Per rispondere a questa ed altre domande
Dettagli0.1 Esercizi calcolo combinatorio
0.1 Esercizi calcolo combinatorio Esercizio 1. Sia T l insieme dei primi 100 numeri naturali. Calcolare: 1. Il numero di sottoinsiemi A di T che contengono esattamente 8 pari.. Il numero di coppie (A,
DettagliRefactoring 5 Sposta Metodo. 5 Sposta Metodo. 5 Sposta Metodo - Codice iniziale
Refactoring Un metodo sta usando più caratteristiche (attributi e operazioni) di un altra classe che non quella in cui è definito Crea un nuovo metodo con un corpo simile nella classe che il metodo usa
DettagliLa codifica. dell informazione
La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero
DettagliRiconoscere e formalizzare le dipendenze funzionali
Riconoscere e formalizzare le dipendenze funzionali Giorgio Ghelli 25 ottobre 2007 1 Riconoscere e formalizzare le dipendenze funzionali Non sempre è facile indiduare le dipendenze funzionali espresse
DettagliLogo. http://www.softronix.com/logo.html (Setup Kit)
Logo Logo è un linguaggio di programmazione essenzialmente didattico; È orientato alla creazione di grafica vettoriale, ma può essere usato per fare qualsiasi tipo di programma; MSWLogo è una versione
DettagliProcedura operativa per la gestione della funzione di formazione classi prime
Procedura operativa per la gestione della funzione di formazione classi prime Questa funzione viene fornita allo scopo di effettuare la formazione delle classi prime nel rispetto dei parametri indicati
DettagliVBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
DettagliUso applicativo pensioni S7. acura di Nadia Carlini
Uso applicativo pensioni S7 acura di Nadia Carlini PER USARE L APPLICATIVO Seguite le istruzioni precedentemente indicate vi apparirà questa maschera. Come proseguire?? Lasciare sempre come Nome Utente
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliDESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.
DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE. PIANIFICAZIONE La pianificazione è la prima fase. Questa è la più delicata
DettagliIl calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
Dettagli* in giallo le modifiche apportate rispetto alla versione precedente datata 17/04/2012
Nota Salvatempo Contabilità 22 MAGGIO 2012 * in giallo le modifiche apportate rispetto alla versione precedente datata 17/04/2012 Nuova modalità di esportazione dei dati dalla Contabilità all Unico Persone
Dettaglipublic BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }
Il Linguaggio Java Le interfacce La classe BankAccount public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double initialbalance) { balance = initialbalance; public void deposit(double
DettagliUNIVERSITÀ di ROMA TOR VERGATA
UNIVERSITÀ di ROMA TOR VERGATA Corso di Statistica, anno 00- P.Baldi Lista di esercizi. Corso di Laurea in Biotecnologie Esercizio Si sa che in una schedina del totocalcio i tre simboli, X, compaiono con
DettagliUNIWEB- GUIDA STUDENTE INSERIMENTO PIANO DEGLI STUDI ON LINE
UNIWEB- GUIDA STUDENTE INSERIMENTO PIANO DEGLI STUDI ON LINE In queste pagine vengono illustrate le procedure da seguire per l inserimento del piano degli studi tramite Uniweb per quei corsi di laurea
DettagliCome usare la piattaforma StartUp
Come usare la piattaforma StartUp Gestione del profilo personale Per rendere visibile il tuo profilo agli altri utenti: Accedi al tuo profilo Ø Personal desktop > Personal Data and Profile Aggiorna il
DettagliMatematica con il foglio di calcolo
Matematica con il foglio di calcolo Sottotitolo: Classe: V primaria Argomento: Numeri e operazioni Autore: Guido Gottardi, Alberto Battaini Introduzione: l uso del foglio di calcolo offre l opportunità
DettagliLezione 3 Progettazione di siti
Lezione 3 Progettazione di siti Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano Elementi base della progettazione di servizi
DettagliIntroduzione alle macchine a stati (non definitivo)
Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in
DettagliManuale rapido Zimbra Posta elettronica e agenda
ZIMBRA Pagina 1 Manuale rapido Zimbra Posta elettronica e agenda Zimbra è una suite di collaborazione, che permette con un solo strumento di poter accedere al proprio account di posta elettronica regionale,
DettagliAnalisi. Calcolo Combinatorio. Ing. Ivano Coccorullo
Analisi Ing. Ivano Coccorullo Prof. Ivano Coccorullo ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli possibili. Quando le situazioni diventano
DettagliModellazione Poligonale Avanzata
Informatica Grafica I Modellazione Poligonale Avanzata Il (FFD) inserisce un oggetto in una gabbia (a forma di parallelepipedo o di cilindro). Spostando i vertici della gabbia si deforma il solido in esso
DettagliNavigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog. Marco Torciani. (Seconda lezione) Unitre Pavia a.a.
Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog (Seconda lezione) Unitre Pavia a.a. 2014-2015 27/01/2015 dott. 1 In informatica l'hypertext Markup Language (HTML)
DettagliVia Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA
Via Oberdan, 4, 4808 Faenza (RA) Italy Tel.: ++9-0546-677 Fax: ++9-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA * tasti con doppia funzionalità : dipende dalla modalità di
DettagliINTRODUZIONE ALLE BASI DATI RELAZIONALI
INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE
DettagliAE RZT QSO RKPT SQZC
Laboratorio di Informatica Lezione 1: Introduzione al corso Prof. Riccardo Cassinis Dott. Marzia Tassi Siete seduti nel posto giusto? AE RZT QSO RKPT SQZC PRFGE BERTSZ KDTVSU ZQRPDE 2 1 Prima di cominciare,
DettagliSul pattern Decorator
Sul pattern Decorator 1 Introduzione Consideriamo una famosa panineria fa tre tipi di panini: al prosciutto crudo, al prosciutto cotto, al tonno. A ciascuno di questi tre tipi corrisponde un costo. Figura
DettagliSomma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi
Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38
DettagliAggiorna. La Funzione Aggiorna Listino Aggiornare Listino Pr7 / Le connessioni / Listino METEL. Aggiorna Lis no. Aggiornamento del listino
mento del listino re il listino è molto semplice e richiede poco tempo. Prima di lanciare il comando listino occorre fare attenzione al tipo di listino che si deve aggiornare. Tenere ben presente che i
DettagliSPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);
SPORTELLO DIPENDENTE - Personale amministrativo tecnico ausiliario (A.T.A.); - Personale assistente ed educatore; - Personale insegnante e coordinatori pedagogici delle scuole dell infanzia; - Personale
DettagliP a s q u a l e t t i V e r o n i c a
PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti
DettagliIntroduciamo l'uso della programmazione ad oggetti in PHP...perchè si può fare!
Introduciamo l'uso della programmazione ad oggetti in PHP...perchè si può fare! Elena M. Brambilla Technical Account Manager & Training Manager - Zend Technologies Chi sonoio.elena M. Brambilla Technical
Dettagli1 IL LINGUAGGIO MATEMATICO
1 IL LINGUAGGIO MATEMATICO Il linguaggio matematico moderno è basato su due concetti fondamentali: la teoria degli insiemi e la logica delle proposizioni. La teoria degli insiemi ci assicura che gli oggetti
DettagliGuida introduttiva su Eclipse. Ing. Marco Dell'Unto marco.dellunto@iet.unipi.it
Guida introduttiva su Eclipse Ing. Marco Dell'Unto marco.dellunto@iet.unipi.it Introduzione Eclipse è un ambiente di sviluppo (IDE) multilinguaggio e multipiattaforma scritto in Java. E Open Source. Può
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliRelease MOVIO SCMS. Versione Tutorial. Commenti Dichiarazione di copyright
Titolo Tutorial MOVIO: Multilinguismo Release MOVIO SCMS 1.00 Versione Tutorial 1.00 Data 16/02/14 Autori e affiliation Rubino Saccoccio (Gruppometa) Commenti Dichiarazione di copyright Abstract Questo
DettagliElementi di matematica finanziaria
Elementi di matematica finanziaria 1. Percentuale Si dice percentuale di una somma di denaro o di un altra grandezza, una parte di questa, calcolata in base ad un tanto per cento, che si chiama tasso percentuale.
DettagliProf.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio
Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo Calcolo Combinatorio Calcolo Combinatorio ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli
Dettagli3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.
3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,
DettagliRAPPORTI E PROPORZIONI
RAPPORTI E PROPORZIONI RAPPORTI E PROPORZIONI Definizione: Dicesi rapporto fra due numeri, preso in un certo ordine, il quoziente della divisione fra il primo di essi e il secondo. Il rapporto tra i numeri
DettagliGLI STRUMENTI PER IL DISEGNO
GLI STRUMENTI PER IL DISEGNO Gli strumenti che noi useremo sono: 1) Fogli di carta liscia di formato A3, squadrati; 2) N. 2 matite, preferibilmente micromine (una con mina H e una con mina HB); 3) Gomma
DettagliCalcolo di una Regressione lineare semplice con Excel
Calcolo di una Regressione lineare semplice con Excel Inserire i dati In un tabellone vuoto di Excel, inserire i dati di X e di Y. Ad esempio i dati della Tabella 0.1 dovrebbero essere inseriti in Excel
DettagliIL MIO PRIMO IPERTESTO CON POWERPOINT
IL MIO PRIMO IPERTESTO CON POWERPOINT 1. Realizzare la prima diapositiva 1. Dal menu File fai clic su Nuovo, quindi dalla finestra Nuova Presentazione fai clic su Da modello struttura. 2. Scegli il modello
DettagliLa disposizione estetica della lettera commerciale
La disposizione estetica della lettera commerciale Gli elementi costitutivi della lettera commerciale vengono disposti sul foglio secondo stili diversi: ogni a- zienda, infatti, caratterizza la sua immagine
DettagliLe sue caratteristiche:
I Virus Un virus, in informatica, è un software, appartenente alla categoria dei malware, che è in grado, una volta eseguito, di infettare dei file in modo da riprodursi facendo copie di se stesso, generalmente
Dettagli2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.
Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere
DettagliBILANCIO DEI VINCOLI ED ANALISI CINEMATICA
BILANCIO DEI VINCOLI ED ANALISI CINEMATICA ESERCIZIO 1 Data la struttura piana rappresentata in Figura 1, sono richieste: - la classificazione della struttura in base alla condizione di vincolo; - la classificazione
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
DettagliLaboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività
Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività Valentina Presutti (A-L) Riccardo Solmi (M-Z) Definizione del problema Modello di un dominio Si vuole
DettagliEsercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }
Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano
DettagliGli appunti di scuola24ore
Gli appunti di scuola24ore Usare la Casella combinata in un foglio EXCEL Il modello che ci si propone di creare, è finalizzato all'approfondimento della comprensione degli effetti di alcuni particolari
DettagliProgrammazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. http://www.sics.se/sicstus/ Bob Kowalski: "Algoritmo = Logica + Controllo"
Programmazione Logica Bob Kowalski: "Algoritmo = Logica + Controllo" nella programmazione tradizionale: il programmatore deve occuparsi di entrambi gli aspetti nella programmazione dichiarativa: il programmatore
DettagliPG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20
PG5 Starter Training Applicazione File System Daniel Ernst EN02 2012-02-26 Stefano Peracchi IT01 2013-05-20 Introduzione Materiale richiesto Notebook o computer Controllore PCD1 E Cavo USB Scheda «Training»
DettagliAnagrafe Nazionale Studenti aggiornamento sincronizzato. Guida Operativa
Anagrafe Nazionale Studenti aggiornamento sincronizzato Guida Operativa 1 INTRODUZIONE L'aggiornamento sincronizzato consente di riportare in tempo reale sul SIDI le modifiche operate sul programma Gestione
DettagliFunzioni condizionali
Excel Base- Lezione 4 Funzioni condizionali Sono funzioni il cui risultato è dipendente dal verificarsi o meno di una o più condizioni. Esempio: SE CONTA.SE SOMMA.SE E, O 1 Funzione SE La funzione SE serve
DettagliGrafici e Pagina web
Grafici e Pagina web Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro. Quando si crea un grafico ogni riga
DettagliProgrammazione Ricorsione
Programmazione Ricorsione Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione Cos è la ricorsione? In matematica... n! = { n (n 1)! se n > 0 1 altrimenti N = {0} {i + 1 : i N} Principio
DettagliFirenze, 20/12/2012 QUANTUM GIS STAMPA GRANDE FORMATO TRAMITE WMS
Firenze, 20/12/2012 QUANTUM GIS STAMPA GRANDE FORMATO TRAMITE WMS A cura del Servizio Sistema Informativo Territoriale ed Ambientale della Regione Toscana Il presente documento intende fornire un breve
DettagliGEOMETRIA DELLE MASSE
IL BARICENTRO GENERALITA' GEOMETRIA DELLE MASSE Un corpo può essere immaginato come se fosse costituito da tante piccole particelle dotate di massa (masse puntiformi); a causa della forza di gravità queste
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,
DettagliIl nuovo webmail dell'università degli Studi di Palermo
Il nuovo webmail dell'università degli Studi di Palermo https://webmail.unipa.it Benedetto Vassallo Sistemi Informativi di Ateneo Università degli studi di Palermo Benedetto Vassallo S.I.A. 1 Premessa:
DettagliANAGRAFE NAZIONALE CREDITI FORMATIVI. Manuale utente
ANAGRAFE NAZIONALE CREDITI FORMATIVI Manuale utente Versione 1.0.0 APRILE 2015 1. Registrazione Per accedere al Sistema è necessario avere un nome utente e una password, ottenibili mediante una semplice
DettagliApplicazione Periodo Fertile
Applicazione Periodo Fertile Periodo è un applicazione mobile che non ha valenza medica ma fornisce uno strumento utile ed intuitivo per individuare i giorni fertili e per seguire passo dopo passo i cambiamenti
DettagliCultura Tecnologica di Progetto
Cultura Tecnologica di Progetto Politecnico di Milano Facoltà di Disegno Industriale - PRESENTAZIONI - A.A. 2003-2004 2004 Power Point: : le presentazioni Una presentazione è un documento multimediale,
DettagliRisoluzione di problemi ingegneristici con Excel
Risoluzione di problemi ingegneristici con Excel Problemi Ingegneristici Calcolare per via numerica le radici di un equazione Trovare l equazione che lega un set di dati ottenuti empiricamente (fitting
DettagliManuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1
Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1 Release NOTE 1.1 Prima Versione del Manuale INDICE 1-INTRODUZIONE... 4 2- GESTIONE DEL CATALOGO PIXMANIA-PRO SU IMAIO... 5 3-Configurazione
DettagliPro memoria per la ripartizione delle spese
Pro memoria per la ripartizione delle spese Documento di lavoro post incontro del 23 e 24 novembre 2009, Roma, ad uso interno del Gruppo di lavoro Istat-Upi per la sperimentazione della contabilità ambientale
DettagliSAP Manuale del firmatario DocuSign
SAP Manuale del firmatario DocuSign Sommario 1. SAP Manuale del firmatario DocuSign... 2 2. Ricezione di una notifica e-mail... 2 3. Apposizione della firma sul documento... 3 4. Altre opzioni... 4 4.1
DettagliRifiuti LA GESTIONE DEI RIFIUTI. Rifiuti LA GESTIONE DEI RIFIUTI
Per accedere alla funzione di Gestione dei, dal Menu premere Gestione della prevenzione Quindi nell elenco delle funzioni, premere Gestione dei 1 Oppure dal Menu Ecogestione premere il bottone. In primo
DettagliPowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -
PowerDIP Software gestione presenze del personale aziendale - Guida all inserimento e gestione dei turni di lavoro - Informazioni preliminari. E necessario innanzitutto scaricare e installare l ultima
Dettagli20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist
20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist Esamina il codice seguente, eseguilo passo passo (F11) e rispondi ai quesiti: using System; using System.Collections; class Program
Dettagliper immagini guida avanzata Modificare il contenuto del foglio di lavoro Geometra Luigi Amato Guida Avanzata per immagini Excel 2000 1
Modificare il contenuto del foglio di lavoro Geometra Luigi Amato Guida Avanzata per immagini Excel 2000 1 Selezione delle celle per immagini guida avanzata La cella attiva è la B7 Selezionare una cella
DettagliIL PROGETTO QUALITA TOTALE 2007-2013
UNIONE EUROPEA IL PROGETTO QUALITA TOTALE 2007-2013 Sentirsi protagonisti per il successo del progetto Prologo 16 luglio 2009 TU IO NOI Prologo al 1 Incontro
DettagliGestione delle eccezioni in Java
Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel
DettagliCosa è importante: pom.xml Goal Plug-in Repository
Cos è Maven? Maven è un software usato principalmente per la gestione di progetti Java e build automation, ma è utile anche per gestire documentazione, report, dipendenze... Cosa è importante: pom.xml
DettagliTuaLista.it. Presentazione Festeggiato. Il bello delle liste regalo. Liste di nozze, compleanno, battesimo, comunione, cresima, laurea, ecc
TuaLista.it Il bello delle liste regalo Liste di nozze, compleanno, battesimo, comunione, cresima, laurea, ecc Presentazione Festeggiato Attivazione lista La lista regali può essere attivata in due modi:
DettagliMobile Programming. Prova scritta del 22/01/2016. Prof. De Prisco. Corso di laurea in Informatica
Corso di laurea in Informatica Mobile Prof. De Prisco Prova scritta del 22/01/2016 NOME: COGNOME: MATRICOLA: Domande Punti 1 /10 2 /10 3 /10 4 /10 5 /10 6 /10 7 /10 8 /10 9 /10 10 /10 TOTALE /100 Quesito
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliEPOD.com MAGAZZINO RICAMBI MANUALE D USO. Aggiornamento 01/05/2010 pag.1
EPOD.com MAGAZZINO RICAMBI MANUALE D USO Aggiornamento 01/05/2010 pag.1 Finalità La presente sezione si pone l obiettivo di fornire al sito/ufficio centrale uno strumento per la gestione e la condivisione
DettagliLavoro & Previdenza La circolare su temi previdenziali e giuslavoristici
Lavoro & Previdenza La circolare su temi previdenziali e giuslavoristici N. 47 11.03.2016 CU 2016: rettifiche e sanzioni In caso di dati omessi o errati si ha tempo fino a lunedì 14 marzo per reinoltrare
DettagliCliente Articolo TIPI DI SCONTO INSEGNE
Al fine di consentire una più completa e flessibile gestione dei prezzi in E-Shop, è stata implementata una nuova procedura che consente di produrre prezzi personalizzati, fornendo i due dati fon damentali
DettagliI database. Introduzione alla teoria delle basi di dati
I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database
DettagliCOSTRUZIONE DI UN APPLICAZIONE
COSTRUZIONE DI UN APPLICAZIONE Per costruire un applicazione occorre: compilare il file (o i file se più d uno) che contengono il testo del programma (file sorgente) Il risultato sono uno o più file oggetto.
DettagliIL CONCETTO DI FILE. È illecito operare oltre la fine del file.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
Dettagli