Organizzazione della lezione. Organizzazione della lezione. Lezione 3 Programmazione Object-Oriented. Oriented in Java
|
|
- Faustino Valenti
- 6 anni fa
- Visualizzazioni
Transcript
1 Organizzazione della lezione Lezione 3 Programmazione Object-Oriented Oriented in Java Vittorio Scarano Corso di Programmazione Distribuita ( ) Laurea di I livello in Informatica Università degli Studi di Salerno La programmazione orientata agli oggetti motivazioni, obiettivi e principi guida della progettazione Unified Modeling Language (UML) Alcune semplici classi Uso della classe Date e GregorianCalendar Creazione di una nuova classe (Employee) Campi e metodi statici Parametri dei metodi Costruzione di oggetti ed inizializzazione 2 Organizzazione della lezione Hardware/Software: una evoluzione sbilanciata La programmazione orientata agli oggetti motivazioni, obiettivi e principi guida della progettazione Unified Modeling Language (UML) Alcune semplici classi Uso della classe Date e GregorianCalendar Creazione di una nuova classe (Employee) Campi e metodi statici Parametri dei metodi Costruzione di oggetti ed inizializzazione 3 Hardware: progresso tecnologico velocissimo i PC di oggi erano chiamati supercomputer 20 anni fa uso di processori e memorie in moltissimi manufatti Software: di complessità sempre crescente che coinvolge team di programmatori Obiettivi contrastanti: un sistema per risolvere problemi in maniera efficiente che sia però così semplice da essere gestibile 4
2 Alcune leggi e strategie La programmazione orientata agli oggetti Hofstadter's Law: It always takes longer than you expect, even when you take Hofstadter's Law into account. Ninety-Ninety Rule of Project Schedules: The first ninety percent of the task takes ninety percent of the time, and the last ten percent takes the other ninety percent. 5 Una metodologia per costruire sistemi software: robusti adattabili e portabili riusabili Principio economico prima che informatico: Dell, Compaq, etc. contro IBM, HP, etc. McLaren, Williams contro Ferrari (anni 80) L idea: Non importa il colore del gatto, basta che acchiappi il topo Mao Tze Tung Implementazione nascosta dalla interfaccia 6 Obiettivo 1: la robustezza del software Obiettivo 2: la adattibilità del software Software robusto: I programmi hanno una vita molto lunga capace di trattare in maniera coerente con input strani Importanza nei sistemi life-critical: un fallimento: il software per il Therac-25 cancellazione di caratteri a video ma non dall input Capace di seguire richieste dell utente: Esempio: input e memorizzazione di più dati di quelli previsti Correttezza: per tutti i valori dell input, compreso i valori detti di boundary (limite) 7 Necessario trattare con la evoluzione dell ambiente aumento velocità della CPU, rete videogiochi antichi non utilizzabili sicurezza (alla aumentata connettività ) mutazioni esterne: anno 2000, Euro, etc. Software capace di evolvere con poco sforzo portabile su piattaforme diverse 8
3 Obiettivo 3: la riusabilità del software La programmazione a oggetti Sviluppo del software di qualità: Il programma è costituito da oggetti costoso veloce Necessario poter riutilizzare il software già scritto importanza del lavoro cooperativo Riusabilità fatta con sicurezza la specifica precisa delle componenti da riutilizzare permette di evitare possibili errori scelti tra quelli disponibili o creati ex-novo che espongono delle funzionalità la cui implementazione si ignora Confronta con programmazione strutturata: algoritmi per risolvere problemi (funzioni) (poi) memorizzazione dati in strutture dati La OOP inverte l ordine: la organizzazione dei dati precede la scelta delle funzionalità 9 10 Caratteristiche chiave della OOP Il vocabolario della OOP: le classi Ogni oggetto è responsabile delle azioni correlate ai dati che contiene un oggetto può manipolare i propri dati ma non deve (dovrebbe) mai manipolare i dati degli altri. Un oggetto espone dei metodi: funzioni che permettono di accedere ai dati nella maniera corretta. Chi (o cosa) usa un oggetto ignora i dettagli della implementazione 11 Classe: modello (schema) secondo il quale un oggetto verrà creato (istanziato) Tutto quanto è disponibile in Java è in una classe: la libreria standard fornisce di tutto, di più anche i nostri programmi sono in una o più classi necessaria una accurata progettazione OOP Principi guida della progettazione OOP: Astrazione Incapsulamento Modularità 12
4 Principio 1: Astrazione Descrizione formale delle caratteristiche fondamentali di un sistema nomi e funzionalità Sufficientemente dettagliata per il comportamento sufficientemente astratta (ad alto livello) per non includere dettagli non necessari Astrazione alla progettazione di strutture dati: Abstract Data Types (ADT) modello matematico di organizzazione dei dati specifica tipo di dati, operazioni, e parametri delle operazioni cosa fa non come lo fa (interfaccia (interface Java)) realizzata da una classe Java 13 Principio 2: Incapsulamento (Information hiding) Le componenti del sistema non devono rivelare dettagli sulle implementazioni interne Concede la libertà al programmatore: le scelte implementative possono essere cambiate solo necessario mantenere la interfaccia verso l esterno L incapsulamento permette la adattabilità necessario solamente cambiare implementazione interna alla classe L incapsulamento permette la riusabilità riuso di componenti con implementazione non nota 14 Principio 3: Modularità Un esempio di gerarchia is a Struttura organizzata in cui componenti diverse di un sistema sono diverse in unità funzionali separate. Esempio: una casa suddivisa in: unità elettrica unità di riscaldamento e raffreddamento unità idraulica unità strutturale (mura) Di norma, strutturata in maniera gerarchica: definizioni simili vengono raggruppate a livelli dallo specifico verso il generale gerarchia is a ( è un ) Edifici Appartamenti Case Commerciali In parchi In edifici A 2 piani Basse Grattacieli 15 16
5 Il vocabolario della OOP: gli oggetti Progettare con oggetti Tre caratteristiche fondamentali: Identificare le classi ed i metodi da applicare il comportamento dell oggetto: quali metodi possono essere applicati? lo stato dell oggetto: come reagisce l oggetto? l identità dell oggetto: come si distingue l oggetto tra altri oggetti simili? Tutti gli oggetti istanza della stessa classe: hanno lo stesso comportamento differiscono di solito nello stato differiscono sempre nella identità 17 nella programmazione procedurale si definivano prima gli algoritmi e poi la struttura dati Nella fase di progettazione, si arriva ad una descrizione del problema in linguaggio naturale Una regola empirica da applicare : nella descrizione in linguaggio naturale del problema i sostantivi sono le classi i verbi sono i metodi 18 Progettare con oggetti: un esempio Relazioni tra classi Per elaborare ordini in un magazzino merci: Le classi possono essere: Articolo (Item) Ordine (Order) Indirizzo per la spedizione (Shipping Address) Pagamento (Payment) Conto (Account) I metodi possono essere: Aggiungere un articolo (add) ad un ordine Spedire (ship) o annullare (cancel) un ordine Un pagamento viene applicato (apply) ad un ordine Tra le tante relazioni possibili, le più importanti: Dipendenza Aggregazione Ereditarietà Le relazioni tra classi formano un diagramma delle classi usato per modellare il sistema software da progettare 19 20
6 Relazioni: Dipendenza Relazioni: Aggregazione ed ereditarietà La relazione più comune e generale: Aggregazione: una classe A dipende da un altra classe B se gli oggetti di A devono accedere a metodi degli oggetti di B Esempio: gli oggetti della classe Order devono necessariamente usare oggetti della classe Account controllano lo stato del conto del cliente prima di effettuare la spedizione gli oggetti della classe Item, invece, non devono accedere a oggetti della classe Account. un oggetto della classe A contiene oggetti della classe B esempio: un oggetto della classe Order contiene oggetti della classe Item Ereditarietà relazione tra una classe più specializzata ed una più generale esempio: una classe RushOrder (ordine urgente) specializza (eredita) da una classe Order eredita metodi ma ha suoi propri metodi specifici Un esempio sulla ereditarietà Organizzazione della lezione Una classe Persona che ha: stato: nome, cognome, annodinascita metodi: getcognome(), getnome(), dimmieta() Una classe Studente specializza Persona aggiungendo allo stato: matricola, scuola, classe, sezione, voti, etc. metodi: annodidiploma(), votomaturità(), etc. In questa maniera Studente eredita i metodi di Persona La programmazione orientata agli oggetti motivazioni, obiettivi e principi guida della progettazione Unified Modeling Language (UML) Alcune semplici classi Uso della classe Date e GregorianCalendar Creazione di una nuova classe (Employee) Campi e metodi statici Parametri dei metodi Costruzione di oggetti ed inizializzazione 23 24
7 Unified Modeling Language Le relazioni tra classi in UML (1) Un linguaggio per specificare, visualizzare costruire e documentare le componenti di un sistema software UML definisce una ampia varietà di diagrammi: diagrammi di classe diagrammi di collaborazione diagrammi di stato Notazione simbolica per rappresentare le relazioni tra classi in maniera semplice, chiara e completa Dipendenza una classe A dipende da un altra classe B se gli oggetti di A devono accedere a metodi degli oggetti di B Esempio: gli oggetti della classe Order devono necessariamente usare oggetti della classe Account Order Account Le relazioni tra classi in UML (2) Le relazioni tra classi in UML (3) Aggregazione: Ereditarietà un oggetto della classe A contiene oggetti della classe B Esempio: un oggetto della classe Order contiene oggetti della classe Item Order Item relazione tra una classe più specializzata ed una più generale Esempio: una classe RushOrder (ordine urgente) specializza (eredita) da una classe Order Order RushOrder 27 28
8 Un esempio in UML: Programmazione OO e procedurale (1) Programmazione procedurale Classe Persona Studente TasseScolastiche Due tecniche: top-down: raffinamento graduale di operazioni in operazioni più piccole e semplici fino alla codifica in un linguaggio bottom-up: scrittura procedure per compiti semplici e loro composizione per ottenere la funzionalità desiderata Di solito, utile una miscela delle due tecniche: provvedere ad una prima analisi top-down con scrittura del codice e composizione bottom-up Programmazione OO e procedurale (2) Alcune domande Caratteristica: identificazione ed isolamento delle classi (e solo dopo) identificazione dei metodi delle classi Vantaggi: modularizzazione in maniera indipendente lavoro per team di programmatori identificazione e raggruppamento chiaro dei metodi invece di 2000 funzioni, si hanno 100 classi con 20 metodi Una buona programmazione procedurale è in effetti programmazione orientata agli oggetti? in effetti, scomporre ed isolare le funzioni ed evitare variabili e dati globali è una buona tecnica, indipendentemente dalla metodologia usata Si può programmare ad oggetti con un linguaggio che non sia object-oriented? posso evitare di imparare Java o C++ e continuare a usare il C? 31 32
9 Ed alcune risposte (parziali) Organizzazione della lezione Una buona programmazione procedurale è in effetti programmazione orientata agli oggetti? Il vantaggio di avere la classe e di usarla per avere più oggetti dello stesso tipo non può essere ottenuto in un linguaggio procedurale Si può programmare ad oggetti con un linguaggio che non sia object-oriented? Si, così come è possibile inchiodare un chiodo usando un cacciavite invece di un martello. (sarebbe No ) La programmazione orientata agli oggetti motivazioni, obiettivi e principi guida della progettazione Unified Modeling Language (UML) Alcune semplici classi Uso della classe Date e GregorianCalendar Creazione di una nuova classe (Employee) Campi e metodi statici Parametri dei metodi Costruzione di oggetti ed inizializzazione Oggetti e variabili oggetto La classe Date Per lavorare con gli oggetti I costruttori hanno sempre lo stesso nome della classe si deve costruirli specificando lo stato iniziale In Java esistono i costruttori un metodo speciale offerto dalla classe che permette di costruire, inizializzandone il valore, nuovi oggetti Un esempio: la classe Date Un commento: perché si ritiene di usare una classe e non un tipo predefinito (come in alcuni linguaggi)? Per costruire un nuovo oggetto si combina il costruttore con l operatore new new Date() Cosa si fa dell oggetto creato? lo si può passare a un metodo: si può invocarne un metodo: si assegna ad una variabile: System.out.println(new Date()); String s = new Date().toString(); Date compleanno = new Date(); perché una classe è modificabile, un tipo primitivo no
10 Variabili di riferimento (reference( reference) Classe Date Le variabili oggetto contengono riferimenti a oggetti, non oggetti l operatore new restituisce un riferimento all oggetto creato possibili assegnarle a null per indicare che non fa riferimento ad alcun oggetto la copia di variabili oggetto effettua la copia dei riferimenti non degli oggetti Date compleanno = new Date(); Date scadenza = compleanno; compleanno scadenza Date 37 Memorizza un punto temporale: implementazione: numero (positivo o negativo) di millisecondi trascorsi dalla epoch 1 gennaio 1970 Greenwich Mean Time La progettazione object-oriented: un esempio una descrizione di data (31 dicembre 1976, 23:59:59) è una convenzione arbitraria disciplinata da un calendario il calendario è quello gregoriano (esistono anche quello ebraico, cinese etc.) separazione tra il tempo (Date) e la rappresentazione mediante convenzioni (GregorianCalendar) possibile usare altri calendari 38 Uso di Date e GregorianCalendar Uso di GregorianCalendar Classe Date : pochi metodi metodo before e after: if (today.before(compleanno)) System.out.println ( Comprare il regalo! ); else System.out.println ( Troppo tardi: un altra figuraccia! ); Classe GregorianCalendar : molti metodi e costruttori GregorianCalendar s1 = new GregorianCalendar(); //data e ora della costruzione GregorianCalendar s2 = new GregorianCalendar(1999,11,31); GregorianCalendar s3 = new GregorianCalendar(1999,Calendar.DECEMBER,31); GregorianCalendar s4 = new GregorianCalendar(1999,Calendar.DECEMBER,31, 23, 59, 59); Metodo get preleva informazioni da un oggetto uso di costanti Metodo set GregorianCalendar now = new GregorianCalendar(); int mese = now.get(calendar.month); int giorno = now.get (Calendar.DAY_OF_WEEK); modifica lo stato di un oggetto GregorianCalendar Metodo add scadenza.set(2001, Calendar.April, 15); scadenza.add(calendar.month, 2); //sposta avanti di 2 mesi 39 40
11 Alcuni commenti Conversione tra Date e GregorianCalendar Metodi di modifica Conversione da GregorianCalendar a Date cambiano lo stato dell oggetto (Es. set, add ) Metodi di accesso leggono lo stato dell oggetto (Es. get) Convenzione in Java: i metodi di modifica iniziano con set i metodi di accesso iniziano con get Esempio: metodo settime e gettime 41 GregorianCalendar now = new GregorianCalendar(); Date ora = now.gettime(); Conversione da Date a GregorianCalendar GregorianCalendar now = new GregorianCalendar(); now.settime(ora); int anno = now.get(calendar.year); Maggiori dettagli l esempio CalendarTest.java (pag ) la nota API a pag. 136 del libro 42 Costruzioni di classi personalizzate Definizione di una classe Definizioni di classi più complesse In generale: con più metodi e costruttori di norma senza il metodo main Una convenzione importante (in Java): si definiscono prima i metodi di una classe la sua interfaccia verso l esterno e poi si definiscono i campi (stato) della classe Esempio: definizione di una classe Employee (impiegato) con metodi per il nome, il salario (aumenti etc.), data di assunzione etc. 43 class NomeDellaClasse { costruttore 1 (..) costruttore 2 (..) metodo 1 (..) metodo 2 (..) campo 1 campo 2 44
12 Definizione di una classe Employee Definizione di una classe EmployeeTest Employee.java import java.util.*; // per Date e Calendar // costruttore public Employee (String n, double s, int year, int month, int day) { name = n; salary = s; GregorianCalendar cal = new GregorianCalendar(year, month-1, day); hireday = cal.gettime(); public String getname () { return name; private String name; private double salary; private Date hireday; Il costruttore stesso nome della classe assegna i campi dell oggetto che costruisce Un metodo di accesso restituisce il nome Campi della istanza una stringa (Nome) un double (salario) data di assunzione tutti campi privati 45 EmployeeTest.java import java.util.*; public class EmployeeTest { public static void main (String [ ] args) { Employee[ ] staff = new Employee [ 3 ] ; staff [0]=new Employee ( Gianni, 30000, 1987, 12, 10); staff [1]=new Employee ( Giorgio, 35000, 1985, 10, 31); staff [2]=new Employee ( Ugo, 28000, 2000, 1, 1); for (int i=0; i< staff.length; i++) System.out.println ( Nome: + staff[i].getname() + Salario: + staff[i].getsalary() + Assunto: + staff[i].gethireday() ); Dichiarazione di array di Employee Assegnazione: uso del costruttore Stampa dei dati inseriti uso di metodi getsalary() e gethireday() definiti in maniera simile a getname() (vedi libro) 46 Compilazione ed esecuzione Java è dinamico, vero? C:\>javac Employee.java C:\>javac EmployeeTest.java C:\>java EmployeeTest Nome:Gianni Salario: Assunto:Thu Dec 10 Nome:Giorgio Salario: Assunto:Thu Oct 31 Nome:Ugo Salario: Assunto:Sat Jan 01 C:\> La classe Employee viene caricata dalla macchina virtuale durante la esecuzione Facciamo una prova: modifichiamo il costruttore in modo da inserire un salario negativo (il valore negativo del salario passato dal costruttore!) ricompiliamo la classe Employee eseguiamo senza ricompilare EmployeeTest e 47 48
13 Compilazione ed esecuzione Una descrizione in UML C:\>javac Employee.java C:\>javac EmployeeTest.java C:\>java EmployeeTest Nome:Gianni Salario: Assunto:Thu Dec 10 Nome:Giorgio Salario: Assunto:Thu Oct 31 Nome:Ugo Salario: Assunto:Sat Jan 01 C:\>javac Employee.java C:\>java EmployeeTest Nome:Gianni Salario: Assunto:Thu Dec 10 Nome:Giorgio Salario: Assunto:Thu Oct 31 Nome:Ugo Salario: Assunto:Sat Jan 01 C:\> 49 Modificatori di accesso -= privato + = pubblico EmployeeTest «misc» + main (String [ ] args) Nome della classe Metodi delle istanze Employee - name : String - salary : double - hireday : Date «constructor» +Employee(n: String, s:double, year: int, month: int, day: int) «misc» + getname() : String + getsalary() : double + gethireday() : Date + raisesalary(percent double) Variabili delle istanze 50 Alcuni commenti sui costruttori Un tipico errore nei costruttori Costruttore: metodo con lo stesso nome della classe Attenzione: un costruttore può essere chiamato solamente con l operatore new una classe può avere più costruttori un costruttore può accettare zero, uno o più parametri un costruttore non restituisce un valore public Employee (String n, double s, int year, int month, int day) { String name = n; double salary = s; Date hireday = new GregorianCalendar(year, month-1,day); private String name; private double salary; private Date hireday; Dove è l errore? stiamo oscurando con variabili locali al costruttore i campi della istanza: 51 52
14 Il metodo raisesalary() I parametri di raisesalary() Per poter modificare il salario di un dipendente Implementato così: Chiamato così: public void raisesalary (double percent) { double raise = salary * percent/100; // calcolo aumento salary += raise; // aggiorno stipendio private String name; private double salary; private Date hireday; Employee e = new Employee ( tizio, 1000, 1998, 12, 1); e.raisesalary(5.3); 53 public void raisesalary (double percent) Un parametro esplicito (percent) ed uno implicito (l oggetto che figura prima della chiamata del metodo) e.raisesalary(5.3); Ci si può riferire al parametro implicito con this public void raisesalary (double percent) { double raise = this.salary * percent/100; // calcolo aumento this.salary += raise; // aggiorno stipendio 54 L importanza della privatezza dei dati Un esempio con la classe Employee Campi privati (name, salary, hireday) accesso esclusivamente attraverso i metodi (pubblici) Se si riscontrano errori: si conosce esattamente quali sono i metodi che modificano i campi che si trovano all interno della classe Si può modifica la implementazione semplicemente modificando i metodi Eventuali errori di assegnazione possono essere riconosciuti dai metodi (salario < 0) 55 Ricordiamo che: public void raisesalary (double percent) { double raise = salary * percent/100; // calcolo aumento salary += raise; // aggiorno stipendio private String name; private double salary; private Date hireday; il metodo raisesalary è pubblico mentre il campo salary è privato 56
15 Un errore evitato a tempo di compilazione!! Accesso dei metodi ai dati privati Sarebbe possibile scrivere in EmployeeTest: public class EmployeeTest { public static void main (String [ ] args) { Employee[ ] staff = new Employee [ 3 ] ; staff[0].raisesalary(5.3); // ok, accesso con metodo pubblico // poi, per errore Morale: staff[0].salary = 1000; // NO! errore IN COMPILAZIONE! non dichiarare campi istanza pubblici campo ma fornire la implementazione di metodi getcampo(), setcampo() per l accesso al campo 57 Una caratteristica sorprendente: i metodi di un oggetto accedono ai dati privati di tutti gli oggetti della stessa classe Esempio: boolean equals (Employee other) { return name.equals(other.name); il metodo equals() accede al campo name sia dell oggetto a cui appartiene sia al campo privato dell oggetto Employee other 58 Metodi privati Organizzazione della lezione Pratica di buona programmazione: I campi istanza sono privati ed i metodi pubblici Eccezione: metodi privati che suddividono il codice in moduli indipendenti (usati solo da altri metodi della classe) possibile cambiarlo senza preoccuparsi di chi lo usa: solamente i metodi della classe lo usano Campi di istanza final tipo di campo in cui il valore assegnato dal costruttore non può essere cambiato. Esempio: il nome di un impiegato String final name; 59 La programmazione orientata agli oggetti motivazioni, obiettivi e principi guida della progettazione Unified Modeling Language (UML) Alcune semplici classi Uso della classe Date e GregorianCalendar Creazione di una nuova classe (Employee) Campi e metodi statici Parametri dei metodi Costruzione di oggetti ed inizializzazione 60
16 Campi statici L uso di campi statici Una variabile statica (di classe) è una variabile di cui ne esiste solamente una copia per tutta la classe Esempio: supponiamo di voler assegnare un campo ID ad ogni impiegato della classe Employee aggiungiamo: una variabile di istanza (per ogni singolo impiegato) id una variabile statica (per tutti gli oggetti della classe) nextid che viene inizializzata (1 volta) ad 1. private int id; private static int nextid = 1; 61 Implementiamo un metodo per assegnare l id: public void setid() { id = nextid++; private int id; private static int nextid = 1; Così dopo ogni chiamata di setid() il prossimo dipendente prenderà una nuova id. 62 La nuova versione di Employee La nuova classe EmployeeTest Employee.java import java.util.*; public void setid() { id = nextid++; public int getid () { return id; // campi delle istanze della classe private String name; private double salary; private Date hireday; private int id; private static int nextid = 1; Due nuovi metodi: uno per settare l Id l altro per leggerla Il campo id risulta essere privato: accesso solo tramite setid() e getid() Il campo nextid static (unico per tutta la classe) viene incrementato ogni volta che l id è usato da un impiegato 63 EmployeeTest.java import java.util.*; public class EmployeeTest { public static void main (String [ ] args) { Employee[ ] staff = new Employee [ 3 ] ; staff [0]=new Employee ( Gianni, 30000, 1987, 12, 10); staff [1]=new Employee ( Giorgio, 35000, 1985, 10, 31); staff [2]=new Employee ( Ugo, 28000, 2000, 1, 1); for (int i=0; i< staff.length; i++) { staff[i].setid(); System.out.println ( Nome: + staff[i].getname() + Salario: + staff[i].getsalary() + Assunto: + staff[i].gethireday() + Id: + staff[i].getid() ); Per ogni staff setto la ID questo fa incrementare nextid (campo statico) alla stampa, l id sarà 1,2,3 per i tre impiegati 64
17 Costanti statiche Metodi statici Le costanti statiche sono abbastanza comuni classicamente in Math vengono definiti valori utili Tipicamente le costanti statiche sono allo stesso tempo public e final: questo va bene: risultano accessibili solamente in lettura (di fatto) non essendo modificabili Altri esempi di costanti: la codifica intera dei mesi nella classe Calendar public class Math { public static final double PI = ; 65 Sono metodi che non operano su oggetti (non hanno parametri impliciti) Esempio: i metodi messi a disposizione da Math Math.pow(x,y) Non è necessario chiamare il metodo statico da un oggetto basta chiamare il metodo con il nome della classe I metodi statici possono accedere solo ai campi statici: public static int getnextid() { return nextid; 66 Metodi statici particolari Organizzazione della lezione Metodi fabbricatori metodi che pur non essendo costruttori restituiscono un oggetto della classe Metodo main () permette la esecuzione di un programma associato ad una classe spesso utile aggiungere un metodo main ad una classe anche se non si userà perché può servire per testare il comportamento della classe esempio: si può aggiungere un main di test a Employee La programmazione orientata agli oggetti motivazioni, obiettivi e principi guida della progettazione Unified Modeling Language (UML) Alcune semplici classi Uso della classe Date e GregorianCalendar Creazione di una nuova classe (Employee) Campi e metodi statici Parametri dei metodi Costruzione di oggetti ed inizializzazione 67 68
18 Parametri dei metodi Il passaggio di parametri in Java Passaggio di parametri: per valore il valore del parametro attuale viene copiato nel parametro formale le modifiche effettuate dal metodo non hanno effetto sulla variabile passata al metodo (parametro attuale) per riferimento il metodo riceve la locazione di memoria della variabile le modifiche effettuate dal metodo sono effettuate sulla variabile passata al metodo (parametro attuale) Poiché le uniche variabili non di riferimento sono quelle dei tipi primitivi: tutte i passaggi di parametri di variabili di tipo primitivo sono fatti per valore tutti i passaggi di parametri di oggetti sono fatti passando per valore la variabile riferimento (per i puristi) questo non è un passaggio per riferimento ad esempio non si può fare lo swap Alcuni metodi statici in EmployeeTest L overloading dei metodi EmployeeTest.java import java.util.*; public class EmployeeTest { public static void triplesalary (Employee x) { x.raisesalary (200); public static void main (String [ ] args) { Employee[ ] staff = new Employee [ 3 ] ; // creazione dei tre impiegati triplesalary (staff[1]); // metodo statico for (int i=0; i< staff.length; i++) { staff[i].setid(); System.out.println ( Nome: + staff[i].getname() + Salario: + staff[i].getsalary() + Assunto: + staff[i].gethireday() + Id: + staff[i].getid() ); Definizione metodo statico passaggio di parametri di una variabile di riferimento le modifiche fatte a x sono fatte a staff[1] Stampa degli impiegati 71 È possibile avere più metodi con lo stesso nome utile per gestire (ad esempio) costruttori diversi Come capisce il compilatore quale metodo usare? ogni metodo ha una sua firma: la sequenza di nome ed il tipo (e la successione) dei parametri passati ad esempio, la classe String ha 4 metodi indexof indexof (int) indexof (int, int) indexof (String) indexof (String, int) 72
19 Costruttori predefiniti Inizializzazione di campo esplicita Solo se non si costruisce una classe senza costruttori, allora viene fornito (dal compilatore) il costruttore predefinito (senza parametri) altrimenti si inserisce esplicitamente, se lo si vuole public Employee () { // costruttore vuoto 73 I campi possono essere esplicitamente inizializzati: private String qualifica = Impiegato ; anche eventualmente con chiamate a metodi della classe: static int assignid() { int r = nextid++; return r private int id = assignid(); 74 Blocchi di inizializzazione Blocchi di codice inseriti nella classe eseguiti ogni volta che viene creato un oggetto public Employee (String n, double s) { name = n; salary = s: { // blocco di inizializzazione id = nextid; nextid++; private String name; private double salary; private int id; private static int nextid=1; 75
Ingegneria 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 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
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
DettagliUnità 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
DettagliSistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
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)
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
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
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
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
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
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
DettagliUD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
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
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
DettagliLe aree dell informatica
Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
Dettagli7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi
7 Disegni sperimentali ad un solo fattore Giulio Vidotto Raffaele Cioffi Indice: 7.1 Veri esperimenti 7.2 Fattori livelli condizioni e trattamenti 7.3 Alcuni disegni sperimentali da evitare 7.4 Elementi
DettagliAnalisi e diagrammi di struttura: esercizi
Analisi e diagrammi di struttura: esercizi Angelo Di Iorio A.A. 2013-2014 Ingegneria del Software () Analisi e diagrammi di struttura: esercizi A.A. 2013-2014 1 / 18 Modello di dominio e classi di analisi
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
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
DettagliACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.
ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla
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
DettagliFiles in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007
Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)
DettagliIl sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.
PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,
DettagliV. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1
Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,
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
Dettagli18/05/2016 MANUALE UTENTE
18/05/2016 MANUALE UTENTE Indice dei contenuti 2 1. ACCESSO AL SISTEMA PAGOINRETE... 3 2. HOME PAGE... 4 3. RICHIEDI ASSISTENZA... 5 4. SERVIZI DI PAGAMENTO... 6 5. VISUALIZZA CONDIZIONI CONTRATTUALI PSP...
DettagliUniversità per Stranieri di Siena
Università per Stranieri di Siena Certificazione CILS Manuale istruzioni ISCRIZIONI ON-LINE Manuale per ISCRIZIONE ON-LINE ESAMI DITALS Passo 1. Collegamento al sito Collegarsi all indirizzo: http://online.unistrasi.it/logincils.htm
DettagliM n a u n a u l a e l e o p o e p r e a r t a i t v i o v o Ver. 1.0 19/12/2014
Ver. 1.0 19/12/2014 Sommario 1 Introduzione... 3 1.1 Aspetti funzionali NtipaTime... 3 2 Accesso al sistema... 4 2.1 Riservatezza dei dati login Utente... 4 2.2 Funzionalità Role_user... 5 2.2.1 Struttura
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
DettagliWINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni
WINDOWS95 1. Avviare Windows95 Avviare Windows95 non è un problema: parte automaticamente all accensione del computer. 2. Barra delle applicazioni 1 La barra delle applicazioni permette di richiamare le
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
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
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
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
DettagliVoipExperts.it - CISCO <=> AVAYA
In questo articolo ci occuperemo di mettere in comunicazione (trunk) un centralino Avaya Ip Office con il call manager di Cisco usando come protocollo H323. Per i test in laboratorio, sono stati usati
DettagliMinistero della Salute
Ministero della Salute DIREZIONE GENERALE DELLA PROGRAMMAZIONE SANITARIA UFFICIO V FAQ ANAGRAFE FONDI SANITARI DOCUMENTI, DATI E INFORMAZIONI DA INSERIRE NEL SIAF 1. Quando si richiede il profilo per accedere
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
DettagliIl file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
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
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
DettagliIntroduzione al NATTING
Introduzione al NATTING I Router CISCO sono in grado di svolgere funzioni proprie di un firewall, in particolare possono effettuare la trasformazione degli indirizzi IP PRIVATI usati dai pc della rete
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
Dettagli1 Considerare la seguente descrizione del processo di prestito dei libri di una biblioteca, per il quale si vuole progettare un software:
1 Considerare la seguente descrizione del processo di prestito dei libri di una biblioteca, per il quale si vuole progettare un software: Un testo può essere composto da uno o più tomi. Ogni tomo ha una
DettagliIntroduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:
Introduzione Questo libro, espressamente rivolto ai programmatori esperti in Java, tratta gli elementi essenziali della piattaforma Java 2 Enterprise Edition (J2EE) e analizza in modo particolare le nuove
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»
Dettaglitesto Saveris Web Access Software Istruzioni per l'uso
testo Saveris Web Access Software Istruzioni per l'uso 2 1 Indice 1 Indice 1 Indice... 3 2 Descrizione delle prestazioni... 4 2.1. Utilizzo... 4 2.2. Requisiti di sistema... 4 3 Installazione... 5 3.1.
DettagliCorso di Informatica
CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Immagini in movimento 2 Immagini in movimento Memorizzazione mediante sequenze di fotogrammi.
DettagliMateriale didattico. Sommario
Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
DettagliB2B. Manuale per l utilizzatore.
B2B Manuale per l utilizzatore. Pag.1 di 9 Accesso al portale Dal sito istituzionale di (www.safesafety.com) si accede alla sezione e-commerce B2B cliccando sull omonima icona. E anche possibile accedere
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
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
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
DettagliNote_Batch_Application 04/02/2011
Note Utente Batch Application Cielonext La Batch Application consente di eseguire lavori sottomessi consentendo agli utenti di procedere con altre operazioni senza dover attendere la conclusione dei suddetti
DettagliCanzone. PER DIMENTICARE degli ZERO ASSOLUTO. Piano per una lezione.
Canzone. PER DIMENTICARE degli ZERO ASSOLUTO. Piano per una lezione. moryama Livello: da pre-intermedio in su Tempo: 2 ore circa Obiettivi: scrivere una lettera con formule di scusa e di auguri; praticare
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
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
DettagliECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.6 Aspetti giuridici. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.
ECDL CORE 5.0 Modulo 1 Concetti di base dell ICT Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s. 2012/2013 Scopi del Modulo 1 Concetti di base dell ICT, richiede che il candidato comprenda
DettagliSISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI
1/10 SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI 2/10 ARCHITETTURA DI SISTEMA Il sistema è basato su una rete di stazioni di ricarica, con configurazione e tipologia
DettagliManutenzione periodica al PIANO DEI CONTI
Manutenzione periodica al PIANO DEI CONTI La nuova gestione Utilità Piano dei Conti Premessa... 2 La creazione di un nuovo sottoconto... 3 1. Nuovo sottoconto tramite duplica da piano dei conti standard...
DettagliRICHIESTA CERTIFICATO DI AGIBILITÀ IMPRESE CHE OCCUPANO LAVORATORI DEL SETTORE DELLO SPETTACOLO
RICHIESTA CERTIFICATO DI AGIBILITÀ IMPRESE CHE OCCUPANO LAVORATORI DEL SETTORE DELLO SPETTACOLO MANUALE UTENTE Data di consegna 15/05/2015 Versione 1.0 - Pag. 1 1. Introduzione... 3 2. Scopo del documento...
DettagliLiceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE
Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE a.s. 2015/16 CLASSE 2^ ASA Indirizzo di studio Liceo scientifico Scienze Applicate Docente Disciplina
Dettagli(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
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
DettagliMANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)
UNIVERSITA DEGLI STUDI DI MACERATA AREA PERSONALE SETTORE P.T.A. Ufficio presenze e affari generali P.T.A. MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione) Ufficio presenze affari generali
DettagliUso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi
Uso degli oggetti Uso di oggetti predefiniti attraverso l'invio di messaggi. Il concetto di metodo; argomenti e restituzione di valori; segnatura e prototipo di un metodo. Il concetto di overloading. Le
DettagliIl comando provoca il salvataggio dello stato e la terminazione dell esecuzione.
Scrivere un programma per la gestione di una videoteca. Il programma deve essere in grado di tenere traccia dello stato corrente (presente/in prestito a x/smarrito da x/danneggiato da x a livello nn) e
DettagliALBO PRETORIO WEB MANUALE DI GESTIONE
ALBO PRETORIO WEB MANUALE DI GESTIONE Demos Data S.r.l. INDICE 1. Accesso all area riservata 2. Inserimento di una nuova pubblicazione con allegati 2.1 Nuova pubblicazione 2.2 Allegare documenti 3. Modifica
DettagliManuale utente Soggetto Promotore Erogatore Politiche Attive
Manuale utente Soggetto Promotore Erogatore Politiche Attive Guida all utilizzo del Sistema Garanzia Giovani della Regione Molise Sistema Qualità Certificato UNI EN ISO 9001:2008 9151.ETT4 IT 35024 ETT
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à
DettagliGUIDA PER LA COMPILAZIONE DELLA DOMANDA ON LINE DI PARTECIPAZIONE AL
GUIDA PER LA COMPILAZIONE DELLA DOMANDA ON LINE DI PARTECIPAZIONE AL CONCORSO PER L AMMISSIONE AI CORSI DI DOTTORATO DI RICERCA CICLO XXXI A.A. 2015-2016 URRI/MC/as 1 La presente Guida fornisce le indicazioni
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
DettagliIntegrazione al Manuale Utente 1
CONTABILITA PROFESSIONISTI La contabilità dei professionisti di Picam (criterio di cassa, registro cronologico, registro incassi e/o pagamenti) è utilizzabile solamente nella versione Picam.com e Picam.com
DettagliFondamenti di Programmazione
Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) gianfranco.rossi@unipr.it Indice 1 Introduzione
DettagliManuale Sito Videotrend
Manuale Sito Videotrend 1 Sommario INTRODUZIONE...3 PRESENTAZIONE...4 1 GESTIONE DDNS...6 1.1 GESTIONE DDNS...6 1.2 CONNESSIONE DDNS...6 1.3 CREA ACCOUNT DDNS...7 1.4 GESTIONEACCOUNT...7 1.5 IMPIANTI DDNS...8
DettagliProcessi, Threads e Agenti
Processi, Threads e Agenti Processi in Sistemi Distribuiti Un sistema software distribuito ècompostodaun insieme di processi in esecuzione su più nodi del sistema. Un algoritmo distribuito può essere definito
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,
DettagliMinistero delle Infrastrutture e dei Trasporti SERVIZIO DI CONTROLLO INTERNO
SERVIZIO DI CONTROLLO INTERNO ISTRUZIONI PER L UTILIZZO DELLA NUOVA PIATTAFORMA PER IL CONTROLLO DI GESTIONE SIGEST ROMA, SETTEMBRE 2009 INDICE 1. PREMESSA... 3 2. INFORMAZIONI GENERALI... 3 3. MODALITA
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?
DettagliProgettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 1/01/016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
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
DettagliProgetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi
Progetto B Progettare un applicazione web basata su Servlet e JSP che permetta la collaborazione di diversi utenti nel creare, aggiornare e gestire un archivio di pagine personali degli autori di un giornale.
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliSaWork ha un modulo specifico per il consulente che ha la visibilità su tutte le aziende sue clienti da dove può:
SaWork è una soluzione software, dedicato alla gestione della sicurezza in azienda secondo quanto previsto dal Decreto Legge81/08 e dal successivo decreto 106/09 SaWork è una soluzione software pensata
DettagliLa ricerca con. A cura del gruppo Portale della Biblioteca Digitale. Novembre 2011. Sistema Bibliotecario di Ateneo Università di Padova
La ricerca con A cura del gruppo Portale della Biblioteca Digitale Novembre 2011 Come funziona Google Esplora il web per raccogliere tutti i siti, le immagini, le pagine che contengono i termini che hai
DettagliISTRUZIONI PER L USO DEL SOFTWARE. PER LA PROGRAMMAZIONE DEI TELECOMANDI Alias
ISTRUZIONI PER L USO DEL SOFTWARE PER LA PROGRAMMAZIONE DEI TELECOMANDI Alias Alias e la nuova linea di telecomandi universali programmabili che permettono di replicare qualsiasi tipo di telecomando esistente
Dettaglie-shop Ordina online i tuoi prodotti con pochi e semplici clic!
Ordina online i tuoi prodotti con pochi e semplici clic! ACQUISTI IMPERO ONLINE GUIDA UTENTE Introduzione e-shop, il sito web per gli acquisti Impero online e-shop garantisce l accesso a 10 000 articoli
DettagliWORKING HOLIDAY VISA GUIDA ALLA RICHIESTA ONLINE DEL WORKING HOLIDAY VISA 417 PER L AUSTRALIA
WORKING HOLIDAY VISA GUIDA ALLA RICHIESTA ONLINE DEL WORKING HOLIDAY VISA 417 PER L AUSTRALIA Caratteristiche del visto Working Holiday visa (subclass 417) Requisiti: - età 18-30 - non avere figli - essere
DettagliALLEGATO: ISTRUZIONI PER L OPERATORE DI SEDE PER ACQUISIRE LE DOMANDE TELEMATICHE DI RICONGIUNZIONE
ALLEGATO: ISTRUZIONI PER L OPERATORE DI SEDE PER ACQUISIRE LE DOMANDE TELEMATICHE DI RICONGIUNZIONE Di seguito la descrizione dettagliata degli adempimenti a carico dell operatore. Una volta che la domanda
DettagliCapitolo 9. Esercizio 9.1. Esercizio 9.2
Capitolo 9 Esercizio 9.1 Considerare lo relazione in figura 9.19 e individuare le proprietà della corrispondente applicazione. Individuare inoltre eventuali ridondanze e anomalie nella relazione. Docente
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
DettagliProgettazione logica
Progettazione logica Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E- R in modo corretto ed efficiente. Richiede
DettagliAutodesk Map parte I digitalizzazione e importazione dati
Autodesk Map parte I digitalizzazione e importazione dati Marco Negretti e-mail: marco.negretti@polimi.it http://geomatica.como.polimi.it V 5.1 10/10/08 I dati in Autodesk Map I dati vengono memorizzati
DettagliHARDWARE INTERNET NETWORKING
EASYGEST GESTIONE SCADENZE SCADENZE Tramite la gestione dello scadenziario è possibile ottenere in tempo reale la situazione degli incassi da ottenere e dei pagamenti da effettuare. La registrazione delle
DettagliIngegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 9. Macchine a stati Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi di
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ò
DettagliManuale cliente finale portale accertamenti delibera 40
Manuale cliente finale portale accertamenti delibera 40 Il presente manuale è indirizzato al cliente, per inoltrare la documentazione per l attivazione/riattivazione della fornitura con Accertamento Documentale.
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
DettagliOPERAZIONI CHIUSURA E APERTURA Note operative
OPERAZIONI CHIUSURA E APERTURA Note operative N.B. E importante accertarsi, in caso di multiutenza, che altri operatori non effettuino operazioni contabili mentre ci si appresta a generare le chiusure
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)
Dettagli