Wrapper

Scrivi la classe PariDispariWrapper che valuta il valore intero passato come primo argomento da linea di comando e, se il valore è pari stampa “PARI”, altrimenti stampa “DISPARI”. Nel caso che il valore passato non sia intero è necessario gestire l’eventuale errore in maniera appropriata. Qualche esempio:

$ java PariDispariWrapper 3
DISPARI
$ java PariDispariWrapper 6
PARI
$ java PariDispariWrapper 8
PARI

Se non vengono passati argomenti il programma termina:

$ java PariDispariWrapper
$

Se vengono passati argomenti non appropriati:

$ java PariDispariWrapper "Testo"
ERRORE: il valore Testo non è accettabile
$ java PariDispariWrapper 5.3
ERRORE: il valore 5.3 non è accettabile

SumArgs wrapper Livello 6

Scrivi la classe SumArgs che stampa a terminale la somma dei due valori interi passati come argomenti da linea di comando. Se i valori passati non sono interi, è necessario gestire l’eventuale errore in maniera appropriata. Esempio:

$ java SumArgs 1 5
1 + 5 = 6

Se l’utente non inserisce uno o entrambi gli argomenti, i valori omessi vengono considerati come 0 nel calcolo della somma. Ad esempio:

$ java SumArgs 2
2 + 0 = 2

Oppure:

$ java SumArgs
0 + 0 = 0

Se vengono passati argomenti non appropriati:

$ java SumArgs 3 Cinque
ERRORE: uno o più valori passati non sono accettabili
$ java SumArgs Due 5.4
ERRORE: uno o più valori passati non sono accettabili

Dec2Hex wrapper Livello 6

Scrivi la classe Dec2Hex che converte in esadecimale il valore passato come argomento da linea di comando. Nel caso che il valore passato non sia un valore decimale è necessario gestire l’eventuale errore in maniera appropriata. Esempio:

$ java Dec2Hex 10
a
$ java Dec2Hex 255
ff

Se non vengono passati argomenti il programma termina:

$ java Dec2Hex
$

Se vengono passati argomenti non appropriati:

$ java Dec2Hex "Cento"
ERRORE: il valore Cento non è un valore decimale
$ java Dec2Hex 5.3
ERRORE: il valore 5.3 non è un valore decimale

Hex2Dec wrapper Livello 6

Scrivi la classe Hex2Dec che converte in decimale il valore passato come argomento da linea di comando in formato esadecimale. Nel caso che il valore passato non sia adeguato è necessario gestire l’eventuale errore in maniera appropriata. Esempio:

$ java Hex2Dec A
10
$ java Hex2Dec FF
255
$ java Hex2Dec 10
16

Se non vengono passati argomenti il programma termina:

$ java Hex2Dec
$

Se vengono passati argomenti non appropriati:

$ java Hex2Dec "EffeEffe"
ERRORE: il valore EffeEffe non è accettabile
$ java Hex2Dec 5.3
ERRORE: il valore 5.3 non è accettabile

Scrivi la classe SumArgsHex che stampa a terminale la somma dei due valori interi passati come argomenti da linea di comando in formato esadecimale. Nel caso che i valori passati non siano valori interi è necessario gestire l’eventuale errore in maniera appropriata. Esempio:

$ java SumArgsHex 5 5
5 + 5 = a
$ java SumArgsHex A 5
a + 5 = f
$ java SumArgsHex FF FF
ff + ff = 1fe

Se vengono passati argomenti non appropriati:

$ java SumArgsHex FF "Cinque"
ERRORE: uno o più valori passati non sono accettabili
$ java SumArgsHex 5.3 FF
ERRORE: uno o più valori passati non sono accettabili

Scrivi il programma Arrotondatore che calcola il valore del primo argomento arrotondato al multiplo più vicino del secondo argomento:

java Arrotondatore 1.2781 0.3
1.2	

java Arrotondatore 24 5
25.0

java Arrotondatore 1.2781 0.1
1.3

Scrivi il programma CalcolatoreMedia che calcola la media di tutte le note valide passate come argomenti da linea di comando (scarta quelle non valide) e la stampa arrotondandola al decimo di punto più vicino.

java CalcolatoreMedia 1.72 4.21 5 -2 cane 6

Nota 1:     1.72
Nota 2:     4.21
Nota 3:     5.0
Nota 4:     6.0
----------------
Media:      4.2   

Opzione: Stampare anche gli elementi scartati separati da virgole (','). Esempio:

java CalcolatoreMedia 1.72 4.21 5 -2 cane 6

Nota 1:     1.72
Nota 2:     4.21
Nota 3:     5.0
Nota 4:     6.0
----------------
Media:      4.2   

Argomenti scartati: -2, cane

Scrivi il programma Java ConvertitoreNota che converte la nota ([1.0;6.0]) passata come primo argomento, in un voto espresso tramite una lettera (A, B, C, …). La deve avvenire conversione secondo i criteri seguenti:

  • per note maggiori o uguali a 1 il voto è E
  • se la nota è maggiore o uguale a 2.5 il voto è D
  • se la nota è maggiore o uguale a 3.5 il voto è C
  • se la nota è maggiore o uguale a 4.5 il voto è B
  • se la nota è maggiore o uguale a 5.5 il voto è A

Scrivi il programma BinSum che chiede all’utente di inserire due valori interi espressi in notazione esadecimale e poi ne stampa la somma in base 2. I valori binari devono essere stampati a 32 bit.

Esempio:

>java BinSum
Inserire primo addendo (in esadecimale): AA
Inserire secondo addendo (in esadecimale): 5

00000000000000000000000010101010
00000000000000000000000000000101 +
--------------------------------
00000000000000000000000010101111

Oppure:

>java BinSum
Inserire primo addendo (in esadecimale): 1
Inserire secondo addendo (in esadecimale): -1

00000000000000000000000000000001
11111111111111111111111111111111 +
--------------------------------
00000000000000000000000000000000

Scrivi il programma HexSum che chiede all’utente di inserire due valori interi espressi in notazione esadecimale e poi ne stampa (sempre in base 16) il risultato della somma.

Qualche esempio:

>java HexSum
Inserire primo addendo (in esadecimale): 9
Inserire secondo addendo (in esadecimale): 1

       9
       1 +
--------
       A
>java HexSum
Inserire primo addendo (in esadecimale): AA55
Inserire secondo addendo (in esadecimale): 55AA

    AA55
    55AA +
--------
    FFFF

Devi aiutare il fattore John a catturare la sua gallina. Il fattore e la gallina si trovano in un campo di 3 righe e tre colonne. La cella in alto a sinistra si trova alla riga 0 e alla colonna 0:

👷🍃🍃
🍃🍃🍃
🍃🍃🍃

La cella in basso a sinistra si trova alla riga 2 e alla colonna 0:

🍃🍃🍃
🍃🍃🍃
👷🍃🍃

La cella in basso a destra si trova alla riga 2 e alla colonna 2:

🍃🍃🍃
🍃🍃🍃
🍃🍃👷

Il tuo programma riceve 4 numeri interi come argomenti da linea di comando, nell’ordine:

  • la coordinata della riga in cui si trova il fattore
  • la coordinata della colonna in cui si trova il fattore
  • la coordinata della riga in cui si trova la gallina
  • la coordinata della colonna in cui si trova la gallina

Il tuo programma deve stampare la direzione in cui il fattore si deve spostare per prendere la gallina:

  • "N": NORD, il fattore si sposta verso l’alto
  • "S": SUD, il fattore si sposta verso il basso
  • "W": WEST, il fattore si sposta verso sinistra
  • "E": EAST, il fattore si sposta verso destra

Esempio

Se gli argomenti forniti sono [1,1,0,1] significa che il fattore si trova al centro del campo (riga 1, colonna 1) e la gallina si trova nella riga in alto (0) e nella colonna centrale (1):

🍃🐔🍃
🍃👷🍃
🍃🍃🍃

La gallina si trova sopra al fattore, per catturarla il fattore dovrà spostarsi verso NORD, quindi il tuo programma deve stampare "N".

Scrivi il programma Istogramma che stampa un grafico a colonne rappresentando una colonna per ogni nota scolastica passata come argomento:

java Istogramma 1.5 4 3.2 6

6           *
5.5         *
5           *
4.5         *
4       *   *
3.5     *   *
3       * * *
2.5     * * *
2       * * *
1.5   * * * * 
1     * * * *

Scrivi la classe MediaMista che accetta delle note scolastiche e/o dei giudizi e poi ne calcola la media. Il programma deve:

  • accettare note scolastiche [1.0;6.0].
  • accettare valutazioni MI (2), I (3), S (4), B (5), MB (6).
  • scartare le note/valutazioni non accettabili.

Scrivi il programma Hex2Float che chiede all’utente di introdurre un valore esadecimale e lo converte in un numero a virgola mobile a precisione singola (float).

Il programma stampa i 32 bit del valore inserito e il corrispondente valore secondo il formato IEEE754. Qualche esempio:

>java Hex2Float
Introdurre un valore esadecimale (32bit): 3fc00000
00111111110000000000000000000000 -> 1,50000
>java Hex2Float
Introdurre un valore esadecimale (32bit): -7F000001
10000000111111111111111111111111 -> -2,35099e-38
>java Hex2Float
Introdurre un valore esadecimale (32bit): bf800000
10111111100000000000000000000000 -> -1,00000
>java Hex2Float
Introdurre un valore esadecimale (32bit): FFFFFFFF
11111111111111111111111111111111 -> NaN

Puoi verificare la bontà dei risultati ottenuti confrontandoli con quelli prodotti da un convertitore IEEE754.

Scrivi il programma Java ElevazioneAPotenza che calcola l’elevazione a potenza del valore intero passato come primo argomento per il secondo argomento intero.

Esempio:

> java ElevazioneAPotenza 2 3 
2 ^ 3 = 8