Programmazione J2ME. Lezione 10. Mobile3D (incompleta) Di Blasi Gianpiero - D.M.I. - Università di Catania

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione J2ME. Lezione 10. Mobile3D (incompleta) Di Blasi Gianpiero - D.M.I. - Università di Catania"

Transcript

1 Di Blasi Gianpiero - D.M.I. - Università di Catania Programmazione J2ME Lezione 10 Mobile3D (incompleta)

2 Cosa impareremo oggi? L'API Mobile3D Come scoprire la presenza dell'api Mobile3D Caratteristiche generali e funzionamento del package javax.microedition.m3g

3 Introduzione (1) Questa lezione presenta L'API M3G (Mobile3D Graphics) per dispositivi J2ME Tale API (JSR 184) è un package opzionale per la creazione di ambienti tridimensionali La libreria presenta una serie di classi ed un modello di programmazione molto simile all'api Java3D Sfortunatamente però le due API non sono compatibili

4 Introduzione (2) In ogni caso la conoscenza di Java3D semplifica notevolmente lo studio di Mobile3D (ovviamente vale anche il viceversa) Non tutti i dispositivi supportano Mobile3D, ma la maggior parte degli emulatori sono già abilitati Durante questa lezione darò per scontata la conoscenza dei principi fondamentali della Computer Graphics

5 Introduzione (3) L'API supporta sia la programmazione grafica di alto livello sia quella di basso livello Nell'implementazione di alto livello (detta retained mode), lo sviluppatore lavora con un modello scene graph ed il rendering dell'ambiente 3D è automatico e tutto a carico del motore Mobile3D Nell'implementazione di basso livello (immediate mode) lo sviluppatore deve invece disegnare manualmente tutto il mondo 3D (compresi i problemi di prospettiva, di luce, di vista, ecc.)

6 Introduzione (4) Noi ci occuperemo principalmente del retained mode poiché è più semplice e simile a Java3D, daremo solo cenni invece sull'immediate mode Il sistema a basso livello si comporta esattamente come le librerie OpenGL ES OpenGL ES (OpenGL for Embedded Systems) è un'api di basso livello sottoinsieme di OpenGL specifica per i dispositivi embedded Essa fornisce un'interfaccia di basso livello tra l'applicazione ed il motore 3D del dispositivo

7 Altre API simili Mobile Media API (JSR 135): è un'api di alto livello per il controllo di diversi tipi di media (principalmente audio e video); non implementa grafica 3D; JSR 184 è stato definito per fornire le funzionalità base per la grafica 3D Java Bindings for OpenGL ES (JSR 239): un wrapper J2ME per OpenGL ES; è l'equivalente di JOGL per OpenGL e Java

8 Il package javax.microedition.m3g (1) L'API Mobile3D è definita nel package javax.microedition.m3g Tale package contiene tutte le classi necessarie per la creazione di mondi 3D La libreria definisce inoltre una struttura scene graph ed un formato di file corrispondente per gestire e distribuire contenuti 3D in modo efficiente

9 Il package javax.microedition.m3g (2) Graphics3D il contesto grafico 3D Object3D una classe astratta per gli oggetti contenuti nel mondo questo include il mondo stesso, i nodi dello scene graph, le animazioni, le texture, ecc. Transformable una classe astratta per Node e Texture2D dove sono definiti i metodi comuni per la manipolazione dei nodi e per le trasformazioni delle texture

10 Il package javax.microedition.m3g (3) Node una classe astratta per tutti i nodi dello scene graph ci sono cinque differenti tipi di nodi: Camera - definisce la posizione dell'osservatore e la proiezione da 3D a 2D Mesh - rappresenta un oggetto 3D definito come una superficie poligonale immutabile Sprite3D - rappresenta una immagine 2D con una posizione 3D Light - definisce posizione, direzione, colore ed altri attributi di una sorgente luminosa Group - un contenitore di altri nodi

11 Il package javax.microedition.m3g (4) World un nodo Group radice dello scene graph MorphingMesh un nodo dello scene graph rappresentante un oggetto 3D definito come una superficie poligonale modificabile tramite un vertex-morphing SkinnedMesh un nodo dello scene graph rappresentante un oggetto 3D definito come una superficie poligonale animabile

12 Il package javax.microedition.m3g (5) Appearance un insieme di componenti che definiscono l'aspetto di una Mesh o di uno Spring3D Material un componente di Appearance che incapsula gli attributi per il calcolo del comportamento della luce sugli oggetti altri attributi per la luce sono definiti in Light, PolygonMode e VertexBuffer

13 Il package javax.microedition.m3g (6) CompositingMode un componente di Appearance che incapsula gli attributi della composizione del colore per-pixel PolygonMode un componente di Appearance che incapsula gli attributi per i poligoni (back/front face culling, calcolo delle luci, correzione prospettica, shading, ecc.) Fog un componente di Appearance che incapsula gli attributi della nebbia

14 Il package javax.microedition.m3g (7) Texture2D un componente di Appearance che incapsula una texture e gli attributi su come applicarla ad una mesh (wrapping, filtering, blending, trasformazione delle coordinate, ecc.) Background definisce come cancellare il mondo, può essere pensato come lo sfondo di una scena Loader carica e deserializza i nodi di uno scene graph

15 Il package javax.microedition.m3g (8) AnimationController controlla la posizione, velocità e peso di una animazione; per esempio può essere usato per controllare il movimento di una luce KeyframeSequence incapsula i dati dell'animazione come una sequenza di key-frame AnimationTrack associa un KeyframeSequence con un AnimationController

16 Il package javax.microedition.m3g (9) Image2D un'immagine utilizzabile come texture, sfondo o sprite ci sono due tipi di immagini: mutable (aggiornabili in qualsiasi momento) immutable (non aggiornabili) RayIntersection conserva il riferimento ad una Mesh o uno Sprite3D intersecato e le informazioni sul punto di intersezione Transform una matrice 4x4 rappresentante una trasformazione 3D

17 Il package javax.microedition.m3g (10) TriangleStripArray definisce un array di triangoli collegati a strip in una strip, i primi tre vertici definiscono il primo triangolo, ogni ogni altro vertice definisce uno nuovo triangolo usando i due precedenti VertexArray un array di vettori interi rappresentante posizione, normali, colori e coordinate delle texture di ogni vertice

18 Il package javax.microedition.m3g (11) VertexBuffer conserva i riferimenti ai VertexArray per un insieme di vertici IndexBuffer definisce come connettere i vertici per formare una geometria

19 Scoprire la presenza del package Mobile3D (1) Poiché Mobile3D è un package opzionale, tale API potrebbe essere non disponibile su qualche dispositivo quindi è necessario un sistema per ottenere tale informazione Sfortunatamente non esiste un sistema universale per fare ciò ed ogni profilo MIDP ed ogni piattaforma potrebbero avere un sistema proprietario per tale scopo

20 Scoprire la presenza del package Mobile3D (2) Un'alternativa per scoprire la presenta dell'api Mobile3D è chiedere al dispositivo la versione dell'api stessa Infatti si può chiamare il metodo System.getProperty( microedition.m3g.version ): restituisce la versione dell'api ( 1.1 o 1.0 ) se l'api è presente, null altrimenti

21 Scoprire la presenza del package Mobile3D (3) Esempio (provare sia su MpowerPlayer sia su WTK) PackageDiscovery

22 La classe Graphics3D (1) La classe Graphics3D è il cuore di tutta l'api È il contesto grafico 3D che si occupa del rendering della scena È un oggetto singleton (ne può esistere una sola istanza) Tutto il rendering è fatto tramite i metodi render(...) L'API non contiene altro sistema per il rendering di scene 3D

23 La classe Graphics3D (2) Ci sono quattro diversi metodi render(...) operanti a diversi livelli di granularità Il primo metodo renderizza un intero World ed in tal caso si dice che l'api opera in retained mode Il secondo metodo renderizza nodi dello scene graph, mentre il terzo ed il quarto metodo renderizzano semplici mesh ed in questi tre casi si dice che l'api opera in immediate mode

24 La classe Graphics3D (3) La classe Graphics3D fa riferimento ad una camera corrente ed ad un array di luci correnti Queste sono usate solo dai metodi dell'immediate mode Il retained mode usa la camera e le luci specificate nel World, ignorando totalmente camera e luci del Graphics3D

25 La classe Graphics3D (4) Prima del rendering l'applicazione deve registrare un target al Graphics3D usando il metodo void bindtarget(object target): registra un Graphics o una Image2D modificabile come target di questo Graphics3D Quando il rendering è completato l'applicazione deve rilasciare il target con il metodo void releasetarget(): rilascia il target

26 La classe Graphics3D (5) Metodi utili static Graphics3D getinstance(): restituisce l'istanza singleton di Graphics3D Object gettarget(): restituisce il target attuale void clear(background background): cancella la scena tramite un background void setcamera(camera camera, Transform transform): imposta la camera corrente Camera getcamera(transform transform): restituisce la camera corrente (continua...)

27 La classe Graphics3D (6) Metodi utili (segue) int addlight(light light, Transform transform): aggiunge una luce alla scena void setlight(int index, Light light, Transform transform): imposta una luce nell'array delle luci correnti Light getlight(int index, Transform transform): restituisce una luce nell'array delle luci correnti int getlightcount(): restituisce il numero di luci correnti void resetlights(): cancella l'array delle luci correnti

28 La classe Graphics3D (7) Esempio (No su MPowerPlayer) Graphics3DSample

29 La classe Loader (1) Nel precedente esempio è stata introdotta anche la classe Loader Il suo funzionamento è molto semplice: scarica e deserializza file in formato M3G è capace di deserializzare istanze di qualsiasi classe derivata da Object3D (World, Group, Camera, Light, Material, Appearance, Texture2D, AnimationTrack, KeyframeSequence, ecc.) qualsiasi altro oggetto non può essere deserializzato

30 La classe Loader (2) La classe Loader è anche capace di caricare immagini in formato PNG In tal caso l'oggetto restituito è un'istanza non modificabile di Image2D il cui pixel format corrisponde al color type del PNG Alcune implementazioni Mobile3D potrebbero ovviamente supportare anche altri formati oltre al PNG

31 La classe Loader (3) Metodi utili: static Object3D[] load(byte[] data, int offset): deserializza istanze di Object3D da un array di byte iniziando da un dato offset static Object3D[] load(string name): carica e deserializza istanze di Object3D da una risorsa (interna o esterna alla midlet)

32 La classe World (1) Nel precedente esempio è stata introdotta anche la classe World Anche il funzionamento di questa classe è molto semplice World è uno speciale Group (che vedremo a breve) radice dello scene graph Uno scene graph è costituito da una gerarchia di nodi Tutti i nodi sono connessi tra loro ed hanno una radice comune: un oggetto World

33 La classe World (2)

34 La classe World (3) Costruttore World() Metodi utili (oltre a quelli di Group) Camera getactivecamera(): restituisce la camera attiva void setactivecamera(camera camera): imposta la camera attiva Background getbackground(): restituisce lo sfondo si questo mondo void setbackground(background background): imposta lo sfondo di questo mondo

35 La classe Background (1) Definisce uno sfondo per il mondo: nel retained mode viene utilizzato l'oggetto Background associato al World nell'immediate mode bisogna specificare un apposito oggetto Background da utilizzare nel metodo clear(...) di Graphics3D La cancellazione dello sfondo riguarda sia il color buffer che il depth buffer (z-buffer) Il color buffer è cancellato usando il Background, il depth buffer è cancellato impostando tutto il buffer al massimo valore possibile

36 La classe Background (2) Il Background può essere definito da un colore, da una Image2D o da entrambi: se è presente solo il colore lo sfondo sarà colorato di quel colore se è presente solo l'immagine lo sfondo sarà colorato con quell'immagine se sono presenti entrambi lo sfondo sarà colorato prima con il colore e poi con l'immagine

37 La classe Background (3) Costruttore Background() Metodi utili void setcolor(int ARGB): imposta il colore di sfondo void setimage(image2d image): imposta l'immagine di sfondo void setcolorclearenable(boolean enable): imposta la cancellazione del color buffer void setdepthclearenable(boolean enable): imposta la cancellazione del depth buffer

38 La classe Background (4) Esempi (No su MPowerPlayer) BackgroundSample_a1 BackgroundSample_a2

39 La classe Camera (1) Definisce la posizione dell'osservatore nella scena e la sua proiezione dal 3D al 2D La camera è sempre orientata verso l'asse Z negativo e può essere posizionata ed orientata come qualsiasi altro nodo attraverso le trasformazioni (che vedremo a breve) Costruttore Camera() I metodi più importanti della classe Camera si trovano nella classe Transformable e servono per posizionarla nello spazio

40 La classe Camera (2) Esempio (No su MPowerPlayer) CameraSample

41 La classe Object3D Con gli esempi finora presentati abbiamo avuto modo di iniziare a conoscere alcune classi foglie dell'api e capire come funziona il retained mode Adesso bisogna andare a studiare le classi root La classe Object3D è una classe astratta base di tutti gli oggetti che possono essere parte di un mondo 3D Contiene ovviamente i metodi comuni a tutte le classi

42 La classe Object3D animazione (1) Una delle caratteristiche principali di questa classe è la possibilità di essere animata Le animazioni sono applicate all'oggetto ed a tutti i suoi discendenti nello scene graph Per fare ciò bisogna utilizzare il metodo int animate(int time): aggiorna tutte le proprietà animabili di questo oggetto e di tutti i suoi discendenti nello scene graph

43 La classe Object3D animazione (2)

44 La classe Object3D l'id (1) Ogni Object3D può avere assegnato un ID, attraverso il metodo void setuserid(int userid): imposta l'id dell'oggetto Ovviamente esiste il corrispondente int getuserid(): restituisce l'id dell'oggetto Gli ID possono essere usati ad esempio per recuperare un oggetto da una scena ottenuta da stream

45 La classe Object3D l'id (2) Per recuperare un oggetto si utilizza il metodo Object3D find(int userid): recupera un oggetto con un dato userid e raggiungibile da questo oggetto Il metodo find(...) cerca in tutti gli oggetti raggiungibili da questo oggetto Se ci sono oggetti con lo stesso ID ne verrà restituito uno qualsiasi (non c'è modo di decidere quale)

46 La classe Object3D l'id (3)

47 La classe Object3D dati utente Infine la classe Object3D ha un campo riservato per i dati dell'utente Questo campo può contenere qualsiasi Object ed il suo utilizzo dipende dall'applicazione che si sta sviluppando I metodi per impostare e recuperare tale campo sono void setuserobject(object userobject): imposta un dato dell'utente Object getuserobject(): recupera un dato dell'utente

48 La classe Object3D Altri metodi utili void addanimationtrack(animationtrack animationtrack), void removeanimationtrack(animationtrack animationtrack): aggiunge/rimuove un gestore di animazioni AnimationTrack getanimationtrack(int index): restituisce il gestore di animazioni alla posizione index int getanimationtrackcount(): restituisce il numero di gestori delle animazioni associati a questo Object3D Object3D duplicate(): duplica questo Object3D int getreferences(object3d[] references): restituisce numero ed oggetti direttamente referenziati da questo Object3D

49 La classe Transformable (1) La classe Transformable è una classe astratta per Node e Texture2D e definisce i metodi comuni per la manipolazione delle trasformazioni di nodi e texture Le trasformazioni di nodi e texture consistono di quattro componenti: traslazione (T), rotazione (R), scala (S) ed una generica matrice 4x4 (M) Un vettore omogeneo p = (x, y, z, w), rappresentante un vertice (Node) o una coordinata di texture (Texture2D), è trasformato nel vettore p' = (x', y', z', w') = T R S M p

50 La classe Transformable (2) Metodi utili void getcompositetransform(transform transform): restituisce la matrice composita C = T R S M void gettranslation(float[] xyz): restituisce la componente di traslazione void getorientation(float[] angleaxis): restituisce la componente di rotazione void getscale(float[] xyz): restituisce la componente di scala void gettransform(transform transform): restituisce la matrice generica 4x4 M (continua...)

51 La classe Transformable (3) Metodi utili (segue) void settranslation(float tx, float ty, float tz): imposta la componente di traslazione void translate(float tx, float ty, float tz): aggiunge una traslazione alla componente di traslazione void setorientation(float angle, float ax, float ay, float az): imposta la componente di rotazione void settransform(transform transform): imposta la matrice generica 4x4 M (continua...)

52 La classe Transformable (4) Metodi utili (segue) void postrotate(float angle, float ax, float ay, float az): moltiplica a destra la componente di rotazione per la rotazione data void prerotate(float angle, float ax, float ay, float az): moltiplica a sinistra la componente di rotazione per la rotazione data void setscale(float sx, float sy, float sz): imposta la componente di scala void scale(float sx, float sy, float sz): moltiplica la componente di scala per la scala data

53 La classe Transform (1) Transform (classe di appoggio di Transformable) è una generica matrice 4x4 rappresentante una qualsiasi trasformazione 3D Anche se Transform permette di definire qualsiasi matrice 4x4 conviene usare soltanto matrici invertibili (non singolari) Questo poiché l'utilizzo di una matrice non invertibile potrebbe portare al verificarsi di eccezioni a run-time

54 La classe Transform (2) Costruttori: Transform() Transform(Transform transform) Metodi utili void get(float[] matrix): restituisce il contenuto di questa trasformazione in un array di 16 elementi void set(float[] matrix), void set(transform transform): imposta questa trasformazione (continua...)

55 La classe Transform (3) Metodi utili (segue) void setidentity(): imposta questa trasformazione all'identità void invert(): inverte questa matrice, se possibile void transpose(): calcola la trasposta di questa matrice void transform(float[] vectors): moltiplica il vettore 4D dato per questa trasformazione void transform(vertexarray in, float[] out, boolean W): moltiplica i vertici di in per questa matrice e conserva il risultato nel vettore out, W vale true per impostare la componente w a 1, false per impostarla a 0 (continua...)

56 La classe Transform (4) Metodi utili (segue) void postmultiply(transform transform): moltiplica a destra questa trasformazione per la trasformazione data void postrotate(float angle, float ax, float ay, float az), void postrotatequat(float qx, float qy, float qz, float qw): moltiplica a destra questa trasformazione per la rotazione data void postscale(float sx, float sy, float sz): moltiplica a destra questa trasformazione per la scala data void posttranslate(float tx, float ty, float tz): moltiplica a destra questa trasformazione per la traslazione data

57 La classe Node La classe astratta per tutti i nodi dello scene graph Ogni nodo definisce un sistema di coordinate locali che può essere trasformato relativamente al sistema di coordinate del nodo padre Tale trasformazione consiste sempre delle quattro componenti T, R, S ed M

58 La classe Node allineamento (1) Un nodo può essere allineato rispetto ad un nodo di riferimento Questo significa che il nodo allineato è (su richiesta) automaticamente orientato in modo tale che il suo sistema di coordinate corrisponda al sistema di coordinate del nodo di riferimento Un caso classico di utilizzo è per la creazione delle billboard, ovvero oggetti che guardano sempre verso la camera (maggiori dettagli nel corso di Computer Graphics)

59 La classe Node allineamento (2) Quando un nodo è allineato la sua componente di rotazione originale R è sovrascritta con una rotazione di allineamento A Le altre componenti sono lasciate inalterate La trasformazione dal sistema di coordinate locali di un nodo allineato al sistema di coordinate del suo nodo padre è p' = T A S M p Quando necessario l'applicazione deve esplicitamente invocare l'allineamento su un nodo

60 La classe Node allineamento (3) Per allineare un nodo bisogna chiamare il metodo void align(node reference): allinea il nodo al nodo reference void setalignment(node zref, int ztarget, Node yref, int ytarget): allinea il nodo ai nodi di riferimento ztarget ed ytarget posso assumere i valori: NONE nessun allineamento ORIGIN allinea l'asse in modo tale che punti all'origine del sistema di coordinate del nodo di riferimento X_AXIS, Y_AXIS, Z_AXIS allinea l'asse con l'asse x, y, o z del sistema di coordinate del nodo di riferimento

61 La classe Node allineamento (4) Altri metodi utili per l'allineamento sono Node getalignmentreference(int axis): restituisce il nodo di riferimento per l'asse axis int getalignmenttarget(int axis): restituisce l'asse target per l'asse axis

62 La classe Node proprietà ereditate (1) Oltre alle trasformazioni ci sono altre tre proprietà i cui valori sono influenzati dai nodi padre Queste proprietà sono: il fattore alpha, il flag di rendering ed il flag di picking Il fattore alpha è un valore nel range [0, 1] che definisce la trasparenza di un oggetto L'effettiva fattore alpha di un nodo è il prodotto del suo fattore alpha e dell'effettivo fattore alpha del nodo padre (definizione ricorsiva)

63 La classe Node proprietà ereditate (2) Il flag di rendering (picking) permette a gruppi di nodi di essere invisibili al rendering (picking) ovvero non sono visualizzati ( acchiappati ) L'effettivo flag di un nodo è la AND logica del suo flag e dell'effettivo flag del nodo padre (definizione ricorsiva) Ciò vuol dire che rendere un nodo visibile o acchiappabile non avrà l'effetto desiderato se qualche nodo superiore non lo è

64 La classe Node proprietà ereditate (3) Per recuperare ed impostare le proprietà si usano i metodi float getalphafactor(): recupera il fattore alpha void setalphafactor(float alphafactor): imposta il fattore alpha boolean isrenderingenabled(): recupera il flag di rendering void setrenderingenable(boolean enable): imposta il flag di rendering boolean ispickingenabled(): recupera il flag di picking void setpickingenable(boolean enable): imposta il flag di picking

65 La classe Node scope (1) Lo scope di un Node è un bitmask integer che permette ai nodi di uno scene graph di formare gruppi logici indipendenti dalla gerarchia fisica dello scene graph In altre parole nodi appartenenti a Group diversi possono appartenere allo stesso scope e viceversa Due nodi A e B appartengono allo stesso scope se scopea & scopeb!= 0

66 La classe Node scope (2) Lo scope serve principalmente in tre casi: visibilità solo gli oggetti che appartengono allo stesso scopo della camera sono renderizzati; questo da un modo aggiuntivo al flag di rendering per controllare l'insieme di oggetti visibili illuminazione una sorgente di luce ha effetto solo sugli oggetti che appartengono al suo scope (utile per migliorare le prestazioni e per poter creare scene complesse) picking solo gli oggetti che appartengono allo stesso scopo dell'oggetto acchiappante possono essere acchiappati

67 La classe Node scope (3) Lo scope di default è -1 (in binario una stringa del tipo ) Ciò implica che di default tutti i nodi appartengono a tutti gli scope Quindi di default tutti gli oggetti sono visibili da tutte le camere ed illuminati da tutte le sorgenti di luce Metodi per impostare e recuperare lo scope int getscope(), void setscope(int scope): recupera ed imposta lo scope di un nodo

68 La classe Group (1) Un Group è un nodo dello scene graph capace di conservare una lista (non ordinata) di altri nodi figli Può essere visto come un semplice raggruppatore logico (non fisico) di nodi La relazione padre-figlio è bidirezionale: se il nodo A è figlio del nodo B allora B è l'unico e solo genitore di A

69 La classe Group (2) Costruttore: Group() Metodi utili: void addchild(node child): aggiunge un nodo al gruppo void removechild(node child): rimuove un nodo dal gruppo Node getchild(int index): restituisce il nodo di posto index int getchildcount(): restituisce il numero di figli

70 Da Scrivere Descrizione completa ed esempi per le altre classi

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Geometria nel piano complesso

Geometria nel piano complesso Geometria nel piano complesso Giorgio Ottaviani Contents Un introduzione formale del piano complesso 2 Il teorema di Napoleone 5 L inversione circolare 6 4 Le trasformazioni di Möbius 7 5 Il birapporto

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Creazione di un disegno realistico con CorelDRAW

Creazione di un disegno realistico con CorelDRAW Creazione di un disegno realistico con CorelDRAW Hugo Hansen L'autore L'autore Hugo Hansen vive appena fuori dalla splendida città di Copenhagen. Esperto professionista nell'ambito del design grafico,

Dettagli

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE 1 DIPENDENZA E INDIPENDENZA LINEARE Se ho alcuni vettori v 1, v 2,, v n in uno spazio vettoriale V, il sottospazio 1 W = v 1,, v n di V da loro generato è

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ Classi ed oggetti. Classi derivate, ereditarietà e polimorfismo. Template Capitoli 12, 13, 14 Luis Joyannes Aguilar. Fondamenti di Programmazione in C++. Algoritmi,

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

Le trasformazioni geometriche

Le trasformazioni geometriche Le trasformazioni geometriche Le trasformazioni geometriche Le trasformazioni affini del piano o affinità Le similitudini Le isometrie Le traslazioni Le rotazioni Le simmetrie assiale e centrale Le omotetie

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

Progetto Didattico di Informatica Multimediale

Progetto Didattico di Informatica Multimediale Progetto Didattico di Informatica Multimediale VRAI - Vision, Robotics and Artificial Intelligence 20 aprile 2015 Rev. 18+ Introduzione Le videocamere di riconoscimento sono strumenti sempre più utilizzati

Dettagli

RETTE, PIANI, SFERE, CIRCONFERENZE

RETTE, PIANI, SFERE, CIRCONFERENZE RETTE, PIANI, SFERE, CIRCONFERENZE 1. Esercizi Esercizio 1. Dati i punti A(1, 0, 1) e B(, 1, 1) trovare (1) la loro distanza; () il punto medio del segmento AB; (3) la retta AB sia in forma parametrica,

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Il Sistema Operativo: il File System

Il Sistema Operativo: il File System Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

I class diagram. Class - names

I class diagram. Class - names I class diagram Forniscono una vista strutturale (statica) del sistema in termini di classi attributi operazioni relazioni tra classi (associazioni, generalizzazioni,...) Un class diagram rappresenta uno

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

Esercizi di Algebra Lineare. Claretta Carrara

Esercizi di Algebra Lineare. Claretta Carrara Esercizi di Algebra Lineare Claretta Carrara Indice Capitolo 1. Operazioni tra matrici e n-uple 1 1. Soluzioni 3 Capitolo. Rette e piani 15 1. Suggerimenti 19. Soluzioni 1 Capitolo 3. Gruppi, spazi e

Dettagli

12 famiglie e tipi di file (estensioni più comuni)

12 famiglie e tipi di file (estensioni più comuni) 12 famiglie e tipi di file (estensioni più comuni) Ogni file è caratterizzato da un proprio nome e da una estensione, in genere tre lettere precedute da un punto; ad esempio:.est Vi sono tuttavia anche

Dettagli

CNC. Linguaggio ProGTL3. (Ref. 1308)

CNC. Linguaggio ProGTL3. (Ref. 1308) CNC 8065 Linguaggio ProGTL3 (Ref. 1308) SICUREZZA DELLA MACCHINA È responsabilità del costruttore della macchina che le sicurezze della stessa siano abilitate, allo scopo di evitare infortuni alle persone

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

Rango: Rouchè-Capelli, dimensione e basi di spazi vettoriali.

Rango: Rouchè-Capelli, dimensione e basi di spazi vettoriali. CAPITOLO 7 Rango: Rouchè-Capelli, dimensione e basi di spazi vettoriali. Esercizio 7.1. Determinare il rango delle seguenti matrici al variare del parametro t R. 1 4 2 1 4 2 A 1 = 0 t+1 1 A 2 = 0 t+1 1

Dettagli

Oscurare le facce nei video:

Oscurare le facce nei video: Oscurare le facce nei video: Maschere Questo mini howto e' stato scritto per preservare l'anonimato delle persone durante le manifestazioni. Questo tipo di documentazione viene prodotta in seguito ad svariate

Dettagli

CREAZIONE DI UN FILE

CREAZIONE DI UN FILE #include #include CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

I siti freesound e cgtextures contengono... suoni e texture, in abbondanza.

I siti freesound e cgtextures contengono... suoni e texture, in abbondanza. Un gioco 3d in java. Quant'è complicato fare un gioco in 3D? Dipende dal gioco. Volendo fare Unreal4000 o Crysis 5 quasi certamente molto complicato. Ma se svolazziamo un pochino più in basso potremmo

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

GEOMETRIA I Corso di Geometria I (seconda parte)

GEOMETRIA I Corso di Geometria I (seconda parte) Corso di Geometria I (seconda parte) anno acc. 2009/2010 Cambiamento del sistema di riferimento in E 3 Consideriamo in E 3 due sistemi di riferimento ortonormali R e R, ed un punto P (x, y, z) in R. Lo

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

CA Process Automation

CA Process Automation CA Process Automation Glossario Release 04.2.00 La presente documentazione, che include il sistema di guida in linea integrato e materiale distribuibile elettronicamente (d'ora in avanti indicata come

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

RELAZIONE DI FINE TIROCINIO

RELAZIONE DI FINE TIROCINIO Dipartimento di Ingegneria Civile Laura Magistrale in Ingegneria Civile per la Protezione dai Rischi Naturali A.A. 2014-2015 RELAZIONE DI FINE TIROCINIO INTRODUZIONE ALL'USO DEL SOFTWARE GIS UDIG Tirocinante:

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica

Dettagli

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0. Problema. Sia W il sottospazio dello spazio vettoriale R 4 dato da tutte le soluzioni dell equazione x + x 2 + x = 0. (a. Sia U R 4 il sottospazio dato da tutte le soluzioni dell equazione Si determini

Dettagli

MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI. Luca Carnini. Tesina presentata per la discussione del diploma di laurea in

MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI. Luca Carnini. Tesina presentata per la discussione del diploma di laurea in MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI di Luca Carnini Tesina presentata per la discussione del diploma di laurea in Ingegneria informatica Politecnico di Milano sede

Dettagli

Predire la struttura terziaria

Predire la struttura terziaria Predire la struttura terziaria E di gran lunga la predizione più complessa che si possa fare su una proteina. Esistono 3 metodi principali di predizione: 1 - Homology modelling: se si conoscono proteine

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

METODI ITERATIVI PER SISTEMI LINEARI

METODI ITERATIVI PER SISTEMI LINEARI METODI ITERATIVI PER SISTEMI LINEARI LUCIA GASTALDI 1. Metodi iterativi classici Sia A R n n una matrice non singolare e sia b R n. Consideriamo il sistema (1) Ax = b. Un metodo iterativo per la soluzione

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Guida all'installazione ed uso dell'app RXCamLink

Guida all'installazione ed uso dell'app RXCamLink Guida all'installazione ed uso dell'app RXCamLink Questa guida riporta i passi relativi all'installazione ed all'utilizzo dell'app "RxCamLink" per il collegamento remoto in mobilità a sistemi TVCC basati

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

FOGLIO 4 - Applicazioni lineari. { kx + y z = 2 x + y kw = k. 2 k 1

FOGLIO 4 - Applicazioni lineari. { kx + y z = 2 x + y kw = k. 2 k 1 FOGLIO 4 - Applicazioni lineari Esercizio 1. Si risolvano i seguenti sistemi lineari al variare di k R. { x y + z + 2w = k x z + w = k 2 { kx + y z = 2 x + y kw = k Esercizio 2. Al variare di k R trovare

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

(V) (FX) Z 6 è un campo rispetto alle usuali operazioni di somma e prodotto.

(V) (FX) Z 6 è un campo rispetto alle usuali operazioni di somma e prodotto. 29 giugno 2009 - PROVA D ESAME - Geometria e Algebra T NOME: MATRICOLA: a=, b=, c= Sostituire ai parametri a, b, c rispettivamente la terzultima, penultima e ultima cifra del proprio numero di matricola

Dettagli

Compilazione con WinEdt

Compilazione con WinEdt Luciano Battaia Sommario Guida rapida ed elementare ai diversi modi di compilazione di un file L A TEX, usando WinEdt, con alcune indicazioni di base sui formati immagine supportati. Gli output standard

Dettagli

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i Esercizi PHP 1. Scrivere uno script PHP che produca in output: 1. La tabellina del 5 2. La tavola Pitagorica contenuta in una tabella 3. La tabellina di un numero ricevuto in input tramite un modulo. Lo

Dettagli

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

GUIDA ALL UTILIZZO DELL ECM 8

GUIDA ALL UTILIZZO DELL ECM 8 GUIDA ALL UTILIZZO DELL ECM 8 GUIDA ALL UTILIZZO DELL ECM 8 1) Introduzione Pg 3 2) L area amministratore Pg 3 2.1) ECM Pg 4 2.1.1) Sezione Struttura Pg 5 2.1.2) Sezione Documento Pg 7 2.1.3) Sezione Pubblicazione

Dettagli

Controllare un nastro trasportatore fischertechnik con Arduino

Controllare un nastro trasportatore fischertechnik con Arduino TITOLO ESPERIENZA: Controllare un nastro trasportatore fischertechnik con Arduino PRODOTTI UTILIZZATI: OBIETTIVO: AUTORE: RINGRAZIAMENTI: Interfacciare e controllare un modello di nastro trasportatore

Dettagli

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi I semestre 03/04 Inidirizzi IP e Nomi di Dominio Domain Name System Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica

Dettagli

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

Dettagli

Funzioni di più variabili. Ottimizzazione libera e vincolata

Funzioni di più variabili. Ottimizzazione libera e vincolata libera e vincolata Generalità. Limiti e continuità per funzioni di 2 o Piano tangente. Derivate successive Formula di Taylor libera vincolata Lo ordinario è in corrispondenza biunivoca con i vettori di

Dettagli

Configurazioni Mobile Connect

Configurazioni Mobile Connect Mailconnect Mail.2 L EVOLUZIONE DELLA POSTA ELETTRONICA Configurazioni Mobile Connect iphone MOBILE CONNECT CONFIGURAZIONE MOBILE CONNECT PER IPHONE CONFIGURAZIONE IMAP PER IPHONE RUBRICA CONTATTI E IPHONE

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli