La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Esercizio n° 008 Conversione da base 10 a base X (Utilizzo della pila) Corso di Programmazione in Java – Esercizio n° 008 Istituto Statale di Istruzione."— Transcript della presentazione:

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

2 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 nellordine 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 Corso di Programmazione in Java – Esercizio n° 008

3 Istituto Statale di Istruzione Superiore F. Enriques 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 diviso 2 uguale a 62 resto convertito in base 2 è uguale a:

4 Corso di Programmazione in Java – Esercizio n° 008 Istituto Statale di Istruzione Superiore F. Enriques 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!!!

5 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); do { b= b + ((Integer) S.pop()).toString(); } while(!S.isEmpty()); return b; } Istituto Statale di Istruzione Superiore F. Enriques Corso di Programmazione in Java – Esercizio n° 008

6 Istituto Statale di Istruzione Superiore F. Enriques 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); } …

7 Corso di Programmazione in Java – Esercizio n° 008 Istituto Statale di Istruzione Superiore F. Enriques … 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); };


Scaricare ppt "Esercizio n° 008 Conversione da base 10 a base X (Utilizzo della pila) Corso di Programmazione in Java – Esercizio n° 008 Istituto Statale di Istruzione."

Presentazioni simili


Annunci Google