Estendere Rialto. Esercitazione Data Mining 5 Novembre

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Estendere Rialto. Esercitazione Data Mining 5 Novembre"

Transcript

1 Estendere Rialto Esercitazione Data Mining 5 Novembre

2 Obiettivi Mostrare come sia possibile sviluppare i propri moduli per estendere il tool

3 Estendere Rialto Rialto si configura come un tool di Data Mining a Plugins E possibile quindi scrivere il proprio E possibile quindi scrivere il proprio modulo (Acquisition Task, Filter Task, Model, etc.) e facilmente pluggarlo nel framework

4 Rialto SDK Per lo sviluppo di un nuovo plugin è possibile utilizzare come punto di avvio il progetto java caricato nella sottocartella Reference/Examples all interno della Rialto SDK. Questo esempio fornisce le componenti necessarie per il corretto sviluppo di un plugin, ossia: build.xml è uno script Ant che può essere usato per editare, testare ed eseguire la build del plugin;.classpath and.project.settings/org.eclipse.jdt.core.prefs definiscono le preferenze per la compilazione delle classi del plugin. E importante notare che la cartella src/main/java della cartella dell esempio è riempita con alcuni esempi di plugins, mentre src/test/java contiene le rispettive classi di test.

5 Plugin stateless e statefull In Rialto esistono 2 tipologie di plugin: Stateless, sono esecutori di compiti, come la manipolazione dei dati (es. filtri) Statefull, conservano informazioni come il modello estratto (es. modelli di mining) N.B. affinché un modello possa mantenere informazione e salvato gli oggetti contenuti al suo interno devono fornire un metodo costruttore con tutti i campi necessari per la sua corretta ricostruzione e preceduto dal Questo non è necessario per tipi primitivi

6 Esempio private Info { info" }) public MyDataStructure(final Info info) { this.info = info; } public Info getinfo(){ return info; }

7 Estendere Rialto: esempio Nella lezione sull analisi dei dati medici, si era individuata la necessità di utilizzare un filtro che combinasse 2 campi del dataset in esame Per risolvere questo problema si era deciso di utilizzare SQL Filter E tuttavia possibile scrivere un filtro dedicato proprio per questo tipo di operazioni

8 Creare Un Filtro Obiettivo: Creare un filtro aritmetico, che prenda in input una tabella e restituisca in output la stessa tabella contenente una nuova colonna il cui valore è la somma od il prodotto di altri due 2 attributi selezionati dalla tabella dei parametri N.b. I 2 attributi alla fine del processo saranno rimossi

9 Implementazione Si crea una nuova Classe ArithmeticFilter Poiché il filtro ha un solo ingresso e una Poiché il filtro ha un solo ingresso e una sola uscita questa classe estenderà Abstract1to1TableFilterTask

10 Definizione dei parametri I parametri necessari per lo sviluppo del plugin sono 3: L indice della prima colonna; L indice della seconda colonna; L operatore aritmetico da utilizzare.

11 Specificare un parametro I parametri del plugin che si sta progettando sono particolari oggetti detti PluginParameter E necessario aggiungere tanti PluginParameter quanti sono i parametri del plugin

12 Creazione dei parametri public final PluginParameter<Integer> att1index = createparameter(); public final PluginParameter<Integer> att2index = createparameter(); public final PluginParameter<Operator> operator = createparameter();

13 Annotazione dei parametri In Rialto è possibile inserire delle annotazioni sui parametri al fine di specificare informazioni o comportamenti particolari dei parametri Questa possibilità risulta utile anche nel semplice caso in esame

14 Annotazioni sui parametri Si consideri il primo parametro, possono essere aggiunte le seguenti of attribute Types = { AttributeType.INTEGER, AttributeType.DOUBLE public final PluginParameter<Integer> att1index = createparameter();

15 Descrizione delle : Permette di settare il nome del parametro che sarà poi visualizzato nella tabella dei : Permette di inserire una descrizione dei parametri che sarà visualizzata nella Permette di specificare i tipi dei campi permessi per quel parametro (Nel caso in esame : Permette di specificare che è possibile anche un valore null come valore di default per il parametro. In tal senso il settaggio del parametro è rimandato alla fase di deploy.

16 Osservazioni All atto di creazione del parametro è necessario specificare il tipo del parametro: PluginParameter<Integer> Il secondo parametro si comporta in maniera analoga al primo, in quanto ambedue permettono di selezionare un indice della tabella

17 Il parametro per la scelta dell operatore Definiamo dapprima un enumeration public enum Operator { } MULTIPLY, SUM Il tipo che specificheremo per il PluginParameter è Operator

18 PluginParameter sums and multiplications can be performed") public final PluginParameter<Operator> operator = createparameter();

19 Costruttore Nel Costruttore l unica operazione che è eseguita è il settaggio di un valore di default per il parametro operator: public DummyArithmeticFilter() { operator.setdefaultvalue(operator.sum); }

20 Metodi da implementare Per avere un corretto comportamento del filtro deve essere eseguito l override di alcuni metodi: gettargetmetadata; _executeinterruptibly.

21 gettargetmetadata Il metodo in esame permette di specificare come ricostruire i metadati che saranno settati per la tabella di output generata dal filtro: public TableMetadata gettargetmetadata() L oggetto TableMetadata non sono altro che i metadati ricostruiti per la tabella!

22 Implementazione final TableMetadata metadata = getinputmeta(); final TableMetadataBuilder builder = metadata.createbuilder(); builder.remove(metadata.getattribute(geta tt1index())); builder.remove(metadata.getattribute(geta tt2index())); builder.add(new DoubleAttribute("Operation result")); return builder.build();

23 Analisi del codice final TableMetadata metadata = getinputmeta(); Con questa operazione vengono restituiti i metadati della tabella data in input al task final TableMetadataBuilder builder = metadata.createbuilder(); Con questa operazione viene creato un Builder per i metadati, con esattamente gli stessi campi della tabella in input; builder.remove(metadata.getattribute(ge tatt1index())); Con questa operazione si rimuove dai metadati della tabella di output l indice della colonna che l utente ha specificato nel primo parametro

24 Analisi del codice builder.remove(metadata.getattribu te(getatt2index())); Con questa operazione si rimuove dai metadati della tabella di output l indice della colonna che l utente ha specificato nel secondo parametro builder.add(new DoubleAttribute("Operation result")); Con questa operazione si aggiunge in coda alla tabella una nuova colonna ossia il nuovo campo derivato di interesse

25 _executeinterruptibly Il metodo in esame permette di specificare come riempire i dati della tabella generata dal filtro: protected void _executeinterruptibly(final TaskExecutionSupport taskexecutionsupport) throws InterruptedException

26 _executeinterruptibly Questo metodo sarà invocato automaticamente all esecuzione del task E passato come parametro un oggetto TaskExecutionSupport per permettere a colui che sviluppa il plugin di gestire l interruzione dell esecuzione nel caso che l utente decida di stoppare il task da Interfaccia

27 Implementazione final WriteableTable outtable = getoutputtable(); Tabella di output di sola scrittura final ReadableTable intable = getinputtable(); Tabella di input sulla quale possiamo leggere

28 Implementazione //Scorriamo la tabella di input for (final ReadableRow inrow : intable) { //Aggiungiamo una nuova riga vuota alla //tabella final ReadWriteRow outrow = outtable.getnewrow(); //Inizializziamo gli indici int outindex = 0; double value1 = 0; double value2 = 0;

29 Implementazione //Scorriamo gli indici delle colonne e riempiamo la riga con gli opportuni valori for (int inindex = 0; inindex < intable.getnumattributes(); inindex++) { if (inindex == getatt1index()) { value1 = inrow.getvalue(inindex); } } else if (inindex == getatt2index()) { value2 = inrow.getvalue(inindex); } else { outrow.copyrowvalue(outindex++, inrow, inindex); }

30 Implementazione //Settiamo il valore della //nuova colonna } final double result = evaluateresult(value1, value2); outrow.setvalue(outindex, result); outtable.appendrow(outrow);

31 Metodi di utilità protected double evaluateresult(final double val1, final double val2) { if (getoperator() == Operator.SUM) { return val1 + val2; } return val1 * val2; } protected int getatt1index() { return att1index.getvalue(); } protected int getatt2index() { return att2index.getvalue(); } protected Operator getoperator() { return operator.getvalue(); }

32 Operazioni di deploy del plugin Come ultima operazione è necessario modificare il file xml di configurazione aggiungendo la nuova extension nella sezione dei filtri: <es:extensionpoint> <es:name>nomedelnuovofiltro</es:name> <es:class>.class</es:class> </es:extensionpoint>

33 Utilizzo E ora possibile trascinare il nuovo filtro dall Extension Viewer nell area di lavoro: Task -> Filter -> NomeDelFiltro Selezionandolo, la relativa tabella dei parametri viene visualizzata all utente

34 Dipendenze fra i parametri E possibile introdurre dipendenze dai parametri: È possibile infatti che in alcuni casi dei È possibile infatti che in alcuni casi dei parametri diventino ininfluenti per la corretta esecuzione del plugin e che sia per cui disattivati da interfaccia

35 Esempio Supponiamo di avere 2 PluginParameters parameter1 e parameter2 L obiettivo e quello di disattivare parameter1 se parameter2 assume un particolare valore (per semplicità assumiamo che questi valori varino tra i valori di un enumeration come nel caso dell operator visto in precedenza)

36 Esempio Il codice per aggiungere questo vincolo deve essere inserito nel costruttore della classe: parameter1.dependson(parameter2. beingoneof(parameter2.enumeratio nvalue));

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project Database and data mining group, SQL Server 2005 Integration Services SQL Server 2005: ETL - 1 Database and data mining group, Integration Services Project Permette di gestire tutti i processi di ETL Basato

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I {

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I { Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Prova d Esame 19.07.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e Polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe/array Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA8 B1 Accesso sequenziale 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione 2 1 Introduzione In questa Unità vediamo

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 9: array

Fondamenti di informatica T-1 (A K) Esercitazione 9: array Fondamenti di informatica T-1 (A K) Esercitazione 9: array AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 9 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del

Dettagli

Esercitazione Google Maps

Esercitazione Google Maps Esercitazione Google Maps Esercizio 1 Visualizzare i risultati della API comuni.php su una mappa geografica. Soluzione Come prima cosa, occorre creare una chiave di utilizzo della libreria Google Maps.

Dettagli

Esame Laboratorio di Programmazione

Esame Laboratorio di Programmazione Esame Laboratorio di Programmazione 20 Giugno 2014 NOA Non è possibile usare le classi del package prog.io del libro di testo L obiettivo è scrivere una applicazione che permette di costruire delle torri

Dettagli

Basi di dati Applicazioni web in PHP per l interrogazione di basi di dati Laboratorio #5

Basi di dati Applicazioni web in PHP per l interrogazione di basi di dati Laboratorio #5 Basi di dati Applicazioni web in PHP per l interrogazione di basi di dati Laboratorio #5 Politecnico di Torino 21 maggio 2019 Introduzione Questa esercitazione ha come obiettivo quello di realizzare una

Dettagli

ADT Dizionario. Come nella Mappa: Diversamente dalla Mappa:

ADT Dizionario. Come nella Mappa: Diversamente dalla Mappa: Come nella Mappa: un Dizionario è un contenitore di elementi del tipo (k,v) dove k è la chiave e v è il suo corrispondente valore. ogni elemento (k,v) viene detto entrata (entry) del Dizionario. chiavi

Dettagli

Esempio: Costruttori ed ereditarietà

Esempio: Costruttori ed ereditarietà Esempio: 1 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il costruttore di default (quello senza parametri) Se in un costruttore

Dettagli

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA4 B3 Documentazione 1 Prerequisiti Programmazione elementare ad oggetti Documentazione del software Tipi di documentazione 2 1 Introduzione Lo scopo di questa Unità

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. 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

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Interfaccia Comparable e Collezioni Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 22 Interfaccia

Dettagli

Tipi riferimento e stringhe

Tipi riferimento e stringhe Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 8 Tipi riferimento e stringhe A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Tipi riferimento e stringhe 1

Dettagli

Le liste. Le liste linkate

Le liste. Le liste linkate Le liste Le liste linkate Molto spesso bisogna gestire insiemi di oggetti dello stesso tipo. Un modo molto semplice per tenere in memoria tali insiemi consiste nel creare un array per contenerli. Nome

Dettagli

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO Prima parte: le basi di Python 1. Introduzione. Cosa ci serve, cosa è richiesto, cosa faremo. Note sull'indentazione 1 Introduzione 1 Scrittura degli script: l'idle 2 Importare moduli in uno script 3 I

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Classi e Oggetti Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 19 CLASSE: definizione Costrutto

Dettagli

La Back Office Console consente di costruire lo scheletro degli schema.

La Back Office Console consente di costruire lo scheletro degli schema. BACK OFFICE CONSOLE 1.1 Introduzione 3 1.2 Creazione di uno Schema 4 1.2.1 Struttura dello Schema 5 1.2.2 Caratteristiche dei campi 6 1.2.3 Traduzioni 8 1.3 Ricerca degli schema 8 1.4 Gestione delle Categorie

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Gestione della configurazione Input/Output PLC Cosa c'è di nuovo? Indice I. Avviare il Configuration Manager... 3 II. Nuova interfaccia dell'utente... 3 III. Importazione di nuovi formati di configurazione...

Dettagli

Guida 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 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ò

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

Dettagli

Esercizio. Strutture Dati

Esercizio. Strutture Dati Esercizio Si scriva un metodo public Position sibling(position v) che preso in input un nodo v restituisca il fratello di v. Il metodo dovrà lanciare una BoundaryViolationException nel caso in cui

Dettagli

La struttura dati CODA

La struttura dati CODA Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati CODA Pietro Di Lena - pietro.dilena@unibo.it Introduzione Una coda (o queue) è una struttura dati astratta

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

Le liste. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132

Le liste. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Le liste Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Le Liste Le liste non sequenziali (concatenate) sono costituite da elementi che vengono memorizzati in memoria centrale non uno

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

A livello fisico, un istanza di base di dati Oracle è composta. Gubiani & Montanari Oracle Database 3

A livello fisico, un istanza di base di dati Oracle è composta. Gubiani & Montanari Oracle Database 3 Oracle Database Express Edition Donatella Gubiani e Angelo Montanari Gubiani & Montanari Oracle Database 1 (Oracle XE) è una versione gratuita della base di dati È facile da installare e gestire Può essere

Dettagli

Sul pattern Iterator

Sul pattern Iterator Sul pattern Iterator 1 Introduzione Capita spesso di aver a che fare con strutture dati complesse, come ad esempio, liste, code, ecc. È buona norma accedere a queste strutture senza esporre la loro organizzazione.

Dettagli

Basi di Dati. Applicazioni web in PHP per l interrogazione di basi di dati. Esercitazione n. 5

Basi di Dati. Applicazioni web in PHP per l interrogazione di basi di dati. Esercitazione n. 5 Basi di Dati Applicazioni web in PHP per l interrogazione di basi di dati Esercitazione n. 5 Questa esercitazione ha come obiettivo quello di realizzare una semplice applicazione web basata su PHP per

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Java Gli array. Array

Java Gli array. Array Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Fondamenti di Informatica T1 Interfaccia Comparable Collezioni

Fondamenti di Informatica T1 Interfaccia Comparable Collezioni Fondamenti di Informatica T1 Interfaccia Comparable Collezioni Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 19 Interfaccia Comparable Fa

Dettagli

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi: Vettore(int n): crea un oggetto Vettore contente n elementi, inizializzati

Dettagli

WebDisk. TeamPortal - WebDisk

WebDisk. TeamPortal - WebDisk - INDICE Introduzione... 3 1.1 Funzioni disponibili... 4 1.2 Gestione e Consultazione... 4 1.3 Ricerca... 8 1.4 Amministrazione, direttori esterni... 10 2 Introduzione L'applicazione permette di gestire

Dettagli

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori Per impostazione predefinita, i risultati dei moduli vengono salvati

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e Polimorfismo 1 Esempio 1: Costruttori ed ereditarietà Costruttori ed ereditarietà 2 Introduzione Java prevede due automatismi legati

Dettagli

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti Ricorsione La ricorsione è un approccio per la risoluzione

Dettagli

Strutture come parametri di funzioni

Strutture come parametri di funzioni Strutture come parametri di funzioni int main() { struct PolReg { int numlati; float lunghezzalato; PolReg p1; p1.numlati = 3; p1.lunghezzalato = 10.0; float perimetro = p1.numlati * p1.lunghezzalato;

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public

Dettagli

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Object Oriented Programming: Fondamenti Prof. Stefano Mariani Dott. Alket Cecaj Indice Introduzione all OOP Classi vs. oggetti Campi

Dettagli

Automazione di test. Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati

Automazione di test. Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati Automazione di test Si presuppone la conoscenza del documento XML.pdf. Un package per i test automatizzati Il package test (fornito completo nel file test.zip) permette di automatizzare una serie di test.

Dettagli

MANUALE MODULO WIDGET EVENT TRACKING LICENZA SaaS

MANUALE MODULO WIDGET EVENT TRACKING LICENZA SaaS MANUALE MODULO WIDGET EVENT TRACKING LICENZA SaaS Revisione 1.0 Beta Ultimo Aggiornamento: 07/12/2010 SOMMARIO Panoramica... 3 Gli eventi tracciati... 3 I report... 4 Struttura... 4 Report / Object...

Dettagli

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe

Dettagli

PG5 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 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»

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. 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

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA8 B2 Accesso diretto 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione Organizzazione ed accesso ai file 2 1 Introduzione

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

E17 Esercizi sugli Array in Java

E17 Esercizi sugli Array in Java E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

JQuery. <script src=" </script> <script src= js/main.

JQuery. <script src=  </script> <script src= js/main. JQuery Esercizio 1 Implementare un applicazione Web lato client che visualizzi il risultato delle API comuni.php e popolazione.php sottoforma di tabella. In particolare, nel caso della comuni.php prevedere

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Laboratorio di informatica Ingegneria meccanica Lezione 7 19 novembre 2007 Concetto di modulo di un programma (1) Lo sviluppo di programmi complessi avviene tipicamente per composizione di moduli, ognuno

Dettagli

Liste a puntatori: un esercizio passo passo

Liste a puntatori: un esercizio passo passo Liste a puntatori: un esercizio passo passo Prof. Orazio Mirabella Liste a puntatori: un esercizio passo passo (for dummies) Prof. Orazio Mirabella 1 Ripassiamo le Liste lineari Una lista lineare è una

Dettagli

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione

Dettagli

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Corso di Linguaggi e Traduttori Anno Accademico 2017 2018 Prof. Giovanni Pighizzini Progetto d esame Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Variabili

Dettagli

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione Corso di PHP 8.1 PHP e MySQL 1 Prerequisiti Conoscenza MySQL Tecnica della programmazione procedurale ad oggetti Principi di programmazione web Programmazione elementare in PHP 2 1 Introduzione In questa

Dettagli

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI tramite file tracciato 1. Associazione del numero di badge ai nominativi Il programma PowerDIP consente di importare le presenze acquisiste con i rilevatori

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Progetto di Computer Forensics

Progetto di Computer Forensics Biondi Elisa Zaccaria Damiano Progetto di Computer Forensics Plugin per ImageJ: Fourier Elaboration Corso di Laurea in Informatica. A.A. 2010-2011 Introduzione Il progetto realizzato consiste nell implementazione

Dettagli

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Uso di classi e oggetti Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Tipi di dati Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione

Dettagli

1. Introduzione 3 / 27

1. Introduzione 3 / 27 BACKOFFICE CONSOLE 1. Introduzione... 3 2. Creazione di uno Schema... 4 2.1 Struttura dello Schema... 5 2.2 Caratteristiche dei campi... 6 2.3 Traduzioni... 8 2.4 Ricerca degli schema... 9 2.5 Gestione

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Cicli Concetti di base (MATrix LABoratory) programma interattivo per calcolo

Dettagli

File ad accesso diretto funzioni Hash Parte1. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

File ad accesso diretto funzioni Hash Parte1. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni File ad accesso diretto funzioni Hash Parte1 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Esercitazione: Si vuole sviluppare una applicazione come quella mostrata nella figura in cui

Dettagli

Agenda. Agenda. Credenziali. Configurazione del Proxy (1/2) Configurazione del Proxy (2/2) Fondamenti di Informatica T2 Modulo 2

Agenda. Agenda. Credenziali. Configurazione del Proxy (1/2) Configurazione del Proxy (2/2) Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 2 Credenziali Come si accede ai PC dei

Dettagli

Inoltrare un messaggio.

Inoltrare un messaggio. Reti informatiche 359 7.5.3.9 Inoltrare un messaggio. È possibile spedire ad altri un messaggio inviato o ricevuto in precedenza. Al destinatario verrà recapitato il messaggio originale nel quale compariranno

Dettagli

ESERCIZIO 1 (FILE DI TESTO)

ESERCIZIO 1 (FILE DI TESTO) ESERCIZIO 1 (FILE DI TESTO) Scrivere su un file di testo righe inserite da console, fino a quando non viene inserita la linea vuota. Passare il nome del file come parametro al programma. Bisogna incapsulare

Dettagli

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami. Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli

Dettagli

Array. Walter Didimo

Array. Walter Didimo Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate C# delegates Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 1 Delegate I delegati possono essere visti come definizioni di tipi per puntatori a funzione. Permettono di

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Agenda

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Agenda Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 PASSO 0 Agenda Informazioni di servizio

Dettagli

Quaderno 4: Progetto di una base di dati e realizzazione di un applicazione web

Quaderno 4: Progetto di una base di dati e realizzazione di un applicazione web Basi di Dati Quaderno 4: Progetto di una base di dati e realizzazione di un applicazione web 1 Creazione della base di dati Realizzare la base di dati per la registrazione delle gare tenutesi nei diversi

Dettagli