10 - Programmare con gli Array

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "10 - Programmare con gli Array"

Transcript

1 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa milazzo milazzo di.unipi.it Corso di Laurea Magistrale in Informatica Umanistica A.A. 2013/2014 Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

2 Programmare con gli array Lo scopo di questa lezione è illustrare alcuni schemi di programmi cioè soluzioni a problemi di programmazione che ricorrono frequentemente nello sviluppo di programmi sono essenzialmente degli algoritmi, espressi nel linguaggio di programmazione scelto (Java) Ci concentreremo su problemi che richiedono cicli e array per essere risolti Quindi: schemi di programmi iterativi Per ogni schema di programma che consideremo: Vedremo un esempio di problema e il programma che lo risolve Ragioneremo sul programma dell esempio per estrarne lo schema di funzionamento Menzioneremo altri esempi di problemi che possono essere risolti seguendo lo stesso schema Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

3 Innanzitutto: quando gli array non servono? (1) Innanzitutto è bene capire che non sempre serve usare un array. Esempio: programma che chiede all utente di inserire 10 numeri e ne calcola la media import java. util. Scanner ; public class Media { // soluzione che usa un array public static void main ( String [] args ) { Scanner input = new Scanner ( System. in ); int [] valori = new int [10]; // memorizza tutti i valori in un array for ( int i =0; i <10; i ++) valori [ i] = input. nextint (); // somma tutti gli elementi dell array int somma = 0; for ( int x : valori ) somma +=x; } } // calcola e stampa la media int media = somma /10; System. out. println ("La media e : " + media ); Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

4 Innanzitutto: quando gli array non servono? (2) Prima di creare un array e iniziare a riempirlo di valori, pensare bene se c e un modo per ottenere lo stesso risultato lavorando on-the-fly ossia utilizzando i dati man mano che arrivano, senza memorizzarli import java. util. Scanner ; public class Media2 { // soluzione che NON usa un array public static void main ( String [] args ) { Scanner input = new Scanner ( System. in ); // somma on - the - fly tutti gli elementi inseriti int somma = 0; for ( int i =0; i <10; i ++) somma += input. nextint (); } } // calcola e stampa la media int media = somma /10; System. out. println ("La media e : " + media ); Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

5 Innanzitutto: quando gli array non servono? (3) Altro esempio dello stesso tipo... Esempio: scrivere un programma che stampa gli elementi di un array in ordine inverso import java. util. Scanner ; public class Inverti { // soluzione che usa un secondo array public static void main ( String [] args ) { int [] valori = { 5, 7, 9, 11, 23, 8 }; int last = valori. length -1; // posizione dell ultimo elemento // creo un nuovo array in cui copio i valori in ordine inverso int [] valori2 = new int [ valori. length ]; for ( int i =0; i< valori. length ; i ++) valori2 [i] = valori [last -i]; } // stampa il contenuto del secondo array for ( int x : valori2 ) System. out. println (x); Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

6 Innanzitutto: quando gli array non servono? (4) Ma... serve veramente il secondo array? I dati sono già memorizzati nel primo. Basta eseguire le stampe in ordine inverso... import java. util. Scanner ; public class Inverti2 { // soluzione che NON usa un secondo array public static void main ( String [] args ) { } int [] valori = { 5, 7, 9, 11, 23, 8 }; // scorre l array dall ultimo elemento al primo // notare l uso degli indici nel ciclo for for ( int i=( valori. length -1); i >=0; i - -) System. out. println ( valori [i ]); Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

7 Innanzitutto: quando gli array non servono? (5) In quali di questi esempi è necessario un array? 1. Chiedere all utente di inserire 10 numeri e stampare il minimo tra essi 2. Chiedere all utente di inserire 10 stringhe e stampare la stringa ottenuta concatenandole tutte l una dopo l altra 3. Chiedere all utente di inserire 10 numeri e, successivamente, ristamparli tutti nell ordine 4. Chiedere all utente di inserire 10 caratteri e stampare Trovata Vocale! se tra essi è presente almeno una vocale 5. Chiedere all utente di inserire 10 numeri e verificare se i primi 5 sono uguali agli ultimi 5 (ad es. 1,3,4,7,9,1,3,4,7,9) Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

8 Innanzitutto: quando gli array non servono? (5) In quali di questi esempi è necessario un array? 1. Chiedere all utente di inserire 10 numeri e stampare il minimo tra essi 2. Chiedere all utente di inserire 10 stringhe e stampare la stringa ottenuta concatenandole tutte l una dopo l altra 3. Chiedere all utente di inserire 10 numeri e, successivamente, ristamparli tutti nell ordine 4. Chiedere all utente di inserire 10 caratteri e stampare Trovata Vocale! se tra essi è presente almeno una vocale 5. Chiedere all utente di inserire 10 numeri e verificare se i primi 5 sono uguali agli ultimi 5 (ad es. 1,3,4,7,9,1,3,4,7,9) Soluzione: NNSNS Quanto deve essere grande l array nel caso 5? Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

9 Schemi di programmi su array D ora in poi assumeremo che i dati su cui vogliamo lavorare siano contenuti in un array Vedremo solo frammenti di programmi da inserire nel seguente scheletro import java. util. Scanner ; public class NomeProgramma { public static void main ( String [] args ) { Scanner input = new Scanner ( System. in ); int [] valori = int [10]; // l array in questione // inizializzazione da parte dell utente for ( int i =0; i <10; i ++) valori [ i] = input. nextint (); // I FRAMMENTI DI PROGRAMMI CHE VEDREMO // DOVRANNO ESSERE INSERITI QUI } } Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

10 Scansione sequenziale di un array (1) Esempio: Sommare tutti i valori di un array int somma =0; for ( int x: valori ) somma +=x; System. out. println ( somma ); Si scandisce tutto l array dall inizio alla fine portandosi dietro la somma dei valori incontrati All i-esima iterazione la variabile (accumulatore) somma rappresenta in modo sintetico tutti gli elementi dell array tra le posizioni 0 e i-1 In altre situazioni la variabile da portarsi dietro può essere un contatore (Esempio: stampare quanti zeri sono contenuti nell array) un valore (Esempio: stampare il valore minimo) un indice (Esempio: stampare la posizaione del valore minimo) combinazioni delle precedenti (Esempi: stampare valore e posizione del minimo; stampare minimo e massimo) Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

11 Scansione sequenziale di un array (2) Schema di programma: scansione sequenziale 1. Dichiara e inizializza variabili opportune X,Y,... (da "portarsi dietro") 2. Per ogni elemento E dell array aggiorna le variabili X,Y,... considerando E 3. Stampa il risultato sulla base dei valori finali di X,Y,... Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

12 Scansione sequenziale di un array (3) Altri esempi in cui può essere applicato questo schema: 1. Dato un array di stringhe stampare la stringa più lunga 2. Verificare se un dato elemento è presente in un array (terminologia: problema della ricerca di un elemento) 3. In un array di caratteri, stampare il numero di occorrenze di ogni vocale (es: "Ci sono 5 a, 3 e, 7 i, 0 o, 9 u") 4. Verificare se i valori di un array sono in ordine crescente Che informazioni bisogna portarsi dietro in ogni caso? Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

13 Scansione a doppio indice di un array (1) Esempio: Inversione di un array: ridisporre gli elementi dell array in ordine inverso (dall ultimo al primo) Da così: A così: valori valori Idee su come fare? Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

14 Scansione a doppio indice di un array (2) Idea: scambio il primo elemento con l ultimo, il secondo con il penultimo, ecc... Attenzione: come si scambiano i valori di due elementi dell array? NON in questo modo: valori [0] = valori [9]; valori [9] = valori [0]; // AAARGH!! che fine ha fatto valori [0]? CI VUOLE una variabile d appoggio: int tmp = valori [0]; valori [0] = valori [9]; valori [9] = tmp ; Lo stesso vale quando si vogliono scambiare i valori di due normali variabili Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

15 Scansione a doppio indice di un array (3) Ecco la soluzione: for ( int i =0; i <( valori. length /2); i ++) { // notare la guardia // posizione elemento da scambiare con quello in posizione i int j=( valori. length -1) -i; } int tmp = valori [ i]; valori [i] = valori [j]; valori [j] = tmp ; In questo caso stiamo usando due indici, i e j, per muoverci nell array i e j in questo caso vengono aggiornati insieme (sono legati da una formula matematica) In altri casi i e j possono essere aggiornati a turno (esempio successivo) Notare che questo ciclo fa valori.length/2 iterazioni, ma ad ogni iterazioni vengono letti 2 valori. Totale: tutti i valori.length valori vengono letti Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

16 Scansione a doppio indice di un array (4) Altro esempio: Si supponga di avere un array valori di 10 elementi in cui gli elementi della prima metà e della seconda metà sono disposti in ordine crescente. Copiare tutti gli elementi di valori in un nuovo array valori2 in modo che siano tutti ordinati. Se questo è valori: valori Questo deve essere valori2: valori Idee su come fare? Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

17 Scansione a doppio indice di un array (5) Idea: confronto valori[0] con valori[5] e copio il minore in valori2. Incremento l indice del valore che ho copiato, ripeto il confronto e continuo così... int valori2 = new int [10]; int i=0, j=5, k =0; // k serve per scorrere valori2 do { // copia il minore e incrementa i o j if ( valori [i]< valori [j]) { valori2 [ k] = i ++; } else { valori2 [ k] = j ++; } // incrementa k k ++; valori [ i]; valori [ j]; } while ((i <5)&&( j <10)); // uno tra i e j non ha concluso il suo lavoro... // solo uno di questi due cicli viene eseguito while (i <5) { valori2 [ k]= valori [ i]; i ++; k ++; } while (j <10) { valori2 [ k]= valori [ j]; j ++; k ++; } Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

18 Scansione a doppio indice di un array (6) Schema di programma: scansione a doppio indice 1. Dichiara e inizializza due indici i e j 2. In un ciclo usa i e j per confrontare/scambiare i valori dell array aggiorna i e/o j 3. Gestisci eventuali elementi dell array non considerati 4. Stampa il risultato Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

19 Scansione a doppio indice di un array (6) Altri esempi in cui può essere applicato questo schema: 1. Verificare se un array di char è palindromo, ossia la sequenza di caratteri letti da sinistra a destra, oppure da destra a sinistra è la stessa. (Il concetto di palindromo è di solito riferito alle stringhe: ad es. "ailatiditalia", "itopinonavevanonipoti", inotipiedideipitoni,...) Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

20 Scansione di un array con cicli annidati (1) Nello schema precedente ogni elemento dell array veniva confrontato con un altro elemento. Spesso capita di dover confrontare ogni elemento dell array con tutti gli altri elementi Esempio: Un programma che verifica se esistono due elementi uguali nell array Come in questo caso: valori Bisogna per forza confrontare ogni elemento con tutti gli altri Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

21 Scansione di un array con cicli annidati (2) Idea: prendo il primo elemento e lo confronto con tutti i successivi, prendo il secondo elemento e lo confronto con tutti i successivi,... // flag che diventa true quando si trova un elemento ripetuto boolean trovato = false ; // per ogni elemento ( ultimo escluso )... for ( int i =0; i <9; i ++) { //... considera tutti i successivi (da i +1)... for ( int j=i +1; j <10; j ++) { //... e confronta if ( valori [i ]== valori [j]) trovato = true ; } } Note: quando si considera il secondo elemento non c e bisogno di confrontarlo con il primo (già fatto!), e così via... per evitare tali controlli superflui non si può usare for-each (non consente di gestire gli indici) si possono usare anche cicli while e do-while (ad esempio, per interrompere la ricerca appena trovato diventa true) Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

22 Scansione di un array con cicli annidati (3) Schema di programma: scansione con cicli annidati 1. Dichiara e inizializza un indice i 2. Cicla per i che va da 0 alla penultima posizione In ogni iterazione del ciclo: a. Dichiara e inizializza un indice j b. Cicla per j che va da i+1 all ultima posizione In ogni iterazione del ciclo: Usa i e j per confrontare/scambiare gli elementi 3. Stampa il risultato Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

23 Scansione di un array con cicli annidati (4) Altro esempio: Ordinamento di un array (algoritmo Selection sort) Da così: valori A così: valori Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

24 Scansione di un array con cicli annidati (5) L algoritmo Selection sort è (più o meno) quello che molti usano per sistemarsi le carte in mano... Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

25 Scansione di un array con cicli annidati (6) Idea: cerco il valore minimo e lo metto in prima posizione (scambiandoli), cerco il minimo dei rimanenti e lo metto in seconda posizione (scambiandoli),... Animazione: in rosso i valori da scambiare e in grassetto i valori sistemati eccetera... valori valori valori valori Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

26 Scansione di un array con cicli annidati (7) Ecco la soluzione (Selection sort): for ( int i =0; i <9; i ++) { // cerca il minimo nelle posizioni tra i e int posmin =i; //... portandosi dietro l indice for ( int j=i; j <10; j ++) { if ( valori [j]< valori [ posmin ]) posmin =j; } } // scambia il minimo con l elemento in posizione i int tmp = valori [ i]; valori [i] = valori [ posmin ]; valori [ posmin ] = tmp ; Note: La ricerca del minimo segue lo schema scansione sequenziale portandosi dietro un indice posmin Il for interno fa partire j dal valore i, non i-1 (piccolo aggiustamento dello schema scansione con cicli annidati ) Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

27 Scansione di un array con cicli annidati (8) Altri esempi in cui può essere applicato questo schema: 1. Altri algoritmi di ordinamento iterativi (Ad esempio: Insertion sort e Bubble sort) 2. Stampare tutte le coppie possibili di valori dell array 3. Determinare il numero di copie dell elemento che compare più volte nell array In tutti questi esempi il tipo dei valori dell array può essere numerico, char o String Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

28 Breve confronto tra gli schemi proposti (1) Abbiamo visto Scansione sequenziale Scansione a doppio indice Scansione con cicli annidati I tre schemi servono per risolvere problemi diversi La scansione sequenziale usa un solo indice, mentre gli altri ne usano due I due indici sono gestiti da un unico ciclo nella scansione a doppio indice Sono invece gestiti da due cicli diversi nella scansione con cicli annidati Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

29 Breve confronto tra gli schemi proposti (2) Nella scansione sequenziale e a doppio indice ogni elemento dell array viene usato una volta sola (o comunque poche volte) Nella scansione con cicli annidati ogni elemento può essere usato fino a length volte Questo incide sul tempo di esecuzione del programma (o meglio sul numero di operazioni che dovrà eseguire detto anche complessità computazionale) Un programma che usa la scansione sequenziale o la scansione a doppio indice esegue un numero di operazioni proporzionale alla dimensione dell array (complessità lineare) Un programma che usa la scansione con cicli annidati esegue un numero di operazioni proporzionale al quadrato della dimensione dell array (complessità quadratica) Al crescere della dimensione dell array, il numero di operazioni dell approccio scansione con cicli annidati cresce più velocemente che negli altri casi (per approfondimenti: libro di Crescenzi, Gambosi e Grossi) Paolo Milazzo (Università di Pisa) Programmazione - Programmare Array A.A. 2013/ / 28

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

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

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Corso di Tecniche di Programmazione

Corso di Tecniche di Programmazione Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe De Giacomo, Luca Iocchi, Domenico Lembo Dispensa : Algoritmi di Ordinamento

Dettagli

23 - Graphical User Interface GUI (Cenni)

23 - Graphical User Interface GUI (Cenni) 23 - Graphical User Interface GUI (Cenni) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File 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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

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

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 14 - Packages 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

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 15 - Packages 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

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

Dettagli

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java 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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

Complessità computazionale

Complessità computazionale 1 Introduzione alla complessità computazionale Un problema spesso può essere risolto utilizzando algoritmi diversi Come scegliere il migliore? La bontà o efficienza di un algoritmo si misura in base alla

Dettagli

Laboratorio di Informatica Lezione 2

Laboratorio di Informatica Lezione 2 Laboratorio di Informatica Lezione 2 Cristian Consonni 30 settembre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 2 1 / 42 Outline 1 Commenti e Stampa a schermo 2 Strutture di controllo 3

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Eclipse - Nozioni Base

Eclipse - Nozioni Base Eclipse - Nozioni Base 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

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 18 marzo 2011 Problema basato su 10.5 del libro di testo La CINA (Compagnia Italiana per il Noleggio di Automobili) dispone di

Dettagli

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa Ricerche, ordinamenti e fusioni 5.1 Introduzione Questo capitolo ci permette di fare pratica di programmazione utilizzando gli strumenti del linguaggio introdotti finora. A una prima lettura possono essere

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

String, Array e Main. Lezione 7

String, Array e Main. Lezione 7 String, Array e Main Lezione 7 Scopo della Lezione Presentare la classe String ed il tipo Stringa; Presentare ed imparare ad usare gli array in Java; Approfondire la conoscenza con il metodo speciale main.

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

Verifica che una grammatica sia Context Free nel GrammaReader Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali 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

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il primo

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Definizione di classi con array di oggetti

Definizione di classi con array di oggetti Definizione di classi con array di oggetti 1. (Esame scritto del 18/9/2002, Esercizio 6.) La banca dati di un agenzia assicurativa per auto è caratterizzata da un insieme di polizze di assicurazioni per

Dettagli

If a cascata, switch, boolean

If a cascata, switch, boolean If a cascata, switch, boolean If a cascata Switch Il tipo boolean Operatori logici, valutazione pigra 1 If a cascata Consideriamo una semplice classe che deve descrivere con una stringa gli effetti di

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] Strutture dati Dinamiche: Le liste Una lista è una sequenza di elementi di un certo tipo in cui è possibile aggiungere e/o

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli 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

Dettagli

LAVORO ESTIVO DI INFORMATICA CLASSE 2O

LAVORO ESTIVO DI INFORMATICA CLASSE 2O LAVORO ESTIVO DI INFORMATICA CLASSE 2O PER COLORO CHE HANNO AVUTO LA SOSPENSIONE DEL GIUDIZIO, GLI ESERCIZI SVOLTI DEVONO ESSERE CONSEGNATI TASSATIVAMENTE IL GIORNO DELL'ESAME SCRITTO. A CHI È STATO ASSEGNATO

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

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

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

ARRAY E STRINGHE. G. Frosini Slide 1

ARRAY E STRINGHE. G. Frosini Slide 1 ARRAY E STRINGHE G. Frosini Slide 1 Array: VARIABILI ARRAY struttura dati costituita da elementi (anche nessuno, array vuoto) dello stesso tipo; tipo array: tipo degli elementi, non numero degli elementi;

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il

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

I tipi di dato astratti

I tipi di dato astratti I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato

Dettagli

RICERCA DI UN ELEMENTO

RICERCA DI UN ELEMENTO RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare

Dettagli

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Iterazione e ricorsione. Cicli, Array e Programmazione su Sequenze. Ciclo while. Cicli

Iterazione e ricorsione. Cicli, Array e Programmazione su Sequenze. Ciclo while. Cicli Iterazione e ricorsione Dal punto di vista della teoria della computazione, affinché un linguaggio di programmazione imperativo (C, Pascal, codice nei metodi del Java, ecc.) raggiunga la potenza di calcolo

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Caratteri e stringhe Esercizi risolti

Caratteri e stringhe Esercizi risolti Esercizi risolti 1 Esercizio: Conta vocali e consonanti Scrivere un programma in linguaggio C che legga una frase introdotta da tastiera. La frase è terminata dall introduzione del carattere di invio.

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria

Dettagli

Programmazione ad Oggetti: JAVA. Esercitazione

Programmazione ad Oggetti: JAVA. Esercitazione Programmazione ad Oggetti: JAVA Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore

Dettagli

Cicli, Array e Programmazione su Sequenze

Cicli, Array e Programmazione su Sequenze Cicli, Array e Programmazione su Sequenze Luca Tesei Università di Camerino luca.tesei at unicam.it Università di Camerino - Corso di Laurea in Informatica - Programmazione + Laboratorio di Programmazione

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

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti q Funzioni e domini definiti

Dettagli

Ricorsione. Corso di Fondamenti di Informatica

Ricorsione. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Ricorsione Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e

Dettagli

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Introduzione alla tecnica di Programmazione Dinamica

Introduzione alla tecnica di Programmazione Dinamica Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/37 Sommario della lezione Introduzione alla tecnica di Programmazione Dinamica Esempio di applicazione n. 1:

Dettagli

anno 2014-15 Introduzione all'algoritmica per i Licei 3 Controllo del flusso di esecuzione.

anno 2014-15 Introduzione all'algoritmica per i Licei 3 Controllo del flusso di esecuzione. anno 2014-15 Introduzione all'algoritmica per i Licei 3 Controllo del flusso di esecuzione. Elio Giovannetti Dipartimento di Informatica Università di Torino versione 1 marzo 2015 Quest'opera è distribuita

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Le stringhe. Le stringhe

Le stringhe. Le stringhe Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è

Dettagli

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1 Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio

Dettagli

Vettori Algoritmi elementari di ordinamento

Vettori Algoritmi elementari di ordinamento Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Vettori Algoritmi elementari di ordinamento Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008 Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli