Universita di Camerino

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Puntatori Linguaggio C.
INFORMATICA Tipi strutturati
Argomenti della lezione
Dati strutturati A. Ferrari.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Array multidimensionali
Array (vettori) In linguaggio C / C++.
PHP.
Universita di Camerino
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Fondamenti di Informatica
Algoritmi in C++ (1) da completare
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Process synchronization
Allocazione dinamica della memoria
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Esercitazione 3 (5 dicembre 2008)
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
Argomenti della lezione
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Programmazione Corso di laurea in Informatica
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
JavaScript: Array JavaScript: Array.
Java base III: Array e Stringhe
AN FI Array Array in Java. AN FI Array Dichiarazione di array in Java [ ]; //oppure u [] ; int a[]; int[] a; u La dimensione non è specificata.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Elementi di Informatica di base
Algoritmi e strutture dati
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Unità Didattica 3 Linguaggio C
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
Introduzione a Javascript
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
© Piero Demichelis Tipi strutturati I tipi considerati finora hanno la caratteristica comune di non essere strutturati: ogni elemento è una singola entità.
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Universita di Camerino Corso di laurea in matematica Informatica 2 Corso di laurea matematica indirizzo matematica per le applicazioni gestionali ed economiche indirizzo matematica per le applicazioni tecnologiche e dell’ingegneria Corso di laurea specialistica in matematica e applicazioni indirizzo matematica Informatica 2 Lezione 4

Arrays e vettori Arrays e vettori sono oggetti con cui organizziamo i dati Dichiarazione e uso di array Array di oggetti Array passati come parametri a metodi Ordinare elementi in un array Array multidimensionali La classe Vector Uso di array per gestire oggetti grafici Informatica 2 Lezione 4

Il tipo array Un array è una lista ordinata di elementi Ogni valore è accessibile tramite un indice numerico L’array ha un nome 0 1 2 3 4 5 6 7 8 9 79 87 94 82 67 98 87 81 74 91 punteggi Un array di dimensione N ha l’indice che varia tra 0 e N-1 Questo array contiene 10 valori che hanno indice tra 0 e 9 Informatica 2 Lezione 4

Array Un qualunque valore dell’array è referenziato mediante l’operatore di selezione L’operatore di selezione viene invocato con il nome dell’array e l’indice tra le parentesi [ e ] L’indice indica la posizione del valore L’espressione punteggi[2]riporta il valore 94 che è il III nell’array L’operatore di selezione [] ha la precedenza più alta Informatica 2 Lezione 4

Array Un’espressione di selezione può essere usata ogni volta sia appropriato usare una variabile del tipo base dell’array lista[indice] = valore; valore = lista[indice] + termine somma = lista[indice] + lista[indice+1] Anche l’indice può essere un’espressione, purchè di tipo adeguato lista[indice*2] += valore; valoreCasuale = lista[(int)Math.random()*scala]; Informatica 2 Lezione 4

Array Un’array contiene diversi elementi dello stesso tipo Il tipo degli elementi può essere sia primitivo sia riferimento a oggetti array di interi, di caratteri, di stringhe della classe String o di oggetti definiti come Rectangle In Java, l’array è un oggetto Quindi il nome dell’oggetto rappresenta una variabile riferimento e l’array stesso può essere instanziato in un diverso momento Informatica 2 Lezione 4

Dichiarazione di array Una variabile punteggi di tipo array può essere dichiarata: int[] punteggi = new int[10]; Notare che il tipo dell’array non specifica la sua dimensione, ma il tipo di ogni elemento dell’array Ogni oggetto del tipo dichiarato ha la sua dimensione che viene stabilita alla creazione Il tipo della variabile punteggi è int[] Cioé un array di interi La variabile viene inizializzata con un nuovo array di 10 elementi di tipo intero BasicArray.java Informatica 2 Lezione 4

Dichiarazione di array Esempi di dichiarazioni di array: float[] prezzi = new float[5]; boolean[] etichette; etichette = new boolean[20]; char[] codes = new char[26]; Informatica 2 Lezione 4

Controllo dei limiti Una volta creato l’array ha una dimensione fissata Un indice usato in una espressione che referenzia quell’array deve indicare un elemento valido Cioè l’indice deve essere nei limiti da 0 a N-1 L’interprete Java solleva un’eccezione se viene usato un indice di array al di fuori dei limiti Questo processo si chiama controllo dei limiti Informatica 2 Lezione 4

Controllo dei limiti L’ array prezzi contiene 5 valori, e l’indice per selezionarne uno deve variare tra 0 e 4 l’espressione di riferimento, in cui la variabile cont abbia valore 7, prezzi[cont], causa l’invio dell’eccezione ArrayOutOfBoundsException Un errore molto comune consiste nell’usare un indice non valido rispetto al limite for (int index=0; index <= 5; index++) prezzi[index] *= tasse; problema Informatica 2 Lezione 4

Controllo dei limiti Ogni oggetto array ha l’attributo length pubblico e costante che immagazzina la dimensione dell’array Viene chiamata tramite il nome dell’array prezzi.length Si noti ancora che length contiene il numero degli elementi non l’indice più grande Informatica 2 Lezione 4

Dichiarazione di array Le parentesi [] possono essere associate al tipo dell’array o al suo nome Le due dichiarazioni sono equivalenti: float[] prezzi; float prezzi[]; In genere si preferisce la prima dichiarazione Informatica 2 Lezione 4

Lista di inizializzazione Per istanziare un array è possibile usare una lista per inizializzare l’array in un passo I valori iniziali da attribuire agli elementi dell’array sono delimitati da { e } e separati da , int[] lista = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[] sezioni = {'A', 'B', 'C', 'D', 'F'}; Informatica 2 Lezione 4

Lista di inizializzazione Quando si usa una lista d’inizializzazione: L’operatore new non viene usato per istanziare l’array La sua dimensione non viene esplicitamente dichiarata Ma viene determninata dal numero degli elementi della lista La lista d’inizializzazione può essere usata solo nella dichiarazione dell’array Informatica 2 Lezione 4

Parametri di tipo array Un intero array può essere passato come parametro attuale ad un metodo Come per ogni altro oggetto, viene passato il riferimento all’array il parametro formale e quello attuale diventano sinonimi Cambiare un elemento di un array in un metodo implica il cambiamento dell’array originale Anche un singolo elemento dell’array può essere passato come parametro attuale a un metodo e seguirà le regole del passaggio di valore al parametro a seconda del suo tipo Informatica 2 Lezione 4

Array di oggetti Gli elementi di un array possono essere riferimenti a oggetti String[] words = new String[25]; Nella dichiarazione si reclama spazio per archiviare 25 riferimenti a oggetti di tipo String NON vengono creati gli oggetti di tipo String Ogni oggetto archiviato in un array deve essere istanziato separatamente Informatica 2 Lezione 4

Argomenti sulla linea di comando La segnatura del metodo main indica che il metodo può avere come parametri un array di oggetti di tipo String Questi valori provengono dalla riga di comando e vengono passati quando viene chiamato l’interprete > java DoIt pennsylvania texas california All’atto dell’invocazione l’interprete passa al metodo main un array di tre oggetti String Le tre stringhe di caratteri sono passate come parametro e riferibili con indice 0-2 Informatica 2 Lezione 4

Array di oggetti Oggetti possono avere array come variabili d’stanza Si possono così creare strutture complesse La struttura dei dati in array e oggetti è responsabilità del programmatore Informatica 2 Lezione 4

Ordinamento Ordinamento è il processo con cui si sistemano gli elementi di una lista in un ordine particolare Gli elementi devono essere ordinabili secondo un dato criterio Esistono numerosi algoritmi di ordinamento, che variano in efficienza Due molto comuni: Ordinamento per selezione Ordinamento per inserzione Informatica 2 Lezione 4

Ordinamento per selezione Seleziona un valore e collocalo nella sua destinazione finale Ripetere per tutti gli elementi Precisamente: Trovare il più piccolo valore della lista Scambiare posizione con il primo elemento della lista Trovare il successivo valore secondo il criterio di ordinamento scelto Scambiarlo con la seconda posizione Ripetere fino a che tutti gli elementi sono sistemati Informatica 2 Lezione 4

Ordinamento per selezione Lista iniziale da ordinare in ordine crescente 3 9 6 1 2 il valore più piccolo è 1: 1 9 6 3 2 il successivo è 2: 1 2 6 3 9 il succesivo è 3: 1 2 3 6 9 il succesivo è 6: 1 2 3 6 9 Informatica 2 Lezione 4

Ordinamento per inserzione Selezionare un elemento e inserirlo nella posizione finale in una sotto lista ordinata Ripetere fino a che tutti gli elementi sono stati inseriti Preciamente: Il primo elemento sia appartenente a una sottolista oprdinata di lunghezza 1 Inserire il secondo elemento nella sottolista, facendo scivolare se necessario gli elementi di una posizione per fare spazio per l’inserimento Inserire il III elemento nella sottolista ordinata di lunghezza due, con slittamento degli elemenit se necessario Ripetere fino a che tutti gli elementi sono stati inseriti nella posizione opportuna Informatica 2 Lezione 4

Ordinamento per inserzione Lista iniziale: 3 9 6 1 2 inserire 9 : 3 9 6 1 2 inserire 6 e slittare: 3 6 9 1 2 inserire 1 e slittare: 1 3 6 9 2 inserire 2 e slittare: 1 2 3 6 9 Informatica 2 Lezione 4

Ordinare oggetti Gli interi hanno un ordinamneto intrinseco, ma l’ordine di un insieme di oggetti deve essere definito da chi definisce la classe Un’interfaccia Java può essere usata come nome di un tipo e garantisce che un determinato metodo sarà implementato type name and guarantees that a particular class has implemented particular methods L’interfaccia Comparable serve per implementare un generico ordinamento per un insieme di oggetti Informatica 2 Lezione 4

Confronto tra gli ordinamenti Gli ordinamento per selezione e inserzione sono simili per efficienza Entrambi hanno un ciclo esterno che scandisce gli elementi e un ciclo interno che confronta il valore del ciclo esterno con quasi tutti i valori della lista Quindi eseguiamo approssimativamente n2 confronti per ordinare una lista di dimensione n Sidice che questi due algoritmi di ordinamento sono di ordine n2 Esistono algoritmi più efficienti, dell’ordine di n log2 n Informatica 2 Lezione 4

Array di due dimensioni Un array a 1 dimensione archivia una lista di valori Un array a 2 dimensioni costituisce un tavola di valori organizzata per righe e colonne Un elemento di un array a 2 dimensioni element è riferito con l’uso di due indici Precisamente, un array a 2 dimensioni in Java è un array di array Informatica 2 Lezione 4

Array multidimensionali Un array può avere più dimensioni Ciascuna dimensione suddivide la precedente in un numero specificato di elementi Ciascuna dimensione dell’array ha la propria costante length Poiché ogni dimensione dell’array è a sua volta un array di riferimenti a oggetti, potrà avere lunghezza diversa Informatica 2 Lezione 4

La classe Vector Un oggetto della classe Vector è simile a un’array perchè consente di archiviare diversi valori Ma un oggetto della classe Vector Archivia solo oggetti Non ha la sintassi di indicizzazione dell’array I metodi della classe Vector sono usati per interagire con gli elementi del vettore La classe Vector fa parte del pacchetto java.util Informatica 2 Lezione 4

La classe Vector Differenza tra array e vettori: Un vettore può dinamicamente cambiare la propria dimensione Per ogni vettore viene allocata una certa quantità di memoria iniziale per archiviare gli elementi elements Se un nuovo elemento viene aggiunto viene automaticamente acquisito nuovo spazio Informatica 2 Lezione 4

La classe Vector La classe Vector è implementata mediante un array Quando serve nuovo spazio, viene creato un nuovo arrary di dimesioni maggiori e i valori del vecchio array vengono ricopiati nel nuovo Per inserire un elemento, dapprima vengono copiati i vecchi elementi uno ad uno nella nuova posizione del nuovo array Quindi, l’implementazione di Vector non è molto efficiente per inserire elementi Informatica 2 Lezione 4