Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoTatiana Battaglia Modificato 11 anni fa
1
AN FI 98-99 Array Collezioni di dati uniformi in tipo Array
2
AN FI 98-99 Array Array Una collezione di dimensione prefissata di variabili anonime dello stesso tipo, ciascuna selezionabile attraverso una notazione ad indice –La prima componente viene referenziata con indice 0 u Una funzione dal dominio dellindice al dominio degli elementi
3
AN FI 98-99 Array A[i] detto A lidentificatore che denota un array di 10 elementi, la notazione A[i] ( 0<=i<=9 ) puo essere interpretata come lapplicazione della funzione A con argomento i, che restituisce il valore della i-ma componente di A
4
AN FI 98-99 Array Definizione di array in C [ ] int a[4]; Viene allocata memoria equivalente a 4 variabili di tipo int. aa[0] a[1] a[2] a[3]
5
AN FI 98-99 Array Inizializzazione di array in C int a[3] = {10,20,30}; inizializza il blocco di memoria associato ad a 30 a 20 10 a[0] a[1] a[2]
6
AN FI 98-99 Array Array name in C il simbolo a viene usato come sinonimo del riferimento alla prima cella del blocco riservato per l'array. a e sinomimo di 30 a 20 10 a[0] a[1] a[2]
7
AN FI 98-99 Array Dichiarazione di array in Java [ ]; //oppure u [] ; int a[]; int[] a; u La dimensione non e specificata. Alla variabile a viene associato il valore-riferimento null a null
8
AN FI 98-99 Array Inizializazione di array in Java int a[] = {10,20,30}; //oppure int[] a = {10,20,30}; associa alla variabile a l'indirizzo di partenza del blocco di memoria allocato nellheap che contiene la rappresentazione binaria dei tre valori interi specificati. crea (concettualmente) una nuova classe di dati
9
AN FI 98-99 Array Inizializzazione di array in Java a 30 20 10 a[0] a[1] a[2]
10
AN FI 98-99 Array Array name in Java il simbolo a denota una normale variabile il cui valore e' un riferimento (a un oggetto-array)
11
AN FI 98-99 Array Accesso alle componenti a[i] in Java: dereferenziamento della variabile a e indirizzamento della prima cella che rappresenta la variabile i ma dell'array. u in C: –valutazione dell'espressione a+i, con le regole dellaritmetica dei puntatori, che produce l'indirizzo della prima cella che rappresenta la variabile i ma dell'array
12
AN FI 98-99 Array A[i] in C int a[3] = {10,20,30}; a [2] : valore della cella a +2 = + 2 = 30 a 20 10 a[0] a[1] a[2]
13
AN FI 98-99 Array Trasferimento di array a funzioni u Sia in C che in Java gli argomenti delle funzioni possono essere dichiarati come array tipoOut f(tipoIn m[],int n){ …} m puo ricevere un qualunque array di elementi di tipo compatibile con tipoIn di dimensione fisica inferiore o uguale al valore attuale specifcato per n
14
AN FI 98-99 Array Trasferimento di array a funzioni u I vettori non vengono mai trasferiti per copia, ne' in C ne' in Java u Sia in Java che in C si trasmette un riferimento. – sono trasferiti per copia i riferimenti
15
AN FI 98-99 Array Esempio (java) int sumArray(int a[], int n){ retun( n==0 ) ? a[0] : a[n]+sumArray(a,n-1); }
16
AN FI 98-99 Array SumArray (java) int testArray(){ int v1[] = {10,20,30}; int v2[] = {10,20,30,40}; return sumArray(v1,v1.length-1) + sumArray(v2,v2.length-1) ; }
17
AN FI 98-99 Array Versione con processo iterativo int sumArray(int a[],int n, int v){ //v e la somma degli elementi dallultimo ad a[n+1] // inizialmente, n vale a.length-1, v vale 0 if( n==0 ) return a[0]+v; else return sumArray(a,n-1,a[n]+v); }
18
AN FI 98-99 Array Valutazione di un polinomio a n * x n + a n-1 * x n-1 +... a 1 * x + a 0 * x 0 = (... ( ( a n *x + a n-1 ) *x + a n-2 ) * x +... + a 1 )* x + a 0 v = a n ; v = v * x + a i per i = n-1,…,0
19
AN FI 98-99 Array Valutazione di un polinomio (java) double horner(double x,double[] a){ return pol(x,a,a.length-1,a[a.length-1]); }
20
AN FI 98-99 Array Lalgoritmo di horner double pol(double x,double[] a, int i, double v){ //x :valore della variabile //a :vettore dei coefficienti //i :indice coefficiente corrente in a che ha determinato v //v :valore iniziale return (i==0) ? v : pol(x,a,i-1,v*x+a[i-1]); }
21
AN FI 98-99 Array Array come risultati di funzione u In C una funzione non puo' restituire come informazione di uscita un array. u In Java cio e possibile int[] theSame( int a[] ){ return a; } –la funzione restituisce (il riferimento al) l'array ricevuto in ingresso
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.