Java Script Array 1 Sommario Introduzione Array Dichiarazione

  • Slides: 61
Download presentation
Java. Script: Array 1

Java. Script: Array 1

 • • • Sommario Introduzione Array Dichiarazione e Allocazione di Arrays Generazione Random

• • • Sommario Introduzione Array Dichiarazione e Allocazione di Arrays Generazione Random di Immagini con Array Riferimenti e Parametri di riferimenti Passaggio di Array a Funzioni Ordinamento Ricerca lineare e binaria Array Multidimensionali Java. Script: Array 2

Obiettivi • Introdurre la struttura dati array • Capire l’uso degli array per memorizzare,

Obiettivi • Introdurre la struttura dati array • Capire l’uso degli array per memorizzare, odinare e cercare elenchi e tabelle di valori • Capire come dichiarare e inizializzare un array e come riferire un elemento negli array • Capire come passare array a funzioni • Gestire array multidimensionali Java. Script: Array 3

Introduzione • Array – È una struttura dati per la gestione di elementi omogenei

Introduzione • Array – È una struttura dati per la gestione di elementi omogenei – La struttura for è particolarmente utile per la loro scansione Java. Script: Array 4

Array (1) • Array in Java. Script – Ogni elemento è indicizzato da un

Array (1) • Array in Java. Script – Ogni elemento è indicizzato da un numero • L’elemento iniziale è lo “zeresimo” – Per accedere a uno specifico elemento • nome dell’array • numero dell’elemento racchiuso tra parentesi quadre – Gli array conoscono la propria lunghezza • Proprietà length Java. Script: Array 5

Array (2) Name of array Position number (index or subscript) of the c element

Array (2) Name of array Position number (index or subscript) of the c element within array Java. Script: Array c[ 0 ] -45 c[ 1 ] 6 c[ 2 ] 0 c[ 3 ] 72 c[ 4 ] 1543 c[ 5 ] -89 c[ 6 ] 0 c[ 7 ] 62 c[ 8 ] -3 c[ 9 ] 1 c[ 10 ] 6453 c[ 11 ] 78 6

Array (3) Java. Script: Array 7

Array (3) Java. Script: Array 7

Dichiarazione e Allocazione di Array • Array in memoria – Objects – Operatore new

Dichiarazione e Allocazione di Array • Array in memoria – Objects – Operatore new • Alloca memoria per gli oggetti • È un operatore di allocazione dinamica della memoria var c; c = new Array( 12 ); Java. Script: Array 8

Esempio • Gli array crescono dinamicamente – Viene allocata maggiore memoria quando sono aggiunti

Esempio • Gli array crescono dinamicamente – Viene allocata maggiore memoria quando sono aggiunti nuovi elementi • È necessario inizializzare gli elementi – Il valore di default è undefined – Riferirsi a elementi non inizializzati oppure a elementi esterni ai limiti dell’array produce un errore Java. Script: Array 9

Init. Array. htmlha 5 elementi. (1 of 3) Array n 1 Array n 2

Init. Array. htmlha 5 elementi. (1 of 3) Array n 1 Array n 2 Java. Script: Array Il for inizializza gli elementi di n 1 con un valore uguale al rispettivo indice (da 0 a 4). è vuoto. 10

Il for aggiunge 5 elementi a Array n 2 e inizializza ogni elemento al

Il for aggiunge 5 elementi a Array n 2 e inizializza ogni elemento al valore del rispettivo indice (da 0 a 4). Ogni function mostra il contenuto dell’array passato come argomento in una tabella XHTML. Init. Array. html (1 of 3) Java. Script: Array 11

Java. Script: Array 12

Java. Script: Array 12

Esecuzione Java. Script: Array 13

Esecuzione Java. Script: Array 13

Dichiarazione e Inizializzazione • È possibile dichiarare e inizializzare in un solo step –

Dichiarazione e Inizializzazione • È possibile dichiarare e inizializzare in un solo step – Si specifica l’elenco di valori var n = [ 10, 20, 30, 40, 50 ]; var n = new Array( 10, 20, 30, 40, 50 ); – È anche possibile inizializzare solo alcuni valori • Si lasciano vuoti gli elementi non inizializzati var n = [ 10, 20, , 40, 50 ]; Java. Script: Array 14

Init. Array 2. html (1 of 2) Java. Script: Array 15

Init. Array 2. html (1 of 2) Java. Script: Array 15

Init. Array 2. html (2 of 2) Java. Script: Array 16

Init. Array 2. html (2 of 2) Java. Script: Array 16

Esecuzione Java. Script: Array 17

Esecuzione Java. Script: Array 17

Operatore for … in • Svolge una azione per ogni elemento dell’array – Svolge

Operatore for … in • Svolge una azione per ogni elemento dell’array – Svolge una iterazione su tutti gli e. Iementi – Assegna ogni elemento a una variabile per volta – Ignora elementi che non esistono Java. Script: Array 18

Sum. Array. html (1 of 2) Java. Script: Array 19

Sum. Array. html (1 of 2) Java. Script: Array 19

Java. Script: Array 20

Java. Script: Array 20

Esecuzione Java. Script: Array 21

Esecuzione Java. Script: Array 21

Array come Sostituti dello switch • Ogni elemento rappresenta un caso dello switch Java.

Array come Sostituti dello switch • Ogni elemento rappresenta un caso dello switch Java. Script: Array 22

Roll. Die. html (1 of 2) Java. Script: Array 23

Roll. Die. html (1 of 2) Java. Script: Array 23

Roll. Die. html (2 of 2) Java. Script: Array 24

Roll. Die. html (2 of 2) Java. Script: Array 24

Esecuzione Java. Script: Array 25

Esecuzione Java. Script: Array 25

Generazione casuale di immagini usando array • Approccio diverso (più chiaro) rispetto a quanto

Generazione casuale di immagini usando array • Approccio diverso (più chiaro) rispetto a quanto visto precedentemente – Specifica il nome dei file anziché interi – Il risultato della chiamata a Math. random è l’indice nell’array Java. Script: Array 26

Java. Script: Array 27

Java. Script: Array 27

Java. Script: Array 28

Java. Script: Array 28

Esecuzione Java. Script: Array 29

Esecuzione Java. Script: Array 29

Riferimenti e Parametri per Riferimento • Due modalità per il passaggio di parametri –

Riferimenti e Parametri per Riferimento • Due modalità per il passaggio di parametri – Per valore (by-value) • Si passa una copia del valore originale • È la modalità di default per i valori numerici e booleani • Il valore originale della variabile non cambia – Per riferimento (by-reference) • Si passa l’indirizzo di memoria del valore • Permette l’accesso diretto al valore originale • Migliora le prestazioni Java. Script: Array 30

Passaggio di Array a Function • Il nome dell’array è l’argomento – Non è

Passaggio di Array a Function • Il nome dell’array è l’argomento – Non è necessario passare la dimensione dell’array • Gli array conoscono la prorpia dimensione – È passato by reference • Elementi singoli sono passati by value se sono valori numerici o booleani • Array. join – Crea una stringa con tutti gli elementi dell’array Java. Script: Array 31

Pass. Array. html La prima chiamata a 3) mostra il (1 of contenuto dell’a

Pass. Array. html La prima chiamata a 3) mostra il (1 of contenuto dell’a prima della modifica. output. Array a Java. Script: Array La function modify. Array raddoppia ogni elemento. 32

Pass. Array. html (2 of 3) Java. Script: Array 33

Pass. Array. html (2 of 3) Java. Script: Array 33

Pass. Array. html (3 of 3) Java. Script: Array 34

Pass. Array. html (3 of 3) Java. Script: Array 34

Esecuzione Java. Script: Array 35

Esecuzione Java. Script: Array 35

Ordinamento di Array • Array. sort – Strumento per il confronto tra stringhe –

Ordinamento di Array • Array. sort – Strumento per il confronto tra stringhe – Funzione che restituisce un valore • Negativo se il primo argomento è minore del secondo • Zero se gli argomenti sono uguali • Positivo se il primo argomento è maggiore del secondo Java. Script: Array 36

Sort. html Method takes as its optional argument the name of a function that

Sort. html Method takes as its optional argument the name of a function that compares two arguments returns 2) a value of – 1, 0 or 1. (1 andof sort Java. Script: Array 37

Sort. html Function calculates the between the integer values of its (2 difference of

Sort. html Function calculates the between the integer values of its (2 difference of 2) arguments. compare. Integers Java. Script: Array 38

Esecuzione Java. Script: Array 39

Esecuzione Java. Script: Array 39

Ricerca Elementi in un Array • Ricerca Lineare – Si confrontano tutti gli elementi

Ricerca Elementi in un Array • Ricerca Lineare – Si confrontano tutti gli elementi con quello da cercare, fino a quando non si trova corrispondenza – Nel caso peggiore si deve scandire l’intero array • Ricerca Binaria – Gli elementi devono essere ordinati – Ad ogni iterazione l’intervallo di ricerca è dimezzato Java. Script: Array 40

Linear. Search. html (1 of 3) Java. Script: Array 41

Linear. Search. html (1 of 3) Java. Script: Array 41

Linear. Search. html (2 of 3) Java. Script: Array 42

Linear. Search. html (2 of 3) Java. Script: Array 42

Linear. Search. html (3 of 3) Java. Script: Array 43

Linear. Search. html (3 of 3) Java. Script: Array 43

Esecuzione Java. Script: Array 44

Esecuzione Java. Script: Array 44

Binary. Search. html (1 of 5) Java. Script: Array 45

Binary. Search. html (1 of 5) Java. Script: Array 45

Binary. Search. html (2 of 5) Java. Script: Array 46

Binary. Search. html (2 of 5) Java. Script: Array 46

Binary. Search. html (3 of 5) Java. Script: Array 47

Binary. Search. html (3 of 5) Java. Script: Array 47

Binary. Search. html (4 of 5) Java. Script: Array 48

Binary. Search. html (4 of 5) Java. Script: Array 48

Java. Script: Array 49

Java. Script: Array 49

Esecuzione Java. Script: Array 50

Esecuzione Java. Script: Array 50

Array Multidimensionali (1) • Array bidimensionali sono analoghi alle matrici – Righe e colonne

Array Multidimensionali (1) • Array bidimensionali sono analoghi alle matrici – Righe e colonne • Si specifica prima la riga e poi la colonna – Due indici Java. Script: Array 51

Array Multidimensionali (2) Column 0 Column 1 Column 2 Column 3 Row 0 a[

Array Multidimensionali (2) Column 0 Column 1 Column 2 Column 3 Row 0 a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ] Row 1 a[ 1 ][ 0 ] a[ 1 ][ 2 ] a[ 1 ][ 3 ] Row 2 a[ 2 ][ 0 ] a[ 2 ][ 1 ] a[ 2 ][ 3 ] Column subscript (or index) Row subscript (or index) Array name Java. Script: Array 52

Array Multidimensionali (3) • Dichiarazione e inizializzazione di array multidimensionali – Elementi raggruppati per

Array Multidimensionali (3) • Dichiarazione e inizializzazione di array multidimensionali – Elementi raggruppati per righe in parentesi quadre – Devono essere gestiti come array di array – Per creare l’array b con una riga di due elementi e una seconda riga di tre elementi: • var b = [ [ 1, 2 ], [ 3, 4, 5 ] ]; Java. Script: Array 53

Array Multidimensionali (4) • È anche possibile usare l’operatore new – Crea l’array b

Array Multidimensionali (4) • È anche possibile usare l’operatore new – Crea l’array b con due righe, la prima con 5 colonne e la seconda con tre: var b; b = new Array( 2 ); b[ 0 ] = new Array( 5 ); b[ 1 ] = new Array( 3 ); Java. Script: Array 54

Init. Array 3. html (1 of 2) Java. Script: Array 55

Init. Array 3. html (1 of 2) Java. Script: Array 55

Init. Array 3. html (2 of 2) Java. Script: Array 56

Init. Array 3. html (2 of 2) Java. Script: Array 56

Esecuzione Java. Script: Array 57

Esecuzione Java. Script: Array 57

Esempio: Quiz Online • Radio button – Rappresentati da un array • Il nome

Esempio: Quiz Online • Radio button – Rappresentati da un array • Il nome dei radio button è il nome dell’array • Un elemento per ogni button – La proprietà checked è true quando quel button è selezionato • Il form XHTML – Contiene controllo, tra cui i radio button – La proprietà action specifica cosa succede quando il form viene inviato • Può chiamare codice in Java. Script: Array 58

Quiz. html (1 of 2) Java. Script: Array 59

Quiz. html (1 of 2) Java. Script: Array 59

Quiz. html (2 of 2) Java. Script: Array 60

Quiz. html (2 of 2) Java. Script: Array 60

Esecuzione Java. Script: Array 61

Esecuzione Java. Script: Array 61