Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.

Slides:



Advertisements
Presentazioni simili
Array multidimensionali
Advertisements

Algoritmi notevoli In linguaggio C.
Array (vettori) In linguaggio C / C++.
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.
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Elementi di Informatica di base
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
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 II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
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.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Fondamenti di Informatica A - Massimo Bertozzi ARRAY E STRINGHE Curiouser and curiouser! Alice's Adventures in Wonderland, Lewis Carrol.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
Fondamenti di Informatica A - Massimo Bertozzi LE RAPPRESENTAZIONI CONCATENATE.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Process synchronization
Process synchronization
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Unità A2 Java: le basi del linguaggio
La classe String Una stringa è una sequenza di caratteri
Introduzione al linguaggio C
Gli array Moreno Marzolla
Process synchronization
Ordinamento.
Process synchronization
L’AMBIENTE CODE BLOCKS E L’IO
Organizzazione fisica
Recap su: array e puntatori
Corso Java Esercitazione.
Java World Cicli e Array.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmare.
Informatica per Scienze Geologiche LT a.a
Corso Java Cicli e Array.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Java: le basi del linguaggio
Ordinamento in tempo lineare
Programmazione e Laboratorio di Programmazione
Tipo String String è una classe predefinita
© 2007 SEI-Società Editrice Internazionale, Apogeo
APPUNTI SUL LINGUAGGIO C
Process synchronization
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Unità A2 Java: le basi del linguaggio
* 07/16/96 Sez. 2: Ordinamento La consultazione di banche dati è sempre più cruciale in tutte le applicazioni dell’Informatica. Se vogliamo consultare.
APPUNTI SUL LINGUAGGIO C Esercizi sugli array e strutture
La struttura dei primi programma in C
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Lucidi della Pof.ssa Pazienza
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
monodimensionali: Vettori bidimensionali: Matrici
Unità 1 Programmi base.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Array (vettori) In linguaggio C / C++.
Programmazione e Laboratorio di Programmazione
Ricerca 01/08/2019 package.
Algoritmi di ordinamento
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri.
Transcript della presentazione:

Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7 variabili di tipo double può essere dichiarato un array ed inizializzato in questo modo: double[] temperatura = {22.2,25.1,24.2,23.0,22.4,21.1,20.0}; Ciò equivale a dichiarare 7 variabili di tipo reale temperatura[0], temperatura[1], temperatura[2], temperatura[3], temperatura[4], temperatura[5], temperatura[6].

Terminologia di un array Nome Indice Valore di una variabile indicizzata o elemento temperatura[n + 2] = 32; Indice: deve essere un letterale intero oppure un’espressione che ritorna un int Variabile indicizzata o elemento L’indice permette di ‘cacolare’ il nome di ognuna di queste variabili ATTENZIONE! Il primo indice di un array è 0.

Nome di un array e locazioni di memoria L’identificatore temperatura è detto nome dell’array. Questo nome identifica una locazione di memoria contenente l’indirizzo della locazione di memoria che contiene il primo valore contenuto nell’array. Esempio: int numero = 6; int[] numeroArrray = {6}; . numero numeroArray numeroArray[0] 6 6

Inizializzazione di un array Se si vuole creare un array di un certo tipo con un numero di elemento definito ma senza dover elencare i valori, si può usare la parola chiave new seguita dal nome del tipo base e dal numero degli elementi racchiusi tra parentesi quadre. Ad esempio per creare un array di 100 numeri reali possiamo scrivere: double[] voto = new double[100]; La differenza fra l’elenco e questo tipo di scrittura è che in quest’ultimo modo gli elementi dell’array non sono inizializzati e devono quindi essere assegnati con istruzioni successive (in realtà sono inizializzati con il valore nullo)

Lunghezza di un array Il numero degli elementi contenuti un un array è detto lunghezza o dimensione dell’array. La lunghezza di un array definisce il numero massimo di elementi che l’array può contenere. E’ possibile conoscere la lunghezza di un array utilizzando il nome dell’array seguito da un punto e dalla parola length temperatura.length restituirà il valore 7 Provando a cambiare la lunghezza di un array si genera un errore di compilazione: temperatura.length = 10; Cannot assign a value to a final variable length

Dominio di indicizzazione Indicizzazione di array usa numerazione a partire da 0 primo elemento: indice 0 secondo elemento: indice 1 n-esimo elemento: indice n-1 ultimo elemento: indice length-1 Esempio: int[] scores = {97, 86, 92, 71};

Indicizzazione fuori dominio Ogni indice dell’array temperatura deve avere un valore compreso tra 0 e 6 (length-1). Se si accede alla variabile indicizzata temperatura[n + 2] allora n + 2 deve avere uno dei seguenti valori: 0, 1, 2, 3, 4, 5, 6. In caso contrario si dice che l’indice è fuori dominio ed in fase di esecuzione l’interprete Java avvertirà del problema con un messaggio di errore. Da osservare che in questo caso Java si differenzia da C e C++ i quali non avvertono dell’errore di indice fuori dominio in fase di esecuzione.

Array bidimensionali: matrici int[][] miaMatrice = {{1,2,3},{4,5,6}}; In questo modo ho dichiarato ed inizializzato la matrice 2x3: Oppure: int[][] miaMatrice = new int[2][3]; Con questa dichiarazione la matrice va successivamente inizializzata con i valori desiderati. NB: miaMatrice.length fornisce il numero delle righe miaMatrice[0].length fornisce il numero delle colonne miaMatrice[1][2] ha come valore indicizzato 6 !!!! 1 2 3 4 5 6

Metodi ed array Una variabile di tipo array può essere utilizzata come parametro formale di un metodo oppure come tipo di ritorno. Es: Scrivere un metodo per inizializzare i valori di un array; Scrivere un metodo per sommare gli elementi di un array; Scrivere un metodo per stampare i valori di un array;

Es1:

Es2: Il metodo raddoppiaArray modifica l’array ricevuta in input. Come posso scrivere un metodo che non modifichi l’array di input?

Uguaglianza di array Per vedere se due array sono uguali si deve controllare: Che abbiano la stessa lunghezza; Che contengano gli stessi valori nelle posizioni corrispondenti.

Uguaglianza di array (II) Se non hanno la stessa lunghezza ritorno subito false (ed esco dal metodo). Controllo i valori dei due arrays per ogni posizione. Non appena ne trovo due diversi ritorno false (ed esco dal metodo). Se non sono entrato in alcuno dei casi precedenti ritorno true.

Ordinamento di array Ordinare un elenco di elementi è un compito molto frequente ordinare numeri in modo crescente ordinare numeri in modo decrescente ordinare stringhe in modo alfabetico Vi sono molti modi per ordinare un elenco Selection sort uno dei più facili non il più efficiente, ma facile da capire e da programmare

Algoritmo Selection Sort Per ordinare un array di interi in modo crescente: cerca nell'array il numero più piccolo e scambialo con il primo elemento dell'array la parte ordinata dell'array è ora il primo elemento, mentre quella non ancora ordinata sono i rimanenti elementi cerca nella parte non ordinata il numero più piccolo e scambialo con il secondo elemento dell'array ripeti la ricerca e lo scambio fino a quando tutti gli elementi sono al posto giusto ogni iterazione aumenta di 1 la lunghezza della parte ordinata e diminuisce di 1 quella della parte non ordinata

Esempio

Selection Sort: codice Metodo Invocazione Output