1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)

Slides:



Advertisements
Presentazioni simili
INFORMATICA Algoritmi fondamentali
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Unità G3 Algoritmi notevoli. Ordinamento Un insieme di dati {a0, a1, a2, …, an} si dice ordinato in ordine crescente se a0 a1 a2 a3 … an I dati sono generalmente.
Algoritmi notevoli.
Algoritmi notevoli In linguaggio C.
Esercitazione Frame. Argomento Realizzazione di un tipo di dato astratto Usare le eccezioni per segnalare situazioni particolari Invariante e funzione.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Il Problema dellordinamento.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci
Laboratorio Matematica e Informatica
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Programmazione in Java (3)
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
Esercizio 4 Data una stringa P di lunghezza m e definita sullalfabeto, scrivere un programma PERL per calcolare la seguente funzione: PREFIX_FUNCTION:
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Esercitazione 3 (5 dicembre 2008)
Astrazioni sul controllo Iteratori. 2 Nuove iterazioni Definendo un nuovo tipo come collezione di oggetti (p. es., set) si vorrebbe disporre anche di.
CORSO DI PROGRAMMAZIONE II
e array a più dimensioni
Scomposizione di stringhe
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Selezione (=scelta) con “if-else”
Politecnico di Milano Esercizi Stringhe Ricerca binaria.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Esercizi C su array e matrici
Programmazione in Java Claudia Raibulet
Elementi di Informatica di base
Problema dell’ordinamento di un array: Il metodo Bubble Sort.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Diagramma di flusso del problema del Supermercato.
Corso di informatica Athena – Periti Informatici
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ESERCIZI.
Corso di Programmazione in Java – Esercizio n° 001
1 Applet ed HTML Fondamenti di Informatica Corso D.
Esercizi.
Esercitazione Ereditarietà Polimorfismo. Entita’ Geometrica PuntoCerchioPoligono TriangoloQuadrilatero Rettangolo Quadrato.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
AlgoLab - Pile e Code Pile e code Laboratorio di Algoritmi 02/03 Prof. Ugo de’ Liguoro.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Gestione dei thread in Java
Programmazione in Java
Public class SimpleHash { //DICHIARAZIONE DELLE VARIABILI DI ISTANZA //tabella hash private int[] table; //dimensione della tabella (meglio se numero primo)
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Esercitazione sull’ ordinamento 20 maggio 2003
LIP: 15 Marzo 2005 Vettori di interi. Esercizio proposto Definire una classe VectorInt i cui oggetti sono vettori omogenei di interi ordinati in modo.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
6/11/01Ordinamento 1 Un esempio di algoritmi: ordinamento.
1 MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche classe 4° INDUSTRIALE INFORMATICA Focus on.
Transcript della presentazione:

1 Corso di Informatica (Programmazione) Esercitazione 2 (3 dicembre 2008)

2 Esercizi sugli array Esercizio 1 dato un array A di N interi verificare se gli elementi sono in ordine crescente Esempio1 (N=10) Risultato gli elementi di A sono in ordine crescente A

3 Esercizi sugli array Esempio2 (N=10) Risultato gli elementi di A NON sono in ordine crescente A

4 Esercizi sugli array Algoritmo: uso una variabile di tipo boolean che chiamo ad esempio isCrescent che, alla fine, deve contenere il valore true se A è crescente e il false se A non è crescente. Parto dal presupposto che A sia crescente e quindi inizializzo isCrescent a true. Poi esamino uno alla volta gli elementi di A dal primo (in posizione 0) al penultimo (in posizione N-2). Se per una posizione i esaminata...

5 Esercizi sugli array … trovo che A[i] >= A[i+1] (tra lelemento in posizione i e il successivo), allora posso dire con certezza senza bisogno di proseguire che A non è crescente. A questo punto assegno il valore false alla variabile isCrescent e interrompo la scansione di A. Quindi al termine della scansione…

6 Esercizi sugli array … di A, mi basta testare il contenuto di isCrescent per dire se A è crescente o non lo è. Se infatti isCrescent è rimasto a true significa che non cè nessuna posizione i tale che A[i] >= A[i+1] e quindi A è crescente.

7 Esercizi sugli array A Esecuzione dellalgoritmo per larray A di 10 interi dellesempio1 precedente: - allinizio ho isCrescent=true - step 1 i=0 (i è lindice che scandisce gli elementi di A) A[0] >= A[1]? NO! Quindi vado avanti

8 Esercizi sugli array A - step 2 i=1 A[1] >= A[2]? NO! Quindi vado avanti A - step 3 i=2 A[2] >= A[3]? NO! Quindi vado avanti

9 Esercizi sugli array A - step 4 i=3 A[3] >= A[4]? NO! Quindi vado avanti A - step 5 i=4 A[4] >= A[5]? NO! Quindi vado avanti

10 Esercizi sugli array A - step 6 i=5 A[5] >= A[6]? NO! Quindi vado avanti A - step 7 i=6 A[6] >= A[7]? NO! Quindi vado avanti

11 Esercizi sugli array A - step 8 i=7 A[7] >= A[8]? NO! Quindi vado avanti A - step 9 i=8 A[8] >= A[9]? NO! Sono arrivato al penultimo e…

12 Esercizi sugli array … la variabile isCrescent è rimasta a true A è crescente. A Esecuzione dellalgoritmo per larray A di 10 interi dellesempio2 precedente: - allinizio ho isCrescent=true - step 1 i=0 (i è lindice che scandisce gli elementi di A) A[0] >= A[1]? NO! Quindi vado avanti

13 Esercizi sugli array A - step 2 i=1 A[1] >= A[2]? NO! Quindi vado avanti A - step 3 i=2 A[2] >= A[3]? NO! Quindi vado avanti

14 Esercizi sugli array A - step 4 i=3 A[3] >= A[4]? SI! Quindi assegno il valore false a isCrescent e interrompo la scansione. Dal momento che il valore finale di isCrescent è false, A è NON crescente Per verificare che un vettore è decrescente il discorso è analogo!

15 Esercizi sugli array public class VerificaVettoreCrescente { public static void main(String arg[]) { int[] A={4,15,20,21,40,6,7,9,10,1}; int i; int length; boolean isCrescent; length=10; i=0; isCrescent=true; while(i <= lentgth-2 && isCrescent == true){ //Verifico se lelemento i-esimo //è >= dellelemento (i+1)-esimo if(A[i] >= A[i+1]){ isCrescent=false; } i=i+1; } System.out.println(Vettore crescente: +isCrescent); }

16 Esercizi sugli array public class VerificaVettoreDecrescente { public static void main(String arg[]) { int[] A={4,15,20,21,40,6,7,9,10,1}; int i; int length; boolean isDecrescent; length=10; i=0; isDecrescent=true; while(i <= lentgth-2 && isDecrescent == true){ //Verifico se lelemento i-esimo //è <= dellelemento (i+1)-esimo if(A[i] <= A[i+1]){ isDecrescent=false; } i=i+1; } System.out.println(Vettore decrescente: +isDecrescent); }

17 Esercizi sugli array NOTA BENE: il confronto A[i] >= A[i+1] nel costrutto IF viene utilizzato per verificare che un array sia STRETTAMENTE crescente (cioè un array in cui compaiono due elementi consecutivi uguali non è considerato STRETTAMENTE crescente). Se invece si vuole verificare che un array sia crescente non in senso stretto, allora il confronto da testare in IF è A[i] > A[i+1].

18 Esercizi sugli array … Il discorso è analogo per testare che un array sia STRETTAMENTE descrescente (A[i] <= A[i+1]) o non STRETTAMENTE descrescente (A[i] < A{i+1])