Cos'è this? this è un elemento DOM

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Cos'è this? this è un elemento DOM"

Transcript

1 Cos'è this? Uno degli aspetti più confusi di jquery è come assegna l'ambito durante il callback. Deve essere parecchio confuso perché l'argomento genera un sacco di domande sulla mailing list di jquery. Peccato, davvero, perché jquery imposta l'ambito al fine di semplificare il nostro codice e non per renderlo più confuso. Ecco alcune indicazioni che possono aiutare a ricordare di cosa si tratta la parola this. this è un elemento DOM (Document Object Model) Quando this è un elemento DOM? La risposta breve è - di solito. Lo scripting con jquery molto spesso comporta l'uso di funzioni di callback. Nella gestione di un evento, o iterando un insieme di nodi, nell'animare un'immagine, o nell'applicazione di un filtro dinamico, le funzioni di richiamate (o callback) sono utilizzate per invocare il codice personalizzato al momento opportuno. Per rendere le cose facili per te, jquery imposta l'ambito della funzione di callback all'elemento che costituisce l'oggetto della richiamata. Per esempio, quando si vuole gestire un evento clic del mouse per un elemento, si associa una funzione per gestire l'evento in questo modo: 1 $('#mybutton').bind('click', function() { 2 // il nostro codice per gestire l'evento 3 // si trova qui, nella funzione di callback Quando un utente fa clic sull'elemento 'mybutton', jquery invoca la funzione di callback che è stato passato al metodo bind. Ma quando s'invoca nostro callback si definisce l'ambito corrente all'elemento DOM che ha avviato l'evento, in questo caso l'elemento 'mybutton'. jquery lo fa per comodità. L'oggetto che ha più probabilità di essere richiamato dall'evento in callback è l'elemento che ha generato l'evento. E quale modo più facile per avere accesso a esso utilizzando la parola chiave this? Così all'interno della funzione di callback si può presumere che this è l'elemento rilevante DOM: 1 $('#mybutton').bind('click', function() { 2 // 'this' è l'elemento DOM che ha attivato l'evento 3 alert(this.id == 'mybutton'); Diamo un'occhiata a quanto spesso this è un elemento DOM quando si utilizza jquery. Abbiamo appena visto il caso di un gestore di eventi, qui sono alcuni altri: Elementi d'iterazione con il metodo each: 1 $('div').each(function() { 2 // 'this' è un elemento DOM 3 alert(this.tagname.tolowercase() == 'div');

2 Usando il metodo load di AJAX: 1 $('#mydiv').load('myurl.php', function() { 2 // 'this' è un elemento DOM 3 alert(this.id == 'mydiv'); Usando animazione: 1 $('#mydiv').fadeout('slow', function() { 2 // 'this' è un elemento DOM 3 alert(this.id == 'mydiv'); Utilizzando filtri di selezione: 1 var set = $('div').filter(function() { 2 // 'this' è l'elemento DOM 3 alert(this.tagname.tolowercase() == 'div'); 4 return true; 5 }); Usando il costruttore "document ready": 1 $(document).ready(function() { 2 // 'this' è l'oggetto del documento 3 alert(this === document); Usando eventi globali AJAX: 1 $().ajaxstart(function() { 2 // 'this' è l'oggetto del documento 3 alert(this === document); Quest'ultimo potrebbe confondere. Perché this è l'oggetto del documento nella richiamata ajaxstart? I metodi che avvolgono le funzioni di callback per gli eventi globali AJAX sono metodi vincolanti. Questi si legano al gestore di eventi di un elemento DOM. Quando l'evento avviene, il gestore è chiamato, nel contesto dell'elemento DOM. E quando si utilizza la funzione dollaro con jquery senza argomenti, utilizza implicitamente l'oggetto documento come l'elemento selezionato. Quindi un altro modo di scrivere lo snippet del codice precedente è il seguente: 1 $(document).bind('ajaxstart', function() { 2 alert(this == document); 3 });

3 Ora probabilmente si può vedere come this è determinato da come si chiamano i metodi AJAX vincolanti: 1 $(window).ajaxstart(function() { 2 alert(this == window); 3 }); 4 $('#busyindicator').ajaxstop(function() { 5 alert(this.id == 'busyindicator'); 6 }); 7 $('div.error').ajaxerror(function() { 8 alert(this.tagname.tolowercase() == 'div'); 9 }); Cos'è this? this è un oggetto Come menzionato prima, quando si cicla degli elementi con l iteratore each di jquery, this è sempre un elemento DOM. Tecnicamente, è più esatto dire che all'interno di un'iterazione each, this è il soggetto del ciclo nell'iterazione corrente. Questa distinzione è importante perché il metodo each di jquery può essere utilizzato per scorrere su qualsiasi tipo di oggetti array e non solo Liste di nodi. 01 var arr = ['a','b','c']; 02 $.each(arr, function(index, obj) { 03 // 'this' è l'oggetto dell'iterazione corrente 04 alert(this.constructor == String); 05 alert(arr[index] == this); 06 alert(this == obj); 07 }); 08 // o utilizzando una sintassi diversa 09 // ma funzionalmente equivalenti: 10 $(arr).each(function(index, obj) { 11 // 'this' è l'oggetto dell'iterazione corrente 12 alert(this.constructor == String); 13 alert(arr[index] == this); 14 alert(this == obj); 15 });

4 this è un oggetto jquery Prendete nota autori dei plugin! Se avete scritto un plugin le cui funzionalità possono essere applicate a molti elementi, allora molto probabilmente l'avete fatto utilizzando l'estensione standard fn: 1 $.fn.myplugin = function() { 2 // il vostro codice del plugin va qui! 3 }); All'interno della vostra funzione del plugin this è l'oggetto jquery. E se si rispettano le linee guida del Plugin Authoring, il metodo del plugin restituisce sempre this al fine di mantenere Chainability. 1 $.fn.myplugin = function() { 2 // 'this' è l'oggetto jquery 3 alert("jquery version: " + this.jquery); 4 return this; 5 }); Tipicamente, un plugin funziona su ogni elemento DOM che è stato selezionato dall'oggetto jquery. In poche parole, ciò significa usare il metodo each all'interno di ogni plugin. Troverete spesso questa tecnica implementata nel seguente modo: 1 $.fn.myplugin = function() { 2 // 'this' è l'oggetto jquery 3 alert("jquery version: " + this.jquery); 4 return this.each(function() { 5 // 'this' è ora l'elemento DOM 6 // come soggetto dell'iterazione 'each' 7 alert("current element: " + this.tagname); 8 }); 9 }); this è un oggetto AJAX per impostazioni Ho accennato prima sul metodo load di jquery e le funzioni di callback per gli eventi globali AJAX. Quelle richiamate sono legate specificamente a un elemento del DOM o a un insieme di elementi. Il resto dei metodi AJAX, $.get, $.post, $.ajax, ecc, operano al di fuori del contesto di un insieme specifico dell'elemento. Ma questi metodi possono essere passati con le funzioni di callback per cui è importante capire che this è in quelle richiamate. Fortunatamente, tutto quello che si deve ricordare è che per ciascuna delle funzioni di callback locale AJAX, beforesend, success, complete, e error, this è sempre uguale alle impostazioni dell'oggetto utilizzato per la chiamata AJAX.

5 01 $.get('myurl', function() { 02 // 'this' è l'oggetto AJAX per le 03 // impostazioni usato per ottenere la chiamata 04 alert(this.url == 'myurl'); 05 }); 06 $.ajax({ 07 type: 'POST', 08 url: 'myurl', 09 timeout: 5000, 10 beforesend: function() { 11 alert(this.url == 'myurl'); 12 }, 13 error: function() { 14 alert(this.timeout == 5000); 15 }, 16 success: function() { 17 alert(this.type == 'POST'); 18 }, 19 complete: function() { 20 alert(this.async == true); 21 } 22 }); Conversione da this a $this Quando this è un elemento DOM che spesso è nel contesto del codice che ha bisogno di accedere o manipolare in qualche modo. Quindi, come possiamo utilizzare la potenza delle API jquery quando this è un elemento DOM? Questo, naturalmente, è qualcosa che eccelle in jquery. Basta trasformare this in $this: 01 $('div').each(function() { 02 // 'this' è un elemento DOM 03 // avvolgere 'this' in un oggetto jquery 04 var $this = $(this); 05 // ora abbiamo l'api jquery a nostra disposizione 06 var title = $this.attr("title"); 07 if (title!= null) { 08 $this.prepend("<h2>" + title + "</h2>"); 09 } 10 }); In caso di dubbio Quando siete confusi su cosa è this all'interno di un blocco di un dato codice, chiedetevi: "Che cosa ha più senso qui?" Molto spesso, la risposta a questa domanda è uguale a this.

6

Fondamentali di jquery

Fondamentali di jquery Fondamentali di jquery b) Nozioni JavaScript Variabili condizionali utilizzando l'operatore ternario A volte si desidera impostare il valore di una variabile in funzione a una certa condizione. Per farlo

Dettagli

Laboratorio Progettazione Web Modello di applicazione Web

Laboratorio Progettazione Web Modello di applicazione Web Laboratorio Progettazione Web Modello di applicazione Web Andrea Marchetti IIT-CNR AA 2015/2016 Cosa devo fare? Gestire i 3 livelli 1. Tabella con la lista dei film movies(id,titolo,anno,genere,image)

Dettagli

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

AJAX. Asynchronous JavaScript and XML

AJAX. Asynchronous JavaScript and XML AJAX Asynchronous JavaScript and XML AJAX Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina

Dettagli

Laboratorio Progettazione Web Modello di applicazione Web

Laboratorio Progettazione Web Modello di applicazione Web Laboratorio Progettazione Web Modello di applicazione Web Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 INDICE 1. Libreria per accedere al DB Mysql 2. Esempio di un programma PHP che

Dettagli

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2018/2019 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo

Dettagli

Linguaggi e tecnologie per il Web. Parte 6 JSON, localstorage e funzioni in JavaScript

Linguaggi e tecnologie per il Web. Parte 6 JSON, localstorage e funzioni in JavaScript Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2016/2017 Parte 6 JSON, localstorage e funzioni in JavaScript Riccardo Rosati JSON

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

Ajax e jquery. Emiliano Castellina. Dipartimento di Automatica e Informatica Politecnico di Torino

Ajax e jquery. Emiliano Castellina. Dipartimento di Automatica e Informatica Politecnico di Torino Ajax e jquery Emiliano Castellina Dipartimento di Automatica e Informatica Politecnico di Torino Introduzione a jquery by Emiliano Castellina is licensed under a Creative Commons Attribuzione - Non commerciale

Dettagli

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2017/2018 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo

Dettagli

Programmazione Web. Javascript.

Programmazione Web. Javascript. Programmazione Web Javascript diegozabot@yahoo.it Introduzione Cos è Javascript è un linguaggio di scripting lato client, interpretato direttamente dal browser. Implementato per la prima volta in Netscape

Dettagli

HIGHCHARTS. Federico Martinelli

HIGHCHARTS. Federico Martinelli HIGHCHARTS Federico Martinelli Data Visualization Grandissime quantità di dati da gestire Bisogno di semplicità e immediatezza con informazioni utili e di qualità. È necessaria una tecnica che permetta

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

Introduzione al C Lez. 4. Allocazione Dinamica della memoria

Introduzione al C Lez. 4. Allocazione Dinamica della memoria Introduzione al C Lez. 4 Allocazione Dinamica della memoria Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso l allocazione esplicita di blocchi di memoria

Dettagli

Applicazioni web. Parte 8 AJAX

Applicazioni web. Parte 8 AJAX Applicazioni web Parte 8 AJAX Alberto Ferrari 1 AJAX - Definizione Asynchronous JavaScript and XML (AJAX) non è di per sè una tecnologia, ma è un termine che descrive un "nuovo" approccio all'utilizzo

Dettagli

A. Ferrari. Ajax. Asynchronous JavaScript and XML. Alberto Ferrari

A. Ferrari. Ajax. Asynchronous JavaScript and XML. Alberto Ferrari Ajax Asynchronous JavaScript and XML 1 Definizione o Asynchronous JavaScript and XML (AJAX) non è di per sé una tecnologia, ma è un termine che descrive un "nuovo" approccio all'utilizzo di diverse tecnologie

Dettagli

Prof. Pagani Corrado JQUERY

Prof. Pagani Corrado JQUERY Prof. Pagani Corrado JQUERY INTRODUZIONE Abbiamo visto come il linguaggio JavaScript sia stato rivalutato nell ultimo periodo grazie alla diffusione di tecniche come AJAX e alla possibilità di riprodurre

Dettagli

Array. Definizione e utilizzo di vettori

Array. Definizione e utilizzo di vettori Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];

Dettagli

Laboratorio di Python

Laboratorio di Python Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione 1 Conoscere l uso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali classi di Collection usare in casi specifici Conoscere

Dettagli

Funzioni costruttore e istanza di un'oggetto

Funzioni costruttore e istanza di un'oggetto Funzioni costruttore e istanza di un'oggetto Solitamente si dice che un oggetto è un'istanza di una classe. In Javascript non esistono classi ma funzioni costruttore che sono abbastanza simili. Per instanziare

Dettagli

AJAX. Riccardo Rosati

AJAX. Riccardo Rosati AJAX Riccardo Rosati Linguaggi e tecnologie per il Web Corso di laurea in Ingegneria informatica e automatica Sapienza Università di Roma a.a. 2016/2017 http://www.dis.uniroma1.it/~rosati/lw/ AJAX AJAX

Dettagli

Introduzione al C Lez. 4

Introduzione al C Lez. 4 Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso

Dettagli

Laboratorio Progettazione Web Modello di applicazione Web

Laboratorio Progettazione Web Modello di applicazione Web Laboratorio Progettazione Web Modello di applicazione Web Andrea Marchetti IIT-CNR AA 2016/2017 Overview Questa lezione mettiamo insieme tutte le cose dette durante il corso Applicazioni 3 tier PhpMyAdmin

Dettagli

semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente

semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente 1 of 23 22/11/2004 10.23 Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica Lista semplice:

Dettagli

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented

Dettagli

AJAX. Riccardo Rosati

AJAX. Riccardo Rosati AJAX Riccardo Rosati Linguaggi e tecnologie per il Web Corso di laurea in Ingegneria informatica e automatica Sapienza Università di Roma a.a. 2017/2018 http://www.dis.uniroma1.it/~rosati/lw/ AJAX AJAX

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli

JAVASCRIPT. Programmazione iterativa, Introduzione al DOM

JAVASCRIPT. Programmazione iterativa, Introduzione al DOM JAVASCRIPT Programmazione iterativa, Introduzione al DOM PROGRAMMAZIONE ITERATIVA LA PROGRAMMAZIONE ITERATIVA Flusso naturale del programma: viene eseguita un istruzione dopo l altra fino a che non si

Dettagli

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013 Laboratorio Progettazione Web Le funzioni in PHP Angelica Lo Duca IIT-CNR angelica.loduca@iit.cnr.it 2012/2013 Funzioni Una funzione è una sequenza di istruzioni che implementano una specifica funzionalità

Dettagli

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) Linguaggio di script interpretato con alcune caratteristiche Object Oriented HTTP

Dettagli

Programmazione in Java (I modulo) Lezione 20: Ereditarietà

Programmazione in Java (I modulo) Lezione 20: Ereditarietà Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi

Dettagli

Programmazione in Java Parte II

Programmazione in Java Parte II Programmazione in Java Parte II Lezione 7 Dott. Marco Faella Il Java Collection Framework Java Collection Framework (JCF) è una parte della libreria standard dedicata alle collezioni, intese come classi

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Programmazione Web. jquery.

Programmazione Web. jquery. Programmazione Web jquery diegozabot@yahoo.it Introduzione Cos è jquery è un kit open-source javascript utilizzato per creare applicazioni web dinamiche. jquery: è cross-browser supporta Ajax utilizza

Dettagli

Esercitazione Highcharts

Esercitazione Highcharts Esercitazione Highcharts Esercizio 1 Visualizzare i risultati della Web API popolazione.php attraverso un grafico a barre. Soluzione Per poter rappresentare i risultati della Web API popolazione attraverso

Dettagli

Costruiamo un'immagine o qualcosa di simile.

Costruiamo un'immagine o qualcosa di simile. Costruiamo un'immagine...... o qualcosa di simile. Se consideriamo la C che si trova in fondo a destra, ci accorgiamo che un'immagine non è altro che una tabella di valori. Nel caso in cui si consideri

Dettagli

Programmazione a Oggetti Lezione 8. Definizioni di Classi II

Programmazione a Oggetti Lezione 8. Definizioni di Classi II Programmazione a Oggetti Lezione 8 Definizioni di Classi II Sommario Costruzione di un oggetto Processo complesso che comprende varie fasi: 1. Allocare spazio per ogni campo - in ordine testuale - inizializza

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e

Dettagli

Pseudocodice; La miglior soluzione per leggere e capire facilmente gli esercizi di programmazione delle selezioni scolastiche. Lo Staff delle OII

Pseudocodice; La miglior soluzione per leggere e capire facilmente gli esercizi di programmazione delle selezioni scolastiche. Lo Staff delle OII Pseudocodice; La miglior soluzione per leggere e capire facilmente gli esercizi di programmazione delle selezioni scolastiche. Lo Staff delle OII 6 novembre 2018 Come anticipato nell ultima revisione del

Dettagli

definizione o Asynchronous JavaScript and XML (AJAX)

definizione o Asynchronous JavaScript and XML (AJAX) ajax definizione o Asynchronous JavaScript and XML (AJAX) o o o non è un linguaggio non è una tecnologia è un termine che descrive un "nuovo" approccio all'utilizzo di diverse tecnologie esistenti, compresi:

Dettagli

Oggetto window. Proprietà dell'oggetto window

Oggetto window. Proprietà dell'oggetto window Oggetto window L'oggetto window rappresenta lo spazio fisico contenente il documento dell'utente ed è quello che si trova a livello più alto nel DOM. Questo oggetto in pratica rappresenta la finestra del

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Array 2 Dati Strutturati I tipi di dati visti finora sono numeri (interi o razionali) booleani (valori

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.

Dettagli

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Dettagli

Scheme: liste e vettori

Scheme: liste e vettori a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Scheme: liste e vettori Liste e coppie.......................................... 2451 Dichiarazione di

Dettagli

Linguaggi per il Web Ingegneria Informatica, Ingegneria dell'informazione, Sapienza Università di Roma, sede di Latina 23 Maggio 2019 Corrado Di

Linguaggi per il Web Ingegneria Informatica, Ingegneria dell'informazione, Sapienza Università di Roma, sede di Latina 23 Maggio 2019 Corrado Di Linguaggi per il Web Ingegneria Informatica, Ingegneria dell'informazione, Sapienza Università di Roma, sede di Latina 23 Maggio 2019 Corrado Di Benedetto 1 Introduzione Selettori Eventi Effetti Modificare

Dettagli

PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER

PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER Il corso Master Web Developer con Certificazione internazionale W3Schools prepara lo studente a entrare nel mondo dello sviluppo Web (blog, siti, portali).

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Riepilogo della puntata precedente

Riepilogo della puntata precedente Riepilogo della puntata precedente Da quanto detto la volta scorsa, la scelta di passare un array mediante un puntatore è giustificata solo dal risparmio, in termini di memoria, che tale scelta comporta.

Dettagli

semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente

semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Liste doppie Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica semplice: doppia: Gli

Dettagli

Programmazione è gestione di eventi

Programmazione è gestione di eventi FUNZIONI Ed Eventi Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione

Dettagli

Oggetti. Definizioni di Classi II

Oggetti. Definizioni di Classi II Programmazione a Oggetti Definizioni di Classi II Sommario Costruzioni di oggetti Campi e metodi di classe Overloading Istanziazione di oggetti Costruzione di un oggetto Processo complesso che comprende

Dettagli

Parte 4C. Liste ordinate. H. Matisse Dance I, 1909 H. Matisse Dance, B.1

Parte 4C. Liste ordinate. H. Matisse Dance I, 1909 H. Matisse Dance, B.1 4B.1 Parte 4C Liste ordinate H. Matisse Dance I, 1909 H. Matisse Dance, 1910 4B.2 Lista ordinata Una lista è ordinata se l'ordine con cui compaiono gli elementi corrisponde ad un qualche ordinamento tra

Dettagli

Implementare un'interfaccia

Implementare un'interfaccia Le interfacce Un metodo astratto è un metodo senza corpo, con un ";" dopo l'intestazione. Una interfaccia (interface) in Java ha una struttura simile a una classe, ma può contenere SOLO costanti e metodi

Dettagli

Come creare un plugin per jquery

Come creare un plugin per jquery Come creare un plugin per jquery venerdì, 09 dicembre 2016 Quante volte ti è capitato di dover scrivere una funzione o una serie di righe in javascript e avere la sensazione di averlo già fatto in qualche

Dettagli

Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo)

Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo) Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo) - Calcolo media e varianza - Concatenare stringhe e conversione da numero a stringa - Numero di Eulero - Modificare un file fig in Matlab

Dettagli

AJAX: impariamo a utilizzarlo

AJAX: impariamo a utilizzarlo AJAX: impariamo a utilizzarlo Sono appena passate le feste e non ne possiamo più di panettone e canzoni natalizie e luci colorate per le strade Forse non è proprio così, rimpiangiamo quel clima di festa,

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Dettagli

INFORMATICA III Parte B -Progettazione e Algoritmi

INFORMATICA III Parte B -Progettazione e Algoritmi INFORMATICA III Parte B -Progettazione e Algoritmi Implementazione di codice algoritmico in Java Patrizia Scandurra patrizia.scandurra@unibg.it Università degli Studi di Bergamo a.a. 2010-11 Stessa interfaccia,

Dettagli

Strutture Dati per Inserimento Ordinato. Luca Abeni

Strutture Dati per Inserimento Ordinato. Luca Abeni Strutture Dati per Inserimento Ordinato Luca Abeni Esempio: Ordinamento di Numeri A cosa servono i tipi di dato strutturati? Non bastano i tipi scalari? Capiamolo con un esempio... Problema: dato un insieme

Dettagli

In questo articolo affronteremo il problema di inviare una pagina HTML come un dato via POST con javascript, in particolare con JQuery.

In questo articolo affronteremo il problema di inviare una pagina HTML come un dato via POST con javascript, in particolare con JQuery. In questo articolo affronteremo il problema di inviare una pagina HTML come un dato via POST con javascript, in particolare con JQuery. Per inviare dei dati da una pagina web si può procedere in due modi:

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 7. JavaScript Parte II (Complementi) Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica

Dettagli

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

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Enumerativi Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Enumerativi Finora abbiamo creato enumerativi

Dettagli

La Ricorsione. Carla Binucci e Walter Didimo

La Ricorsione. Carla Binucci e Walter Didimo La Ricorsione Carla Binucci e Walter Didimo Definizione induttiva di funzioni Una funzione definita in modo induttivo è una funzione definita in termini di sé stessa ad esempio la funzione f(n) = n! (fattoriale

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

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

il database parte III

il database parte III Indice La tabella file_managed La tabella file_usage La tabella filter La tabella flood La tabella history La tabella image_effects La tabella image_styles La tabella menu_custom La tabella menu_router

Dettagli

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

SET: specifica INTRODUZIONE. SET: esempio Si stampano i numeri casuali in ordine di generazione e il contenuto dell insieme.

SET: specifica INTRODUZIONE. SET: esempio Si stampano i numeri casuali in ordine di generazione e il contenuto dell insieme. INTRODUZIONE Il tipo di dati astratto insieme (set) definisce operazioni, quali inserimento e rimozione, su collezioni di oggetti che presentano molteplicità uno, cioè non sono ammessi duplicati. Una possibile

Dettagli

La stampa unione in Word 2007

La stampa unione in Word 2007 La stampa unione in Word 2007 Preparazione della lista dei contatti Devi inviare a più persone lo stesso documento e vuoi personalizzarlo con il nome del destinatario? È semplice con la funzione stampa

Dettagli

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata, Esempio: fai un giro del parco di

Dettagli

Gli ARRAY. Corso di Programmazione Cefi Informatica

Gli ARRAY. Corso di Programmazione Cefi Informatica VB.NET Gli ARRAY Gli array a una dimensione Gli array, o vettori, sono spazi di memoria in cui vengono immagazzianti in massa più variabili dello stesso tipo, accessibili tramite un indice. Prendiamo un

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

PROVA SCRITTA 23 MARZO 2010

PROVA SCRITTA 23 MARZO 2010 PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa

Dettagli

Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;

Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Array Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Il C supporta questo uso attraverso il tipo di dati array (o vettore): int

Dettagli

Introduzione alle stringhe e algoritmi collegati

Introduzione alle stringhe e algoritmi collegati Introduzione alle stringhe e algoritmi collegati Algoritmicamente August 15, 2009 1 Introduzione 1.1 Introduzione ai caratteri In informatica o più generalmente in una terminologia scientifica, il carattere

Dettagli

Tecnico della Produzione Multimediale per la Valorizzazione della Cultura e dell'arte

Tecnico della Produzione Multimediale per la Valorizzazione della Cultura e dell'arte Piano triennale regionale 2016-2018 Rete Politecnica PO FSE 2014/2020 Regione Emilia Romagna - Obiettivo Tematico 10 - Asse III Istruzione e formazione Priorità di Investimento 10.4 Obiettivo specifico

Dettagli

Il linguaggio C funzioni e puntatori

Il linguaggio C funzioni e puntatori Salvatore Cuomo Il linguaggio C funzioni e puntatori Lezione n. 8 Parole chiave: Linguaggio C, procedure, funzioni. Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

scrivere window.alert(). 2 Nell esempio sarebbe scritto solo var hello, senza pertanto attribuire alla variabile hello alcun valore

scrivere window.alert(). 2 Nell esempio sarebbe scritto solo var hello, senza pertanto attribuire alla variabile hello alcun valore In genere il metodo alert() è usato per verificare il valore delle variabili durante la fase di correzione degli errori (debugging), fase che può essere svolta anche con l ausilio di appositi programmi

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 di Laurea

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Metaprogramming in Python. Linguaggi dinamici A.A. 2010/2011 1

Metaprogramming in Python. Linguaggi dinamici A.A. 2010/2011 1 Metaprogramming in Python 1 Introduzione Il Python mette a disposizione tutta una serie di meccanismi per il metaprogramming Introspezione di classi e metodi Esecuzione di codice generato dinamicamente

Dettagli

La classe std::vector della Standard Template Library del C++

La classe std::vector della Standard Template Library del C++ La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

Il linguaggio C Strutture

Il linguaggio C Strutture Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi

Dettagli

Il programmatore che c'è in noi - Lezione 4 Variabili

Il programmatore che c'è in noi - Lezione 4 Variabili Il programmatore che c'è in noi - Lezione 4 Variabili Le variabili, in un programma, sono i contenitori dentro cui memorizzare dei valori, che possono cambiare (per questo si chiamano variabili) durante

Dettagli

Guida introduttiva al PHP

Guida introduttiva al PHP Fabio Castellini 26/01/2016 Guida introduttiva al PHP Cos'è il PHP? Il PHP è un linguaggio di scripting interpretato, simile al JavaScript, per intenderci, originariamente concepito per la programmazione

Dettagli

PROGRAMMIAMO Classi predefinite standard: la classe string C++ - Il contenitore string C++ Home Contatti Così come le funzioni di library standard del C++ mettonoa disposizione del programmatore codice

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Liste doppie. Doubly Linked Lists. GT: 6.2 (e 3.3) Argomenti della lezione

Liste doppie. Doubly Linked Lists. GT: 6.2 (e 3.3) Argomenti della lezione Liste doppie GT: 6.2 (e 3.3) Doubly Linked Lists 1 Argomenti della lezione ADT Position NodeList interface Position PositionList class DNode NodePositionList inserzione rimozione Iteratore ADT Iterator

Dettagli