Array. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Array. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo"

Transcript

1 Array C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari

2 Obiettivi 2 Prender familiarità con l'uso di array e array-list Conoscere le classi involucro, l'auto-boxing e il ciclo for generalizzato Studiare gli algoritmi di base su array Imparare l'uso di array bidimensionali Imparare quando scegliere gli array-list e quando gli array nei propri programmi Implementare array riempiti parzialmente

3 Array 3 Array: : Sequenza di valori dello stesso tipo Costruire un array: new double[10] Immagazzinare dati in una variabile di tipo double[] double[] data = new double[10];

4 Array 4 Quando si crea un array, tutti i valori sono inizializzati a seconda del tipo di array: numeri: 0 boolean: false Riferimenti ad oggetti: null

5 Array 5 Array e Riferimento ad Array

6 Array 6 Si usa l'operatore [ ] per accedere ad un elemento data[2] = 29.95; Figure 2: Storing a Value in an Array

7 Array 7 Uso del valore immagazzinato: System.out.println("The value of this data item is " + data[4]); Si ottiene la lunghezza dell'array con data.length (NB: non è un metodo!) I valori degli indici vanno da 0 a length - 1

8 Array 8 L'accesso ad un elemento non esistente provoca un errore di limiti double[] data = new double[10]; data[10] = 29.95; // ERRORE Limitazione: gli array hanno lunghezza fissata

9 Sintassi 8.1: Costruzione di Array 9 new typename[length length] Esempio: new double[10] Scopo: Costruire un array di un dato numero di elementi

10 Sintassi 8.2: Accesso ad un 10 Elemento di un Array arrayreference[index index] Esempio: data[2] Scopo: : Accedere ad un elemento in un array

11 Array List 11 La classe ArrayList gestisce una sequenza di oggetti Può crescere e restringersi secondo le necessità La classe ArrayList fornisce metodi per molti compiti comuni come l'inserimento e la rimozione di elementi

12 Array List 12 La classe ArrayList è generica: ArrayList<T> raccoglie oggetti di tipo T: ArrayList<BankAccount> accounts = new ArrayList<BankAccount>(); accounts.add(new BankAccount(1001)); accounts.add(new BankAccount(1015)); accounts.add(new BankAccount(1022)); Il metodo size() restituisce il numero di elementi

13 Ritrovamento di Elementi in 13 Si usa il metodo get L'indice comincia da 0 Array List BankAccount anaccount = accounts.get(2); // ottiene il terzo elemento dell'array list Errore di limiti se l'indice è fuori dell'intervallo

14 Ritrovamento di Elementi in 14 Array List Errori di limiti più comuni: int i = accounts.size(); anaccount = accounts.get(i); // Errore // valori leciti per gli indici: 0...i-1

15 Aggiunta di Elementi 15 set sovrascrive un valore esistente: BankAccount anaccount = new BankAccount(1729); accounts.set(2, anaccount); add aggiunge un nuovo valore nella posizione precedente all'indice indicato accounts.add(i, a)

16 Aggiunta di Elementi 16 Figure 3: Adding an Element in the Middle of an Array List

17 Cancellazione di Elementi 17 remove removes an element at an index Accounts.remove(i)

18 Cancellazione di Elementi 18 Figure 4: Removing an Element in the Middle of an Array List

19 ArrayListTester.java 19 01: import java.util.arraylist; 02: 03: /** 04: Programma che testa la classe ArrayList. 05: */ 06: public class ArrayListTester 07: { 08: public static void main(string[] args) 09: { 10: ArrayList<BankAccount> accounts 11: = new ArrayList<BankAccount>(); 12: accounts.add(new BankAccount(1001)); 13: accounts.add(new BankAccount(1015)); 14: accounts.add(new BankAccount(1729)); 15: accounts.add(1, new BankAccount(1008)); 16: accounts.remove(0);

20 ArrayListTester.java 20 17: 18: System.out.println("size=" + accounts.size()); 19: BankAccount first = accounts.get(0); 20: System.out.println("first account number=" 21: + first.getaccountnumber()); 22: BankAccount last = accounts.get(accounts.size() - 1); 23: System.out.println("last account number=" 24: + last.getaccountnumber()); 25: } 26: }

21 BankAccount.java 21 01: /** 02: Un conto corrente ha un saldo che può essere cambiato da 03: depositi e prelievi. 04: */ 05: public class BankAccount 06: { 07: /** 08: Costruisce un conto con saldo zero anaccountnumber il numero di questo conto 10: */ 11: public BankAccount(int anaccountnumber) 12: { 13: accountnumber = anaccountnumber; 14: balance = 0; 15: } 16:

22 BankAccount.java 22 17: /** 18: Costruisce un conto con un dato saldo iniziale anaccountnumber il numero del conto initialbalance il saldo iniziale 21: */ 22: public BankAccount (int anaccountnumber, double initialbalance) 23: { 24: accountnumber = anaccountnumber; 25: balance = initialbalance; 26: } 27: 28: /** 29: ottiene il numero di questo conto corrente. numero di conto 31: */ 32: public int getaccountnumber() 33: { 34: return accountnumber; 35: }

23 BankAccount.java 23 36: 37: /** 38: Deposita denaro sul conto. amount l'ammontare del deposito 40: */ 41: public void deposit(double amount) 42: { 43: double newbalance = balance + amount; 44: balance = newbalance; 45: } 46: 47: /** 48: Preleva denaro dal conto. amount ammontare del prelievo 50: */ 51: public void withdraw(double amount) 52: { 53: double newbalance = balance - amount; 54: balance = newbalance;

24 BankAccount.java 24 55: } 56: 57: /** 58: Ottiene il saldo corrente del conto. il saldo corrente 60: */ 61: public double getbalance() 62: { 63: return balance; 64: } 65: 66: private int accountnumber; 67: private double balance; 68: } Output: size=3 first account number=1008 last account number=1729

25 Wrapper 25 Non si possono inserire tipi primitivi direttamente nelle array list Per trattare i valori di tipi primitivi come oggetti, si usano le classi involucro (wrapper): ArrayList<Double> data = new ArrayList<Double>(); data.add(29.95); double x = data.get(0);

26 Wrapper 26 Figure 5: An Object of a Wrapper Class

27 Wrapper 27 Ci sono classi involucro per tutti gli otto tipi primitivi:

28 Auto-boxing 28 Auto-boxing: : da Java 5.0, la conversione tra tipi primitivi e classi involucro corrispondenti è automatica Double d = 29.95; // auto-boxing: analogo a Double d = new Double(29.95); double x = d; // auto-unboxing: analogo a double x = d.doublevalue();

29 Auto-boxing 29 L'auto-boxing funziona anche all'interno di espressioni aritmetiche: Double e = d + 1; significa: Fai l'auto-unbox di d in un double Aggiungi 1 Fai l'auto-box del risultato in un nuovo Double Immagazzina in e un riferimento all'oggetto involucro appena creato

30 Ciclo for Generalizzato 30 Cicla su tutti gli elementi di una collezione: double[] data =...; double sum = 0; for (double e : data) // da leggersi: "per ogni e in data" { sum = sum + e; }

31 Ciclo for Generalizzato 31 Alternativa tradizionale: double[] data =...;. double sum = 0; for (int i = 0; i < data.length; i++) { double e = data[i]; sum = sum + e; }

32 Ciclo for Generalizzato 32 Funziona anche per le ArrayLists: ArrayList<BankAccount> accounts =... ; double sum = 0; for (BankAccount a : accounts) { sum = sum + a.getbalance(); }

33 Ciclo for Generalizzato 33 Equivalente al seguente ciclo for normale: double sum = 0; for (int i = 0; i < accounts.size(); i++) { BankAccount a = accounts.get(i); sum = sum + a.getbalance(); }

34 Sintassi 8.3: Ciclo "Per Ogni" 34 for (Type variable : collection) statement Esempio: for (double e : data) sum = sum + e; Scopo: : eseguire un iterazione per ogni elemento della collezione. Ad ogni iterata, viene assegnato alla variabile il prossimo elemento della collezione per poi eseguire l'istruzione

35 Algoritmi Semplici su Array: 35 Conteggio delle Corrispodenze Controllare tutti gli elementi e contare le corrispondenze fino alla fine dell'array-list public class Bank { public int count(double atleast) { int matches = 0; for (BankAccount a : accounts) { if (a.getbalance() >= atleast) matches++; } // trovata una corrispondenza } return matches; }... private ArrayList<BankAccount> accounts;

36 Algoritmi Semplici su Array: 36 Trovare un Valore Controllare tutti gli elementi fino a trovare una corrispondenza: public class Bank { public BankAccount find(int accountnumber) } { }... for (BankAccount a : accounts) { if (a.getaccountnumber() == accountnumber) return a; // corrispondenza trovata } return null; // nessuna corrispondenza in tutto array list

37 Algoritmi Semplici su Array: 37 Trovare il Massimo/Minimo Inizializzare un candidato con l'elemento iniziale Confrontare il candidato con i restanti elementi Aggiornare se si trova un valore più grande/piccolo

38 Algoritmi Semplici su Array: 38 Esempio: Trovare il Massimo/Minimo BankAccount largestyet = accounts.get(0); for (int i = 1; i < accounts.size(); i++) { BankAccount a = accounts.get(i); if (a.getbalance() > largestyet.getbalance()) largestyet = a; } return largestyet;

39 Algoritmi Semplici su Array: 39 Trovare il Massimo/Minimo Funziona solo se c'è almeno un elemento nell'array list Se list è vuoto, restituisce null if (accounts.size() == 0) return null; BankAccount largestyet = accounts.get(0);...

40 Bank.java 40 01: import java.util.arraylist; 02: 03: /** 04: Questa banca contiene una collezione di conti correnti 05: */ 06: public class Bank 07: { 08: /** 09: Constructs a bank with no bank accounts. 10: */ 11: public Bank() 12: { 13: accounts = new ArrayList<BankAccount>(); 14: } 15: 16: /** 17: aggiunge un conto alla banca. a conto da aggiungere 19: */

41 Bank.java 41 20: public void addaccount(bankaccount a) 21: { 22: accounts.add(a); 23: } 24: 25: /** 26: ritorna la somma dei saldi dei conti della banca somma dei saldi 28: */ 29: public double gettotalbalance() 30: { 31: double total = 0; 32: for (BankAccount a : accounts) 33: { 34: total = total + a.getbalance(); 35: } 36: return total; 37: } 38:

42 Bank.java 42 39: /** 40: conta il numero dei conti il cui saldo sia pari 41: almeno ad un dato valore. atleast saldo minimo numero dei conti che hanno almeno un saldo // pari al valore dato 44: */ 45: public int count(double atleast) 46: { 47: int matches = 0; 48: for (BankAccount a : accounts) 49: { 50: if (a.getbalance() >= atleast) matches++; // trovato 51: } 52: return matches; 53: } 54:

43 Bank.java 43 55: /** 56: trova un conto con un dato numero. accountnumber numero da trovare il conto del dato numero, oppure null 59: se non è presente quel conto 60: */ 61: public BankAccount find(int accountnumber) 62: { 63: for (BankAccount a : accounts) 64: { 65: if (a.getaccountnumber() == accountnumber) // trovato 66: return a; 67: } 68: return null; // trovato nessun conto con quel numero 69: } 70:

44 Bank.java 44 71: /** 72: restituisce il conto con il saldo maggiore il conto con il saldo maggiore, oppure 74: null se la banca non ha conti aperti 75: */ 76: public BankAccount getmaximum() 77: { 78: if (accounts.size() == 0) return null; 79: BankAccount largestyet = accounts.get(0); 80: for (int i = 1; i < accounts.size(); i++) 81: { 82: BankAccount a = accounts.get(i); 83: if (a.getbalance() > largestyet.getbalance()) 84: largestyet = a; 85: } 86: return largestyet; 87: } 88: 89: private ArrayList<BankAccount> accounts; 90: }

45 BankTester.java 45 01: /** 02: Programma di test per la classe Bank. 03: */ 04: public class BankTester 05: { 06: public static void main(string[] args) 07: { 08: Bank firstbankofjava = new Bank(); 09: firstbankofjava.addaccount (new BankAccount(1001, 20000)); 10: firstbankofjava.addaccount (new BankAccount(1015, 10000)); 11: firstbankofjava.addaccount (new BankAccount(1729, 15000)); 12: 13: double threshold = 15000; 14: int c = firstbankofjava.count(threshold); 15: System.out.println (c + " accounts with balance >= " + threshold);

46 BankTester.java 46 16: 17: int accountnumber = 1015; 18: BankAccount a = firstbankofjava.find(accountnumber); 19: if (a == null) 20: System.out.println ("No account with number " + accountnumber); 21: else 22: System.out.println ("Account with number " + accountnumber 23: + " has balance " + a.getbalance()); 24: 25: BankAccount max = firstbankofjava.getmaximum(); 26: System.out.println("Account with number " 27: + max.getaccountnumber() 28: + " has the largest balance."); 29: } 30: }

47 BankTester.java 47 Output 2 accounts with balance >= Account with number 1015 has balance Account with number 1001 has the largest balance.

48 Array Bidimensionali 48 Nel costruire un array bidimensionale, si specifica di quante righe e colonne si ha bisogno: final int ROWS = 3; final int COLUMNS = 3; String[][] board = new String[ROWS][COLUMNS]; Si ha accesso agli elementi con una coppia di indici a[i][j]: board[i][j] = "x";

49 Tavola per il Filetto 49 Figure 6: A Tic-Tac-Toe Board

50 Attraversamento 50 di Array Bidimensionali È tipico usare due cicli nidificati nel riempimento o la ricerca: for (int i = 0; i < ROWS; i++) for (int j = 0; j < COLUMNS; j++) board[i][j] = " ";

51 TicTacToe.java 51 01: /** 02: Una tavola di Filetto 3 x 3. 03: */ 04: public class TicTacToe 05: { 06: /** 07: Costruisce la tavola vuota. 08: */ 09: public TicTacToe() 10: { 11: board = new String[ROWS][COLUMNS]; 12: // riempie con spazi 13: for (int i = 0; i < ROWS; i++) 14: for (int j = 0; j < COLUMNS; j++) 15: board[i][j] = " "; 16: } 17:

52 TicTacToe.java 52 18: /** 19: Imposta una casella (non deve essere occupata) i indice della riga j indice della colonna player il giocatore ("x" oppure "o") 23: */ 24: public void set(int i, int j, String player) 25: { 26: if (board[i][j].equals(" ")) 27: board[i][j] = player; 28: } 29: 30: /** 31: Crea una rappresentazione della tavola in forma di stringa come ad es.: 32: x o 33: x 34: o la rappresentazione in forma di stringa 36: */

53 TicTacToe.java 53 37: public String tostring() 38: { 39: String r = ""; 40: for (int i = 0; i < ROWS; i++) 41: { 42: r = r + " "; 43: for (int j = 0; j < COLUMNS; j++) 44: r = r + board[i][j]; 45: r = r + " \n"; 46: } 47: return r; 48: } 49: 50: private String[][] board; 51: private static final int ROWS = 3; 52: private static final int COLUMNS = 3; 53: }

54 TicTacToeTester.java 54 01: import java.util.scanner; 02: 03: /** 04: Programma di test della classe TicTacToe 05: che chiede all'utente di impostare le posizioni 06: sulla tavola e stampa il risultato. 07: */ 08: public class TicTacToeTester 09: { 10: public static void main(string[] args) 11: { 12: Scanner in = new Scanner(System.in); 13: String player = "x"; 14: TicTacToe game = new TicTacToe(); 15: boolean done = false; 16: while (!done) 17: {

55 TicTacToeTester.java 55 18: System.out.print(game.toString()); 19: System.out.print( 20: "Row for " + player + " (-1 to exit): "); 21: int row = in.nextint(); 22: if (row < 0) done = true; 23: else 24: { 25: System.out.print ("Column for " + player + ": "); 26: int column = in.nextint(); 27: game.set(row, column, player); 28: if (player.equals("x")) 29: player = "o"; 30: else 31: player = "x"; 32: } 33: } 34: } 35: }

56 Output 56 Row for x (-1 to exit): 1 Column for x: 2 x Row for o (-1 to exit): 0 Column for o: 0 o x Row for x (-1 to exit): -1

57 Copiare Array: 57 Copiare i Riferimenti Copiare una variabile array comporta un secondo riferimento allo stesso (oggetto) array double[] data = new double[10]; // riempie l'array... double[] prices = data;

58 Copiare Array: 58 Copiare i Riferimenti Figure 7: Two References to the Same Array

59 Copiare Array: 59 Clonare gli Array Si usa il metodo clone per farne una vera copia double[] prices = (double[]) data.clone();

60 Copiare Array: 60 Clonare gli Array Figure 8: Cloning an Array

61 Copiare Array: 61 Copiare Elementi di Array System.arraycopy(from, fromstart, to, tostart, count);

62 Copiare Array: 62 Copiare Elementi di Array Figure 9: The System.arraycopy Method

63 Aggiungere Elementi ad Array 63 System.arraycopy (data, i, data, i + 1, data.length - i - 1); data[i] = x;

64 Aggiungere Elementi ad Array 64 Figure 10: Inserting a New Element Into an Array

65 Eliminare un Elemento 65 System.arraycopy(data, i + 1, data, i, data.length - i - 1);

66 Rimuovere Elementi da Array 66 Figure 11 Removing an Element from an Array

67 Ampliare un Array 67 Se l'array è pieno e si ha bisogno di più spazio è possibile ampliare l'array: Creare un nuovo array più grande double[] newdata = new double[2 * data.length]; Copiare tutti gli elementi nel nuovo array System.arraycopy(data, 0, newdata, 0, data.length); Immagazzinare il riferimento al nuovo array nella precedente variabile array data = newdata;

68 Ampliare un Array 68 Figure 12: Growing an Array

69 Creare Array Paralleli 69 in Array di Oggetti // Da NON fare int[] accountnumbers; double[] balances; Figure 13: Avoid Parallel Arrays

70 Creare Array Paralleli 70 in Array di Oggetti Evitare l'uso di array paralleli trasformandoli in array di oggetti: BankAccount[] = accounts; Figure 14: Reorganizing Parallel Arrays into Arrays of Objects

71 Array Parzialmente Riempiti 71 Lunghezza di array = massimo numero di elementi nell'array Di solito è riempito solo parzialmente Serve una variabile d'appoggio per tener traccia della dimensione corrente Convenzione uniforme sui nomi: final int DATA_LENGTH = 100; double[] data = new double[data_length]; int datasize = 0;

72 Array Parzialmente Riempiti 72 Aggiornare datasize al riempimento dell'array: data[datasize] = x; datasize++;

73 Array Parzialmente Riempiti 73 Figure 15: A Partially Filled Array

74 Un Vecchio Worm su Internet 74 Figure 16: A "Buffer Overrun" Attack

Capitolo 8. Arrays e Array Lists

Capitolo 8. Arrays e Array Lists Capitolo 8 Arrays e Array Lists Obiettivi del capitolo Familiarizzarsi con l uso degli arrays e array lists Conoscere le cassi wrapper classes, autoboxing ed il ciclo for generalizzato Studiare algoritmi

Dettagli

Capitolo 7 array e array list

Capitolo 7 array e array list Capitolo 7 array e array list Obiettivi del capitolo Acquisire familiarità con l utilizzo di array e array list (vettori ) Studiare le classi involucro, la tecnica di autoimpacchettamento e il ciclo for

Dettagli

Questi lucidi provengono dal Capitolo 7 del libro. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Questi lucidi provengono dal Capitolo 7 del libro. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Questi lucidi provengono dal Capitolo 7 del libro Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Vettori La classe ArrayList (vettore o lista sequenziale) gestisce oggetti

Dettagli

Capitolo 7 Vettori e array. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Capitolo 7 Vettori e array. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Capitolo 7 Vettori e array Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Acquisire familiarità con l utilizzo di array e vettori Studiare le classi

Dettagli

Arrays Array L ay ist

Arrays Array L ay ist Arrays Array Lists Arrays Array: una sequenza di valori dello stesso tipo double[] data = new double[10]; Continua Arrays Al momento della allocazione, tutti i valori sono inizializzati ai valori di default

Dettagli

Esempio. public class Purse { public Purse() { nickels = 0; dimes = 0; quarters = 0; } public double gettotal() {

Esempio. public class Purse { public Purse() { nickels = 0; dimes = 0; quarters = 0; } public double gettotal() { Vettori e Array Esempio public class Purse { public Purse() { nickels = 0; dimes = 0; quarters = 0; public void addnickels(int count) { nickels = nickels + count; public void adddimes(int count) { dimes

Dettagli

Array 1. Array: sequenza di valori omogenei (cioè dello stesso tipo). Costruire un array: new double[10]

Array 1. Array: sequenza di valori omogenei (cioè dello stesso tipo). Costruire un array: new double[10] Array 1 Array: sequenza di valori omogenei (cioè dello stesso tipo). Costruire un array: new double[10] Memorizzare in una variabile il riferimento all'array. Il tipo di una variabile che fa riferimento

Dettagli

Gli Array Ing. Massimo Cossen.no Sistemi Informa.vi Aziendali a.a. 2008/2009

Gli Array Ing. Massimo Cossen.no Sistemi Informa.vi Aziendali a.a. 2008/2009 Lezione 12 Sistemi Informa.vi Aziendali a.a. 2008/2009 Array: sequenza di valori omogenei (cioè dello stesso 8po). Dichiarazione di una variabile array double[ ] double[] data; Istanziare un array: double[]

Dettagli

Capitolo 12: Vettori e array. Capitolo 12. Vettori e array Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2

Capitolo 12: Vettori e array. Capitolo 12. Vettori e array Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2 Capitolo 12 Vettori e array 1 Figura 1 Aggiungere un elemento in una posizione intermedia di un vettore 2 Figura 2 Rimuovere un elemento da una posizione intermedia di un vettore 3 File Purse.java import

Dettagli

Tipi di dato Fondamentali

Tipi di dato Fondamentali Tipi di dato Fondamentali Tipi numerici int: interi, senza parte frazionaria 1, -4, 0 double: numeri in virgola mobile (precisione doppia) 0.5, -3.11111, 4.3E24, 1E-14 Tipi numerici Una computazione su

Dettagli

Array. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array

Array. In Java un array è un oggetto senza metodi, con attributo pubblico length che memorizza la dimensione dell array Array Una matrice (array) è un insieme ordinato e omogeneo di dati: è una variabile che contiene uno o più valori in sequenza ordinata. Questi valori si chiamano "elementi" e devono avere lo stesso tipo

Dettagli

Tipi di dato Fondamentali

Tipi di dato Fondamentali Tipi numerici Tipi di dato Fondamentali int: interi, senza parte frazionaria 1, -4, 0 double: numeri in virgola mobile (precisione doppia) 0.5, -3.11111, 4.3E24, 1E-14 Tipi numerici Una computazione su

Dettagli

Collezione di oggetti: Array List

Collezione di oggetti: Array List Vettori e Array Collezione di oggetti: Array List La classe Purse non tiene traccia deisingoli oggetti di tipo Coin, ma memorizza solo il valore totale Possiamo memorizzare una collezione di oggetti mediante

Dettagli

Vettori e array. Collezione di oggetti: Array List

Vettori e array. Collezione di oggetti: Array List Collezione di oggetti: Array List Vettori e array Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Consideriamo la classe Purse non tiene traccia dei singoli oggetti di tipo Coin, ma memorizza

Dettagli

Tipi di dato F n o d n am ent en ali

Tipi di dato F n o d n am ent en ali Tipi di dato Fondamentali Tipi numerici int: interi, senza parte frazionaria 1, -4, 0 double: numeri in virgola mobile (precisione doppia) 0.5, -3.11111, 4.3E24, 1E-14 Tipi numerici Una computazione su

Dettagli

Tipi di dato Fondamentali

Tipi di dato Fondamentali Tipi di dato Fondamentali Tipi numerici int: interi, senza parte frazionaria 1, -4, 0 double: numeri in virgola mobile (precisione doppia) 0.5, -3.11111, 4.3E24, 1E-14 Tipi numerici Una computazione su

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

Dettagli

Implementare le classi

Implementare le classi Implementare le classi C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.

Dettagli

Esercizi su array di array

Esercizi su array di array Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 C. Limongelli Gennaio 2010 1 Contenuti Fusione di due array ordinati, con eliminazione di duplicati Verifica array bidimensionale

Dettagli

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61 Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli

Dettagli

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione

Conoscere l uso delle collezioni in Java. Conoscere il concetto di Generics (programmazione 1 Conoscere l uso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali classi di Collection usare in casi specifici Conoscere

Dettagli

ArrayList. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

ArrayList. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni ArrayList Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni ArrayList Sotto diversi aspetti un ArrayList può essere considerato come un array migliore. I Miglioramenti sono

Dettagli

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Dettagli

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro Laboratorio di Programmazione Lezione 3 Cristian Del Fabbro Prossima lezione GIOVEDÌ 12 NOVEMBRE ORE 14:00 Array a.k.a. vettore Un array è una collezione ordinata di dati omogenei (cioé sono tutti dello

Dettagli

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non

Dettagli

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E11 Esercizi su array e array di array C. Limongelli Gennaio 2012 1 Contenuti Fusione di due array ordinati, con eliminazione di

Dettagli

Oggetti. Oggetti e classi. Utilizzo di classi. Classe

Oggetti. Oggetti e classi. Utilizzo di classi. Classe Oggetti Oggetti e classi Oggetto: entità che può essere manipolata nel programma mediante l invocazione di metodi Black box dotato di:! Interfaccia pubblica " Metodi visibili " Comportamento dell oggetto!

Dettagli

array in Java come disporre di un numero arbitrariamente alto di variabili omogenee

array in Java come disporre di un numero arbitrariamente alto di variabili omogenee array in Java come disporre di un numero arbitrariamente alto di variabili omogenee variabili con pedice? per memorizzare i coefficienti di polinomio di grado N occorrono N+1 variabili polinomio di grado

Dettagli

Array. Definizione e utilizzo di vettori

Array. Definizione e utilizzo di vettori Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];

Dettagli

L istruzione while. while (condition) istruzione

L istruzione while. while (condition) istruzione Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) { year++; double interest = balance * rate

Dettagli

Problema index index memorizzare tutti i valori della sequenza ma se i valori dovessero essere mille?

Problema index index memorizzare tutti i valori della sequenza ma se i valori dovessero essere mille? Array 1 Problema Scrivere un programma che legge dallo standard input una sequenza di dieci numeri in virgola mobile, uno per riga chiede all utente un numero intero index e visualizza il numero che nella

Dettagli

Programmazione in Java Parte II

Programmazione in Java Parte II Programmazione in Java Parte II Lezione 7 Dott. Marco Faella Il Java Collection Framework Java Collection Framework (JCF) è una parte della libreria standard dedicata alle collezioni, intese come classi

Dettagli

Progetto di classi: Metodi Costruttori Documentazione e commenti Variabili di istanza (campi)

Progetto di classi: Metodi Costruttori Documentazione e commenti Variabili di istanza (campi) Classi Progetto di classi: Dalla specifica dell interfaccia, alla definizione dell implementazione Metodi Costruttori Documentazione e commenti Variabili di istanza (campi) Progetto di una classe Un conto

Dettagli

Esercitazione Fondamenti di informatica 2

Esercitazione Fondamenti di informatica 2 Esercitazione Fondamenti di informatica 2 Array ed Oggetti JAVA 13 marzo 2006 L oggetto atrice Realizzare una classe oggetto atrice. Lo stato dell oggetto Vettore, è rappresentato da un array di array

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

E17 Esercizi sugli Array in Java

E17 Esercizi sugli Array in Java E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

E9 Esercizi sul Capitolo 9 Array

E9 Esercizi sul Capitolo 9 Array E9 Esercizi sul Capitolo 9 Array Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

L Array e un oggetto. L array puo contenere elementi che sono: tipi primitivi, o oggetti (in realta riferimenti ad oggetti!!!).

L Array e un oggetto. L array puo contenere elementi che sono: tipi primitivi, o oggetti (in realta riferimenti ad oggetti!!!). Arrays Idea Fornire il concetto di array presente nei piu comuni linguaggi di programmazione Un array e una struttura statica, una volta creato la sua dimensione (numero di elementi che lo compongono)

Dettagli

Decisioni. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo

Decisioni. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo Decisioni C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari 1

Dettagli

Iterazione. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo

Iterazione. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo Iterazione C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari 1

Dettagli

Collezioni, mappe e iteratori (a cura del Prof. Marco Patella)

Collezioni, mappe e iteratori (a cura del Prof. Marco Patella) , mappe e iteratori (a cura del Prof. Marco Patella) 1 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere

Dettagli

Bank. Bank. BankAccount. Bank. Bank. private BankAccount[] conti; // Posizione attuale private int posizioneattuale;...

Bank. Bank. BankAccount. Bank. Bank. private BankAccount[] conti; // Posizione attuale private int posizioneattuale;... Bank BankAccount Bank Bank Bank BankAccount private BankAccount[] conti; // Posizione attuale private int posizioneattuale;... Bank Bank public Bank(String nome, String internationalcode, int dimensione)

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Variabili di tipo Array Array bidimensionali Metodi statici Metodi statici della classe Math Esercizi 13/04/2011 Corso di Fondamenti

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Interfaccia Comparable e Collezioni Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 22 Interfaccia

Dettagli

Informatica - Laboratorio gennaio 06. Laboratorio. Esercizio 1

Informatica - Laboratorio gennaio 06. Laboratorio. Esercizio 1 Java Esercitazione Laboratorio Esercizio 1 Si crei la classe Esercizio1 che preveda: La generazione di 20 numeri interi casuali compresi tra 1 e 10 import java.util.*;.*; public class Esercizio1 { Random

Dettagli

Fondamenti di Informatica T1 Interfaccia Comparable Collezioni

Fondamenti di Informatica T1 Interfaccia Comparable Collezioni Fondamenti di Informatica T1 Interfaccia Comparable Collezioni Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 19 Interfaccia Comparable Fa

Dettagli

RicercaSequenziale import public class public static void throws new new new int int int char boolean true true false false out true out out else

RicercaSequenziale import public class public static void throws new new new int int int char boolean true true false false out true out out else Algoritmo di ricerca sequenziale o lineare, in una Tabella con LunghezzaTabella righe. L algoritmo restituisce il valore TRUE in Trovato se la chiave di ricerca C esiste nel campo Chiave (numerico) della

Dettagli

Leggere una sequenza di dati

Leggere una sequenza di dati Leggere una sequenza di dati Riprendiamo un problema già visto boolean done = false; while (!done) { String line = Console.readString(); if (line == null) done = true; else... // elabora line } Il ciclo

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Array Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 14 ARRAY (1) Un vettore (array) è un insieme

Dettagli

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class

Dettagli

A. Ferrari. collezioni. Java. Object Oriented Programming

A. Ferrari. collezioni. Java. Object Oriented Programming collezioni Java le collezioni di oggetti o una collezione può memorizzare un numero arbitrario di oggetti o il numero di elementi di una collezione è variabile: o è possibile inserire nuovi oggetti o è

Dettagli

TIPI PRIMITIVI E CLASSI WRAPPER

TIPI PRIMITIVI E CLASSI WRAPPER I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende

Dettagli

STRUTTURE DATI: OLTRE GLI ARRAY LISTE

STRUTTURE DATI: OLTRE GLI ARRAY LISTE STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Capitolo 2. Utilizzare oggetti

Capitolo 2. Utilizzare oggetti Capitolo 2 Utilizzare oggetti Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Oggetti e classi Gli oggetti sono entità di un programma che si possono manipolare invocando

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Array 2 Dati Strutturati I tipi di dati visti finora sono numeri (interi o razionali) booleani (valori

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti

Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 8 Introduzione al calcolatore e Java Linguaggio Java, basi e

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double

Dettagli

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E08 Esercizi su Array C. Limongelli Gennaio 2012 1 Contenuti q Esercizi: Lettura e stampa di un array Massimo elemento di un array

Dettagli

System.out.print("\tATTENZIONE: hi inserito un valore non valido!\n");

System.out.print(\tATTENZIONE: hi inserito un valore non valido!\n); Creare un applicazione console che dato l indice della borsa di Milano nel giorno precedente, calcola la variazione percentuale rispetto al valore dell indice del giorno corrente. import java.io.*; public

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Si descriva il comportamento del metodo main della classe ES2: cosa viene stampato sul video? Giustificare la risposta.

Si descriva il comportamento del metodo main della classe ES2: cosa viene stampato sul video? Giustificare la risposta. Esame scritto di: Fondamenti di Informatica - corsi 4 e 5 Data: 12 dicembre 2001 Traccia: B Tempo disponibile: 3 ore Cognome Nome Matricola Corso CORSO DI LAUREA Esercizio 1. Si consideri la seguente classe:

Dettagli

Array. Walter Didimo

Array. Walter Didimo Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

Dettagli

Usare gli Oggetti. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo

Usare gli Oggetti. C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo Usare gli Oggetti C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E09 Esercizi su Array C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esercizi su array 1 Contenuti Esercizi:

Dettagli

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata

Anno Accademico 2003/04. Docente modulo 1: Annalisa De Bonis. Ripete l esecuzione di statement fino a che la condizione e` verificata Iterazioni Anno Accademico 2003/04 Docente modulo 1: Lo statement while while (condition) statement; Ripete l esecuzione di statement fino a che la condizione e` verificata while (balance < targetbalance)

Dettagli

Cenni sull'uso dei debugger

Cenni sull'uso dei debugger Cenni sull'uso dei debugger 1 1 Debugger La maggior parte dei programmatori usano un debugger per individuare e correggere un errore Debugger = un programma che esegue il programma sotto collaudo e analizza

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 8 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

import public static boolean int boolean false boolean false boolean false boolean false true false

import  public static boolean int boolean false boolean false boolean false boolean false true false import java.util.arraylist; * Classe pubblica con metodi statici di utilità generale per: * la ricerca delle parole "EXIT" o "ESCI" o delle lettere "EE", scritte in maiuscolo o minuscolo, in una stringa

Dettagli

Programma... Autoboxing / unboxing Array Classe Rettangolo / classe Quadrato / Gerarchia e ereditarietà. Laboratorio di Programmazione - Esercitazio 1

Programma... Autoboxing / unboxing Array Classe Rettangolo / classe Quadrato / Gerarchia e ereditarietà. Laboratorio di Programmazione - Esercitazio 1 Programma... Autoboxing / unboxing Array Classe Rettangolo / classe Quadrato / Gerarchia e ereditarietà. Laboratorio di Programmazione - Esercitazio 1 Unboxing e autoboxing (per la classe Integer) Unboxing

Dettagli

Proge&are le Classi Ing. Massimo Cossen.no Sistemi Informa.vi Aziendali a.a. 2008/2009

Proge&are le Classi Ing. Massimo Cossen.no Sistemi Informa.vi Aziendali a.a. 2008/2009 Lezione 11 Sistemi Informa.vi Aziendali a.a. 2008/2009 Il sistema da proge/are deve realizzare le operazioni fondamentali di un conto bancario. Le operazioni richieste sono: Versare denaro Prelevare denaro

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Tipi di dato primitivo Tipo Descrizione Range bytes int interi 2147483648 2147483647 4 byte interi -128 127 1 short interi -32768

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Metodi di una Collection

Metodi di una Collection Java Collections Introduzione Una java collection (a volte chiamata anche container) è un oggetto che raggruppa più elementi dello stesso tipo in una singola unità. Tipicamente è utilizzata per raggruppare

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 14: ALGORITMI di ordinamento di array RICERCA sequenziale e binaria Array bidimensionali (matrici) Passaggio di argomenti al main Operazioni su array Un array

Dettagli

Richiami Java e Arrays

Richiami Java e Arrays Richiami Java e Arrays concetti base G.T. 1 casting G.T. 1.3.3 e 2.5 uso array G.T. 3.1 lista semplice G.T. 3.2 1 Concetti base Oggetto istanza (di una classe) classe (tipo di un oggetto) variabili di

Dettagli

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

Dettagli

Fondamenti di Informatica T-1. Variabili, costanti e operazioni Selezione

Fondamenti di Informatica T-1. Variabili, costanti e operazioni Selezione Variabili, costanti e operazioni Selezione 2 Variabili Dichiarazione di una variabile: ; Esempio: variabile numerica intera numauto: int numauto; Assegnare alla variabile

Dettagli

Un tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo

Un tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo TIPI DI DATO ASTRATTO Un tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo implica un dominio, D un insieme di operazioni ammissibili su oggetti

Dettagli