Conversione da base 10 a base X (Utilizzo della pila)

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Costruttori e Distruttori
Package Utilizzo classi.
Tipi di dato astratti Lista, Pila, Coda, Albero.
Strutture dati lineari
12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.
Programmazione Ingegneria TLC
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Alberi binari Definizione della struttura dati: struct tree { };
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
Scomposizione di stringhe
Soluzione Esercizio - Classe Vettore
Selezione (=scelta) con “if-else”
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
Programmazione in Java Claudia Raibulet
Prova di verifica Fondamenti Informatica 1 15 Febbraio 2008.
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.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Massimo Comun Divisore
11/11/2004Laboratorio di Programmazione - Luca Tesei1 Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di.
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
Esercizi su File.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Problema dei Contratti Telefonici
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso di Programmazione in Java – Esercizio n° 001
Diagramma di flusso del problema dello stipendio del rappresentante.
Alberi binari Definizione della struttura dati: struct tree { };
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Lezione n° 07 - Esercitazione
Esercizi.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Il ciclo while.  Permette di ripetere un blocco di istruzioni fino a quando non si verifica un determinato evento  Il ciclo while può essere realizzato.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
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.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
Liste di Interi Esercitazione. IntList Lista di interi Una lista è una disposizione ordinata di elementi ( non in modo crescente-descrescente, ma per.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Rappresentazioni a lunghezza fissa: problemi
Ese 1 e 3 (del 6 Aprile 2005). Primo Ese Si identifichino gli errori che il compilatore segnalerebbe per il seguente programma Tipi Legami tra dichiarazioni.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Rappresentazione dell'informazione
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
LIP: 15 Marzo 2005 Vettori di interi. Esercizio proposto Definire una classe VectorInt i cui oggetti sono vettori omogenei di interi ordinati in modo.
LIP: 18 Aprile 2008 Interfacce. Rappresentazione Lista val next vuota Lista vuota: any true Lista non vuota: any true 154 false 24 false.
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
Transcript della presentazione:

Conversione da base 10 a base X (Utilizzo della pila) Corso di Programmazione in Java – Esercizio n° 008 Esercizio n° 008 Conversione da base 10 a base X (Utilizzo della pila) Istituto Statale di Istruzione Superiore “F. Enriques”

IDEA: Utilizzare una pila dove memorizzare i resti. Corso di Programmazione in Java – Esercizio n° 008 Scrivere un programma che richiede un numero intero in base dieci ed una nuova base da 2 a 9 e che in seguito effettua la conversione del numero da notazione decimale ad una notazione espressa nella base specificata. La conversione si effettua con ripetute divisioni per la base in cui si sta convertendo il numero prendendo i resti delle divisioni in ordine inverso. Quindi i dati di input del nostro problema sono 2: il numero da convertire e la base di destinazione. IDEA: Utilizzare una pila dove memorizzare i resti. Per ottenere i dati nell’ordine corretto, basterà semplicemente svuotare la pila. Ricordatevi che dentro i vector, stack, queue, ecc.. non ci possono stare i tipi fondamentali, ma solamente le rispettive classi involucro. Istituto Statale di Istruzione Superiore “F. Enriques”

Come si effettua la conversione da base 10 a base X? Corso di Programmazione in Java – Esercizio n° 008 Come si effettua la conversione da base 10 a base X? Facciamo subito un esempio che vale più di 1000 parole… Voglio convertire il numero 135 da base decimale (base 10) a base binaria (base 2) Useremo la seguente convensione: 135 2 = 135 diviso 2 uguale a 62 resto 1 1 62 135 2 1 67 2 1 33 2 1 16 2 135 convertito in base 2 è uguale a: 10000111 8 2 4 2 2 2 1 2 1 Istituto Statale di Istruzione Superiore “F. Enriques”

Molto probabilmente avrete già capito come funziona il meccanismo… Corso di Programmazione in Java – Esercizio n° 008 Molto probabilmente avrete già capito come funziona il meccanismo… si prende il numero iniziale e si effettuano divisioni successive conservando ogni volta il resto che si ottiene… Una volta che il quoziente ottenuto è uguale a zero, il numero convertito si ottiene concatenando i resti prendendoli nel senso opposto in cui si sono ottenuti. Non a caso per questo esercizio vi si richiede di utilizzare come struttura dati di supporto una Pila!! Suggerimento: Utilizzate “import java.util.Stack” che contiene già implementata una Pila basate su un vettore per cui infischiandovene di come è implementata, potete direttamente istanziarla ed utilizzarne i metodi relativi, ovvero pop, push..ecc. Es.: import java.util.Stack … Stack MiaPila= new Stack( ); MiaPila.push(…qualcosa…); \\ Per inserire qualcosa in cima alla pila MiaPila.pop(…qualcosa…); \\ Per togliere qualcosa dalla cime della pila RICORDATEVI CHE DOVETE USARE LE CLASSI INVOLUCRO!!! Istituto Statale di Istruzione Superiore “F. Enriques”

public static String decToBasex(int n, int x) { String b= ""; Corso di Programmazione in Java – Esercizio n° 008 Innanzitutto facciamo un metodo che effettua la conversione utilizzando una pila. public static String decToBasex(int n, int x) { String b= ""; Stack S= new Stack(); do S.push(new Integer (n % x)); n = n / x; } while(n!=0); b= b + ((Integer) S.pop()).toString(); } while(!S.isEmpty()); return b; } Istituto Statale di Istruzione Superiore “F. Enriques”

public static void main(String[] args) { int numero=0, nuovabase=0; Corso di Programmazione in Java – Esercizio n° 008 public static void main(String[] args) { int numero=0, nuovabase=0; DataInputStream stream = new DataInputStream(System.in); String stringa,risultato; System.out.println("Inserisci il numero intero in base 10 da convertire..."); try { stringa= stream.readLine(); numero=Integer.valueOf(stringa); } catch(Exception e) System.out.println("Errore durante lettura del numero da convertire"); System.exit(0); … Istituto Statale di Istruzione Superiore “F. Enriques”

System.out.println("Inserisci la nuova base..."); try { Corso di Programmazione in Java – Esercizio n° 008 … System.out.println("Inserisci la nuova base..."); try { stringa= stream.readLine(); nuovabase=Integer.valueOf(stringa); } catch(Exception e) System.out.println("Errore durante lettura del numero da convertire"); System.exit(0); risultato = DecToBasex(numero,nuovabase); System.out.println("Il numero "+numero+ " in base "+nuovabase+“ è uguale a: "+risultato); }; Istituto Statale di Istruzione Superiore “F. Enriques”