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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio

2 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze ordinate 2

3 Array paralleli q Un insieme di array paralleli è un insieme formato da due o più array della stessa lunghezza, in cui gli elementi che occupano una stessa posizione formano un gruppo correlato di dati come nel caso degli array nomi e voti nel problema degli studenti da promuovere nomi voti 0 Rossi Verdi Bianchi Gialli dati sullo studente Bianchi individuati nei due array dallo stesso indice 2 19 Neri

4 Array e oggetti q Gli elementi di un array possono essere dei riferimenti a oggetti il problema degli studenti da promuovere può essere risolto usando un array di oggetti, in cui ciascun elemento è un oggetto che rappresenta i dati di uno studente la relativa valutazione è una alternativa che può essere preferita agli array paralleli 4

5 Un array di oggetti vs v0 nome = Rossi voto = 8.1 v1 nome = Verdi voto = 3.2 v2 nome = Bianchi voto = 5.2 v3 nome = Gialli voto = 5.6 v19 nome = Neri voto = 8.5 oggetto dati per lo studente Bianchi 5

6 La classe Valutazione /* Un oggetto Valutazione rappresenta il nome * di uno studente e la votazione che ha ricevuto. */ class Valutazione { /* Il nome dello studente. */ private String nome; /* La votazione ricevuta dallo studente. */ private double voto; /* Crea una nuova Valutazione, dati nome e votazione. */ public Valutazione(String nome, double voto) { this.nome = nome; this.voto = voto; } /* Restituisce il nome dello studente. */ public String getnome() { return nome; } /* Restituisce il voto ottenuto dallo studente. */ public double getvoto() { return voto; } } 6

7 Il problema degli studenti... final int NUMERO_STUDENTI = 20; // numero degli studenti Valutazione[] vs; // valutazioni degli studenti String nome; // nome di uno studente double voto; // votazione ottenuta da uno studente int i; // indice per la scansione di vs double sommavoti; // somma dei voti double soglia; // soglia per la promozione /* crea l'array per le valutazioni degli studenti */ vs = new Valutazione[NUMERO_STUDENTI]; /* leggi nomi e votazioni dei cinque studenti */... stampa un messaggio... for (i=0; i<numero_studenti; i++) { /* leggi nome e votazione dell'i-esimo studente */ nome = Lettore.in.leggiString(); voto = Lettore.in.leggiDouble(); /* crea la valutazione per l'i-esimo studente */ vs[i] = new Valutazione(nome,voto); } 7

8 ... Il problema degli studenti /* calcola la soglia per la promozione */ sommavoti = 0; for (i=0; i<numero_studenti; i++) sommavoti += vs[i].getvoto(); soglia = (2./3.) * (sommavoti/numero_studenti); /* stampa l'elenco degli studenti da promuovere */... stampa un messaggio... for (i=0; i<numero_studenti; i++) { /* verifica se l'i-esimo studente è stato promosso */ } if (vs[i].getvoto() >= soglia) System.out.println(vs[i].getNome() + " " + vs[i].getvoto()); 8

9 Esercizi q Scrivere un metodo che, dato un numero naturale N, crea e restituisce un array di N oggetti Rettangolo creati in modo casuale q Scrivere un metodo che, ricevendo come parametro un array di oggetti Rettangolo, calcola e restituisce il rettangolo di area massima q Scrivere un metodo che, ricevendo come parametro un array di oggetti Rettangolo, calcola e restituisce la coppia di rettangoli la cui intersezione ha area massima 9

10 Esercizi q Data la classe Libro per rappresentare oggetti libro con il nome dell autore, il titolo e il numero di pagine e con i relativi metodi d istanza scrivere un metodo che, ricevendo come parametro un array di oggetti Libro, calcola e restituisce un array di oggetti Libro dello stesso autore scrivere un metodo che, ricevendo come parametro un array di oggetti Libro, calcola e restituisce l oggetto Libro con il massimo numero di pagine 10

11 Esercizi q Data la classe Auto per rappresentare oggetti automobile con il nome della marca, il nome del modello, la targa e l anno di immatricolazione e con i relativi metodi d istanza scrivere un metodo che, ricevendo come parametro un array di oggetti Auto, calcola e restituisce un array di oggetti Auto della stessa marca e dello stesso modello scrivere un metodo che, ricevendo come parametro un array di oggetti Auto, calcola e restituisce l oggetto Auto più vecchia 11

12 Ricerca di un elemento in un array Descrizione del problema q dato un array a di elementi di tipo T e un valore chiave di tipo T q verificare se l array a contiene un elemento uguale a chiave se a contiene almeno un elemento uguale a chiave, allora deve essere calcolato e restituito l indice (ovvero, la posizione) di uno degli elementi di a tra quelli uguali a chiave altrimenti, deve essere restituito il valore -1 12

13 Il problema della ricerca in un array Nell esecuzione di una operazione di ricerca in un array sono possibili diverse situazioni a q se il valore chiave è uguale a 16, l array a contiene un solo elemento uguale a chiave in questo caso va restituito l indice 6 q se chiave è uguale a 6, l array a non contiene nessun elemento uguale a chiave in questo caso va restituito il valore 1 q se chiave è uguale a 2, l array a contiene più di un elemento uguale a chiave può essere restituito indifferentemente l indice 5 oppure 7 13

14 Spazio di ricerca q Nella ricerca di una chiave in un array, in ogni momento del processo di ricerca, gli elementi dell array sono partizionati in due insiemi: un insieme è composto dagli elementi che sono già stati esaminati l altro insieme è composto dagli elementi ancora da esaminare q Per spazio di ricerca si intende la porzione dell array che è candidata a contenere la chiave della ricerca 14

15 Spazio di ricerca Lo spazio di ricerca varia in modo dinamico durante l esecuzione dell algoritmo di ricerca q inizialmente lo spazio di ricerca contiene tutti gli elementi dell array q la chiave viene confrontata solo con elementi dello spazio di ricerca q ogni confronto tra la chiave e un elemento dello spazio di ricerca può trovare l elemento e terminare la ricerca, oppure ridurre lo spazio di ricerca Solitamente lo spazio di ricerca è una porzione contigua dell array, delimitata da un indice o da una coppia di indici 15

16 Spazio di ricerca nella ricerca sequenziale Nella ricerca sequenziale lo spazio di ricerca si riduce sempre di una componente finché non viene trovato l elemento

17 Ricerca sequenziale: algoritmo q Input: a: array con elementi di tipo T, chiave: elemento di tipo T q Output: indice: intero indice della componente dell array in cui si trova l elemento cercato (se esiste), -1 se non esiste q Algoritmo Gli elementi di a vengono analizzati, in sequenza, confrontandoli con l elemento chiave da cercare, finché non viene trovato un elemento uguale a chiave Se sono stati esaminati tutti gli elementi di a e non è stato trovato nessun elemento uguale a chiave la ricerca non ha avuto successo La ricerca è sequenziale, nel senso che gli elementi dell array vengono scanditi in sequenza, uno dopo l altro 17

18 Ricerca sequenziale: codifica /* Verifica se l array a contiene un elemento uguale a * chiave, e restituisce la posizione della prima * occorrenza di chiave in a, oppure -1. */ public static int ricercasequenziale(int[] a, int chiave){ // pre: a!=null int indice; // posizione di chiave in a int i; // indice per la scansione di a boolean trovato; // vero se l el. e stato trovato /* scandisce gli elementi di a, alla ricerca della * prima occorrenza di chiave in a */ indice = -1; trovato = false; i = 0; while (i < a.length &&!trovato){ if (a[i] == chiave) { indice = i; trovato = true;} i++; } return indice; } 18

19 Ricerca sequenziale: analisi dei costi Ipotesi: l array ha n elementi q Caso peggiore: L elemento non esiste nella sequenza Devo confrontare chiave con tutti gli elementi dell array n confronti q Caso migliore: L elemento viene trovato al primo confronto 1 confronto q In generale L elemento esiste e si trova in posizione p < n p+1 confronti 19

20 Ricerca in un array ordinato q Consideriamo il problema della ricerca in un array ordinato in particolare, ordinato in modo non decrescente per i = 0..a.length-1, a[i] <= a[i+1]

21 Ricerca binaria q Inizialmente lo spazio di ricerca è composto da tutti gli elementi dell array q Finché non è stato trovato un elemento dell array uguale alla chiave (e comunque lo spazio di ricerca è non vuoto) confronta la chiave con l elemento centrale dello spazio di ricerca se la chiave è uguale all elemento centrale dello spazio di ricerca, allora la ricerca termina con esito positivo se invece la chiave è maggiore dell elemento centrale dello spazio di ricerca, rimuovi dallo spazio di ricerca l elemento centrale e tutti quelli alla sua sinistra se invece la chiave è minore dell elemento centrale dello spazio di ricerca, rimuovi dallo spazio di ricerca l elemento centrale e tutti quelli alla sua destra 21

22 Ricerca binaria successo s=0 c=5 d= s=0 c=2 d= s=3 c=4 d=5 22

23 Ricerca binaria fallimento s=0 c=5 d= s=6 c=8 d= s=6 c=7 d= s=d=8 23

24 Spazio di ricerca nella ricerca binaria Nella ricerca binaria lo spazio di ricerca è formato da insieme di elementi contigui di a, delimitato mediante una coppia di indici, sinistra e destra q sinistra è l indice del primo elemento dello spazio di ricerca (ovvero, quello più a sinistra) q destra è l indice del primo elemento oltre lo spazio di ricerca lo spazio di ricerca è perciò composto dagli elementi di indice tra sinistra (incluso) e destra (escluso) q l algoritmo usa anche una variabile centro per indicare l elemento centrale dello spazio di ricerca ad ogni iterazione, centro viene scelto pari a (sinistra+destra)/2 N.B.: ( / denota la divisione tra interi) 24

25 Ricerca binaria: codifica /* Ricerca chiave nell'array a ordinato in modo * non descrescente, restituendo l'indice di un * elemento di a uguale a chiave (oppure -1). */ public static int ricercabinaria(int[] a, int chiave) { // pre: a!=null && a è ordinato in modo non decrescente int posizione; int sinistra; int destra; int centro; // posizione di un elemento di a // uguale a chiave, se esiste // indice del primo elemento dello // spazio di ricerca // indice del primo elemento oltre // lo spazio di ricerca // indice dell'elemento centrale // dello spazio di ricerca boolean trovato; // vero se l elemento viene trovato 25

26 Ricerca binaria: codifica } /* inizialmente lo spazio di ricerca comprende * tutti gli elementi di a */ sinistra = 0; destra = a.length; trovato = false; /* cerca l'indice di un elemento di a uguale * a chiave, se esiste, mediante la ricerca binaria */ posizione = -1; while (sinistra<destra &&!trovato) { centro = (sinistra+destra)/2; if (a[centro]==chiave){ // trovato trovato = true; posizione = centro; } else if (a[centro]>chiave) // continua a sinistra destra = centro; else // continua a destra sinistra = centro+1; } return posizione; 26

27 Analisi dei costi della ricerca binaria Ipotesi: n è una potenza di due n = 2 h Confronto spazio di ricerca 1 n 2 n / 2 3 n / 2 2. Ad ogni iterazione lo spazio di ricerca si dimezza. h+1-esimo... n / 2 h = 1 Quanti confronti? h+1, ma h = log 2 n, quindi log 2 n + 1 confronti 27

28 Esempio 1 confronto Cerchiamo il valore confronto confronto confronto

29 Esercizi q Scrivere un metodo che, dati due array di interi, non necessariamente della stessa dimensione, ciascuno dei quali è ordinato in modo crescente, calcola il numero di elementi comuni ai due array A B q Discutere il costo dell algoritmo implementato, nel caso peggiore 29

30 Esercizi q Descrivere l applicazione dell algoritmo di ricerca binaria con riferimento al seguente array usando come chiave i valori 0, -5, 22 e 44 descrivere, in particolare, l evoluzione dello spazio di ricerca q Scrivere un metodo, basato sulla ricerca binaria, che calcola la posizione del primo elemento di un array ordinato uguale alla chiave della ricerca 30

31 Esercizio q Scrivere un metodo int[ ] inserisci(int[ ] a, int v), in cui a è un array ordinato in modo non decrescente, che crea e restituisce un nuovo array che contiene l elemento v insieme a tutti gli elementi di a, ed è ancora ordinato in modo non descrescente ad esempio, inserisci(new int[ ] { 3, 5, 6, 8 }, 4) deve restituire l array { 3, 4, 5, 6, 8 } 31

32 Fusione di sequenze ordinate q La fusione di due sequenze ordinate è una operazione che date due sequenze a e b ordinate in modo non decrescente costruisce una nuova sequenza s che contiene tutti gli elementi di a e b - la cui lunghezza è quindi uguale alla somma delle lunghezze di a e b - ed è ordinata in modo non decrescente a s b

33 Strategia di fusione q Assegno gli elementi di s uno alla volta, in sequenza individuo la posizione di s in cui inserire il prossimo elemento di a o di b l indice iniziale di s vale 0 il prossimo elemento (di a o di b) viene scelto tra l elemento più piccolo di a e quello più piccolo di b tra quelli che non sono ancora stati inseriti in s 33

34 Algoritmo di fusione q L algoritmo per la fusione di array ordinati gestisce tre indici l indice ia del più piccolo elemento di a tra quelli che non sono ancora stati inseriti in s l indice ib del più piccolo elemento di b tra quelli che non sono ancora stati inseriti in s l indice is del prossimo elemento da inserire in s inizialmente valgono tutti 0 in modo iterativo, il prossimo elemento da inserire in s[is] viene scelto tra a[ia] e b[ib] attenzione all incremento degli indici 34

35 Indici nella fusione di array ia=1 a b ib=2 s is=3 a ia= b ib=2 s is=4 35

36 Indici nella fusione di array q A un certo punto, tutti gli elementi di uno dei due array saranno stati inseriti in s ia=2 a b ib=3 s is=5 da questo momento in poi, l algoritmo procede diversamente con la copia degli elementi residui dell altro array 36

37 Implementazione della fusione... /* Fonde gli array a e b ordinati in modo * non decrescente in un nuovo array ordinato. */ public static int[] fusione(int[] a, int[] b) { // pre: a!=null && b!=null && // a e b ordinati in modo non decrescente int[] s; int ia, ib, is; // risultato della fusione di a e b // indici per a, b e s /* inizializzazioni */ s = new int[a.length+b.length]; ia = 0; ib = 0; is = 0;... segue... 37

38 ... Implementazione della fusione segue... /* prima fase della fusione: inserisci da a e b */ while (ia<a.length && ib<b.length) { /* inserisci in s il più piccolo tra a[ia] e b[ib] */ if (a[ia]<b[ib]) { s[is] = a[ia]; ia++; } else { } s[is] = b[ib]; ib++; is++; } /* ora ia==a.length ib==b.length */... segue... 38

39 ... Implementazione della fusione }... segue... /* seconda fase della fusione: inserisci da a o b */ if (ib==b.length) /* inserisci da a: */ /*l'indice ib non serve piu': lo riutilizzo nel ciclo */ for (ib=ia; ib<a.length; ib++){ s[is] = a[ib]; is++;} else /* inserisci da b */ /*l'indice ia non serve piu': lo riutilizzo nel ciclo */ for (ia=ib; ia<b.length; ia++){ s[is] = b[ia]; is++;} /* ora la fusione è stata completata */ return s; 39

40 Esercizio q Affrontare nuovamente il seguente problema, ispirandosi all algoritmo di fusione calcola il numero di elementi comuni a due array ordinati in modo crescente A B

41 Esercizio q Implementare la fusione con rimozione di duplicati ciascuna delle sequenze iniziali non contiene duplicati a s b

42 Riferimenti al libro di testo q Per lo studio di questi argomenti si fa riferimento al libro di testo, e in particolare ai paragrafi dal 19.6 alla fine del capitolo 19 42

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

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

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

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P Problemi di Ricerca Carla Binucci e Walter Didimo Il problema della Ricerca In generale, il Problema della Ricerca è definito come segue: data una collezione C di elementi e una proprietà P, determinare

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

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 16. Array. A. Miola Gennaio

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 16. Array. A. Miola Gennaio Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 16 A. Miola Gennaio 2012 1 Contenuti q Il problema degli studenti da promuovere q q in Java q Uso di array dichiarazione di variabili

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 Elementi di Informatica. Iterazione. C. Limongelli. Iterazione

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione Corso di Laurea Ingegneria Elementi di Informatica C. Limongelli 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica esistenziale Verifica

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

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 E14 F. Gasparetti, C. Limongelli Maggio 2012 1 Verifica presenza di elementi comuni V1 - Date due liste di stringhe scrivere

Dettagli

Richiami di Fondamenti di Informatica - 1

Richiami di Fondamenti di Informatica - 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Richiami di Fondamenti di Informatica - 1 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Richiami di FdI-1

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 18 Maggio 2010 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 Alcune Soluzioni ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int[][] a = new int[n][n]; for (int i

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare

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

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E06 C. Limongelli Dicembre 2011 1 Contenuti q Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

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

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

Problemi di ricerca in insiemi ordinati

Problemi di ricerca in insiemi ordinati Problemi di ricerca in insiemi ordinati Abbiamo visto che, per trovare un elemento in un insieme ordinato, con l algoritmo della ricerca binaria restringiamo l intervallo della ricerca alla metà in ogni

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 05 Complessità C. Limongelli Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Complessita' 1 Contenuti!Costo computazionale

Dettagli

Capitolo 16 Iterazione

Capitolo 16 Iterazione Capitolo 16 Accesso a sequenze I problemi esaminati in questo capitolo hanno lo scopo di accedere ed elaborare delle sequenze sequenze immesse dall utente lette dalla tastiera di lunghezza nota con un

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 E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

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 E16 Esercizi Strutture Collegate e Oggetti C. Limongelli Maggio 2012 1 Contenuti q Verifiche universali ed esistenziali su strutture

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Ringraziamenti prof. Stefano Mizzaro, Università di Udine http://users.dimi.uniud.it/~stefano.mizzaro/

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

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

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Algoritmi su Array Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Algoritmi su Array 2 Ringraziamenti prof. Stefano Mizzaro,

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

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 Prova Intermedia Marzo 2011 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia La Prova Intermedia

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

Ricerca binaria. Corso di Algoritmi e Strutture Dati Esercitazione 4

Ricerca binaria. Corso di Algoritmi e Strutture Dati Esercitazione 4 Ricerca binaria Corso di Algoritmi e Strutture Dati Esercitazione Sommario Algoritmi di ricerca Ricerca lineare Ricerca binaria Manipolare array di oggetti Definizione del problema Dati:. Una sequenza

Dettagli

Esercizi su Array di Stringhe

Esercizi su Array di Stringhe Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 Esercizi su Array di Stringhe A. Miola Gennaio 2012 1 Problema su array di stringhe... q Dato un array di stringhe, verificare

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Curriculum SR (Sistemi e Reti) Algoritmi e Laboratorio a.a.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Curriculum SR (Sistemi e Reti) Algoritmi e Laboratorio a.a. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Curriculum SR (Sistemi e Reti) Algoritmi e Laboratorio a.a. 2009-10 Lezioni prof. Elio Giovannetti Lezione 7 Il problema della

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

Esercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli

Esercitazioni del Corso di Fondamenti di Informatica ARRAY. Prof. Giuseppe Manco. A cura di Ing. Andrea Tagarelli Esercitazioni del Corso di Fondamenti di Informatica ARRAY Prof. Giuseppe Manco A cura di Ing. Andrea Tagarelli ESERCIZIO 1 public static int[] elaboravettore (int[] v) che verifica che gli elementi di

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

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 E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Gli algoritmi di base sul tipo array: ordinamento e ricerca Claudio De Stefano - Corso di Fondamenti di Informatica 1 Algoritmi di ordinamento gli algoritmi si differenziano

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

Ricerca in una sequenza ordinata

Ricerca in una sequenza ordinata Ricerca su array ordinata Ricerca in una sequenza ordinata Se la sequenza è ordinata posso sfruttare l ordinamento per rendere più efficiente la ricerca, terminando se l elemento corrente risulta maggiore

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

Altri Esercizi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E17. C. Limongelli Maggio 2012

Altri Esercizi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E17. C. Limongelli Maggio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E17 C. Limongelli Maggio 2012 1 Contenuti q Definizione di classi con ereditarietà q Uso di tipi di dati astratti q Ricorsione

Dettagli

Esercizio 1: media di numeri reali (uso funzioni e struct)

Esercizio 1: media di numeri reali (uso funzioni e struct) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le

Dettagli

nel trasformare una sequenza di elementi

nel trasformare una sequenza di elementi Ordinamento Carla Binucci e Walter Didimo Il problema dell ordinamento In generale, il Problema dell ordinamento consiste nel trasformare una sequenza di elementi rendendola ordinata rispetto a un certo

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

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 15 Algoritmi su array: selection sort, insertion sort, fusione

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018 Esercitazioni di Fondamenti di Informatica - Lez. 30/10/018 Esercizi sulle funzioni in C I codici e le soluzioni degli esercizi sono nella cartella parte1 1. Scrivere i prototipi delle seguenti funzioni.

Dettagli

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73 Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe

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

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E07 C. Limongelli Dicembre 2011 1 Contenuti q Esercizi: Palindroma Anagramma Fibonacci 2 Palindroma q Scrivere un programma che

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

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

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 07/02/07 Nota Questi lucidi sono tratti

Dettagli

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi

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

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior

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 Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Dettagli

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Prof. Venturino Taggi accattatis@ing.uniroma2.it taggi@ing.uniroma2.it 2 Fondamenti di Informatica 2015/16 V.Taggi taggi@ing.uniroma2.it Algoritmi di

Dettagli

Java: esempi di programmazione

Java: esempi di programmazione Java: esempi di programmazione Problemi elementari di programmazione.................. 2354 a2» 2013.11.11 --- Copyright Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net Somma tra due

Dettagli

Iterazione (introduzione)

Iterazione (introduzione) Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

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 Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Civile Elementi di Informatica Esempi di Problemi Iterativi C. Limongelli Esempi di Problemi Iterativi 1 Contenuti Esercizi: Palindroma Anagramma Fibonacci Esempi di Problemi

Dettagli

Silvia Rossi. Algoritmi di Ricerca. Informatica. Lezione n. Parole chiave: Ricerca Lineare Ricerca Binaria. Corso di Laurea:

Silvia Rossi. Algoritmi di Ricerca. Informatica. Lezione n. Parole chiave: Ricerca Lineare Ricerca Binaria. Corso di Laurea: Silvia Rossi Algoritmi di Ricerca 22 Lezione n. Parole chiave: Ricerca Lineare Ricerca Binaria Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010

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 2010 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti Funzioni e domini definiti induttivamente

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Dati: Conclusioni >> Sommario Sommario Ricapitolazione Alcune

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

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012

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

Dettagli

Corso di Fondamenti di Informatica Algoritmi su array / 1

Corso di Fondamenti di Informatica Algoritmi su array / 1 Corso di Informatica Algoritmi su array / Anno Accademico 200/20 Francesco Tortorella Algoritmi su array Quando si usano gli array, si eseguono frequentemente alcune operazioni tipiche : inizializzazione

Dettagli

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE Prova di Algoritmi e s.d. (1o anno) 17 Settembre 2002 TESTO e RISPOSTE Esercizio 1 (punti 7 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali).

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Moltiplicazione veloce di interi

Moltiplicazione veloce di interi Moltiplicazione veloce di interi Ogni numero intero w di n cifre può essere scritto come 10 n/2 w s + w d w s indica il numero formato dalle n/2 cifre più significative di w w d denota il numero formato

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi

LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un

Dettagli

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E05 Definizione di classi A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di classi 1 Contenuti

Dettagli

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione. Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato

Dettagli

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica algoritmi notevoli Python algoritmi o ricerca (verificare la presenza di un valore in una sequenza) o o o ricerca sequenziale (sequenza non ordinata) ricerca sequenziale (sequenza ordinata) ricerca binaria

Dettagli

Altri Esercizi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2. Dispensa E09. C. Limongelli Marzo 2008

Altri Esercizi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2. Dispensa E09. C. Limongelli Marzo 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E09 Altri Esercizi C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Altri Esercizi 1 Contenuti!Definizione

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi

Dettagli

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017 Cominciamo con un esempio... Franco FRATTOLILLO Dipartimento di Ingegneria Università degli Studi del Sannio Corso di "Programmazione I" Corso di Laurea in Ingegneria Informatica / ExAT 1 Franco FRATTOLILLO

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Ordinamenti ricorsivi

Ordinamenti ricorsivi Ordinamenti ricorsivi Selection Sort ricorsivo Algoritmi di ordinamento I Il metodo del selection sort può essere facilmente realizzato in modo ricorsivo I si definisce una procedura che ordina (ricorsivamente)

Dettagli

Dall analisi alla codifica (2)

Dall analisi alla codifica (2) Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (2) Dall analisi alla codifica (2) 1 Contenuti Problemi di ingresso e uscita - esercizi Lunghezza di una

Dettagli

Introduzione al C. Proprietà degli elementi di un insieme. Claudio Ciccotelli

Introduzione al C. Proprietà degli elementi di un insieme. Claudio Ciccotelli Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Proprietà degli elementi di un insieme Claudio Ciccotelli Insiemi Un insieme è una collezione

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

Algoritmi di ordinamento e ricerca. Classe SelSort.java

Algoritmi di ordinamento e ricerca. Classe SelSort.java Classe SelSort.java public class SelSort Trova l elemento più piccolo nella porzione finale di un array. @param a l array da esplorare @param from la posizione iniziale dell intervallo @return la posizione

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli