Fondamenti di Informatica T-1
Classi & vettori
2
Array
• Un vettore (array) è un insieme ordinato, di dimensione
fissa, di oggetti dello stesso tipo.
• Esempio: array capace di contenere al più 10 numeri
interi
• int[] arrayInteri = new int[10];
• La dimensione dell’array è definita all’atto della
inizializzazione (con la new) e memorizzata
nell’attributo length. Ad esempio l’array ‘arrayInteri’
appena creato può contenere non più di 10 elementi !
• Non si può estendere dinamicamente un array (bisogna
ricrearlo). Per fare questo esistono delle classi apposite
che vedremo più avanti nel corso.
Fondamenti di Informatica T-1
Francesco Casimiro
3
Array
• L'array è esso stesso un oggetto, definibile e
utilizzabile come variabile:
<tipo>[] <nome> = new <tipo>[<dimensione>]
• Per accedere agli elementi:
<nome>[<indice>]
• Esempio, inserire un intero di valore 3 in
posizione 0:
arrayDiInteri[0]=3;
• Un array è sempre creato vuoto: ogni posizione,
se l'array contiene oggetti o stringhe, contiene il
valore "null", altrimenti contiene il valore 0 (o il
valore false nel caso di un array di boolean).
Fondamenti di Informatica T-1
Francesco Casimiro
4
Esempio: la biblioteca
• Realizzare una applicazione che:
▫ Contenga un array di stringhe che
rappresentano dei libri
▫ Chieda all’utente un titolo di libro
▫ Verifichi se il libro è presente nell’elenco
▫ In caso affermativo, stampi a video la posizione
(indice dell’array) in cui è il titolo stato trovato
▫ In caso negativo, stampi “Libro non trovato”
Fondamenti di Informatica T-1
Francesco Casimiro
5
Esempio: il libretto universitario
• Scrivere un programma che permetta di memorizzare
e visualizzare informazioni sugli esami (per un totale
di 22 esami) di uno studente.
• Dello studente, sono memorizzati il nome, il cognome,
la matricola e l'elenco degli esami.
• Di ogni esame, si memorizza il nome, il docente, il
numero di crediti e il voto.
• La classe Studente deve anche fornire un metodo per
il calcolo della media pesata, e un metodo per
l'aggiunta di un nuovo esame sostenuto.
• Scrivere un main in cui si crei un oggetto Studente, si
aggiungano alcuni esami, si stampi a video la media,
si mostri la lista degli esami e l'esame con il voto più
alto.
Fondamenti di Informatica T-1
Francesco Casimiro
6
Esempio: il libretto universitario
Nome della
classe
Variabili di
istanza
Metodi
pubblici
Fondamenti di Informatica T-1
Francesco Casimiro
7
Esempio: il libretto universitario
• Scaricare http://wwwdb.deis.unibo.it/courses/FIT1LZ/LABORATORIO/esercizi/20
12-13/es6.jar
• Importare la libreria nel
progetto:
▫ Click con il tasto destro sul
progetto, "Build path" 
"Add External Archives"
▫ Selezionare la libreria
scaricata
• Creare una classe Main (in un
nuovo package), creare il
main e inserire la riga di
codice
Finestra f = new Finestra();
Fondamenti di Informatica T-1
Francesco Casimiro
8
Esempio: il libretto universitario
• Una versione più "moderna"
Fondamenti di Informatica T-1
Francesco Casimiro
9
Esercizio: L'autostrada A31
• Realizzare un programma per il
pagamento del pedaggio sull’autostrada
A31.
• Ogni autostrada ha un nome ed è
composta da un certo numero di caselli
(per la A31, 6 caselli). Tutte le
autostrade hanno lo stesso costo per km
(ad esempio, 0.10).
• Ogni casello è caratterizzato da un nome
e dalla distanza dal casello precedente.
• La classe Autostrada deve esporre
metodi per:
▫ Calcolare la distanza totale tra due
caselli (dati gli indici).
▫ Calcolare il costo del pedaggio,
conoscendo l'indice del casello di
partenza e quello del casello di arrivo.
▫ Stampare la lista dei caselli in un
percorso.
• Per semplicità: il senso di percorrenza
dell’autostrada è unico.
Fondamenti di Informatica T-1
Francesco Casimiro
10
Esercizio: l'autostrada A31
LONGARE - PIOVENE ROCCHETTE
Indicazione
Distanza
Piovene Rocchette
0
Thiene-Schio
9.2
Dueville
9.9
Vicenza Nord
8
Torino-Trieste
8.5
Longare-Montegaldella
6.5
Nella classe principale, creare l'autostrada a31 con 6 caselli, creare
e inserire i 6 caselli indicati sopra, e stampare la distanza, il costo e
il percorso da Dueville a Longare-Montegaldella
Fondamenti di Informatica T-1
Francesco Casimiro
11
Estensioni
• Provare a modificare il programma in modo da
valutare entrambi i sensi di percorrenza
(attenzione ai metodi per calcolare la distanza tra
due caselli e stampare il percorso).
• Modificare i tre metodi della classe Autostrada, in
modo da fornire, come parametri di ingresso, due
oggetti Casello invece che gli indici dei caselli
nell'array.
Fondamenti di Informatica T-1
Francesco Casimiro
Scarica

slide