RAPPRESENTAZIONE DDEI NUMERI NATURALI ==================================== Nei seguenti esercizi l'input viene inserito direttamente dalla linea di comando. Supponiamo che nella classe Program sia definito il metodo public static void main(String [] args) { ...... } Quando si esegue java Program arg0 arg1 ... argN gli argomenti arg0, arg1, ... , argN specificati sulle linea di comando vengono utilizzati per inizializzare l'array args nel seguente modo: args[0] = arg0, args[1] = arg1, ... , args[N] = argN Il valore di args.length e' N+1 (numero argomenti). Se non ci sono argomenti, args.length vale 0. Notare che args e' un array di String. Se un argomento va interpretato come un intero, occorre usare il metodo Integer.parseInt per convertire la stringa in intero. ---- Non e' necessario usare le classi di input/output del libro. Per la stampa si puo' usare il metodo standard System.out.println (analogo al metodo println della classe prog.io.ConsoleOutputManager). ESERCIZIO 1 =========== Si consideri il sistema di numerazione posizionale S3 in base 3 avente come cifre i tre simboli - , I , d i cui valori sono: val(-) = 0 val(I) = 1 val(d) = 2 Scrivere un programma S3ToInt che dato un numerale num di S3 come argomento della linea di comando stampa il valore di num. Per calcolare il valore di una cifra, usare l'istruzione switch. ESEMPI ------ java S3ToInt I-- 9 --- java S3ToInt dddd 80 --- java S3ToInt Id---dII- 11001 ESERCIZIO 2 =========== Scrivere un programma IntToS3 che, dato un intero n sulla linea di comando, stampa la sua rappresentazione nel sistema S3 dell'Esercizio 1. Si assume che n richieda al massimo MAX cifre, dove MAX e' un valore definito nel programma, ad esempio: final int MAX = 100; // massimo numero di cifre (e' una costante) NOTA: non occorre controllare che una assunzione sia rispettata dall'utente! - Dato che le cifre vengono determinate in ordine inverso rispetto all'ordine di stampa, devono essere memorizzate in un array di char. - Per determinare il simbolo corrispondente a un intero, usare l'istruzione switch. ESEMPI ------ java IntToS3 9 I-- --- java IntToS3 80 dddd --- java IntToS3 293527 IIddd-IddI-I ESERCIZIO 3 =========== Scrivere un programma NumToInt che dati un numerale num in base b e la base b come argomenti della linea di comando stampa il valore di num. Si assume che 1 < b <= 16 e che i numerali siano rappresentati nel modo usuale, usando come cifre un sottoinsieme dei simboli 0 1 2 3 4 5 6 7 8 9 A B C D E F ESEMPI ------ java NumToInt 1010 2 10 --- java NumToInt 12653 7 3419 ---- java NumToInt 1A23B 14 66301 --- java NumToInt 1C8F 16 7311 ESERCIZIO 4 =========== Scrivere un programma IntToB che, dati un numero n e la base b come argomenti della linea di comando, stampa la rappresentazione di n in base b. Si assume n>=0, 1