Primi esercizi in Java

Qui trovi un insieme di esercizi che richiedono l'utilizzo delle istruzioni base del linguaggio Java.
Realizza la tua soluzione e poi confronta la tua soluzione con quella proposta dal professore.

Primi esercizi in Java

Esercizio 1: Hello world!

Realizzare un programma che sia in grado di mostrare a schermo la frase "Hello world".

Esercizio 2: Media tra tre numeri interi.

Realizzare un programma che sia in grado di calcolare la media tra le età di tre persone inserite dalla tastiera.

Esercizio 3: Area e Perimetro del rettangolo

Realizzare un programma che acquisisca da tastiera (standard input) il valore della base e dell'altezza di un rettangolo e mostri a schermo il valore dell'area e del perimetro.

Esercizio 4: Swap tra due valori

Realizzare un programma che acquisisca da tastiera (standard input) due valori interi e li memorizzi nelle variabili varA e varB. In seguito, scambiare il valore di tali variabili e stamparne a schermo il nuovo contenuto.

Esercizio 5: Che squadra tifi?

Realizzare un programma che acquisisca da tastiera (standard input):

  1. Il nome dell'utente; //ad esempio Alessio

  2. Il cognome dell'utente; // ad esempio Rossi

  3. La squadra di calcio tifata dall'utente. // ad esempio Inter

Infine, il programma deve mostrare a schermo la frase "Ciao Alessio Rossi! La tua squadra del cuore è: Inter".

Esercizio 6: La partita di calcio

Realizzare un programma che memorizzi in delle stringhe i seguenti elementi che l'utente deve poter inserire da tastiera:

  • Il nome della prima squadra;

  • Il nome della seconda squadra;

  • Il numero di goal segnati dalla prima squadra;

  • Il numero di goal segnati dalla seconda squadra.

Il programma in output mostrerà:

  • La squadra vincente o il pareggio;

  • Il numero di goal totali segnati nella partita.

(Suggerimento: il casting da String a int si fa Integer.valueOf("stringa").intValue(); ).

Esercizio 7: Le app del Prof Store

Realizzare un programma che acquisisca da tastiera (standard input) 10 valori numerici interi e li elabori in base alle seguenti indicazioni.

1) Ciascuno dei valori rappresenta il numero di download relativi ad un'applicazione presente nel famoso Prof Store.

2) A seconda del numero di download, un’applicazione viene associata ad una delle seguenti categorie:

  • Categoria Gold: numero di download superiori a 2 milioni;

  • Categoria Silver: numero di download compresi tra 500 mila e 2 milioni;

  • Categoria Bronze: numero di download inferiori a 500 mila.

3) Il programma deve visualizzare sullo schermo (standard output) il numero di applicazioni appartenenti a ciascuna delle tre categorie.

Esercizio 8: 10km for fun

Bob decide di gareggiare per la «10km for fun», gara che si tiene a Roma nel mese di novembre. In vista della gara decide di cronometrarsi durante gli allenamenti del mese di ottobre e registrare quanto tempo impiega a percorrere 10km. Si realizzi un programma che permetta a Bob di inserire i tempi registrati in un mese (indicato in minuti) e che indichi quale sia il tempo migliore ed il peggiore che si sono ottenuti durante questi allenamenti.

Esercizio 9: Meteorologi si diventa!

All'interno della seguente pagina web sono riportati i dati delle temperature minime mensili riferite agli ultimi 30 anni, basate sui dati della stazione di Roma-Ciampino.

Realizzare un'applicazione che memorizzi in un vettore di stringhe i valori delle temperature minime riportate nella pagina web. Infine, il programma deve mostrare a schermo la media di tali 12 temperature.

Esercizio 10: Il torneo di freccette

Il signor Rossi, organizzatore del torneo di tiro al bersaglio di Roma, vuole analizzare le statistiche relative al numero di volte in cui un giocatore ha centrato il bersaglio (quello rosso da 50 punti).

Si realizzi un'applicazione che memorizzi in un vettore di Stringhe chiamato "centri" i nomi dei giocatori e numero di volte in cui hanno centrato il bersaglio. Il programma deve poter indicare il nome del giocatore che ha effettuato il numero maggiori di centri.

Il vettore deve contenere nelle posizioni pari il nome del giocatore e nelle posizioni dispari il numero di centri.

Esempio: Tre giocatori --> Giuseppe 7 centri, Alessio 5 centri, Claudio 10 centri.
In output mostrare una frase come: "Claudio ha centrato 10 volte il bersaglio ed è stato il migliore".
Il vettore contiene le seguenti stringhe in quest'ordine:

Esercizio 11: Il Bonus informatico

Il professor Bianchi decide di stanziare un fondo di 1000 euro per una borsa di studio destinata agli studenti della scuola che riusciranno a prendere 10 in pagella a fine anno nella materia informatica. La somma di 1000€ viene ripartita in maniera equa tra tutti gli studenti.

Si realizzi un programma che:

  • Prende in input il numero di studenti che hanno preso 10 in pagella ad informatica;

  • Effettui la divisione dei 1000€ per il numero di studenti all'interno di un blocco try;

  • Catturi l'eventuale eccezione di tipo ArithmeticException all'interno del blocco catch; In caso di cattura dell'eccezione il programma deve mostrare a schermo la scritta "Impossibile dividere per zero" e terminare il programma con l'istruzione return.

Testare il comportamento del programma nel caso in cui ci siano 0 alunni che hanno preso 10 ad informatica:

  1. usando solamente variabili, costanti e valori interi;

  2. usando solamente variabili, costanti e valori double.

Esercizio 12: Passione per i numeri Random

Realizzare i seguenti programmi:

  1. Memorizzare 2 numeri interi random compresi nell'intervallo [0, 99]. Visualizzarli a schermo ed indicare quale numero è il più piccolo.

  2. Memorizzare in un vettore di double 5 numeri random reali compresi nell'intervallo [0, 1) e calcolarne la media.

  3. Memorizzare in un vettore 10 valori interi random compresi nell'intervallo [6, 10].Mostrare a schermo il contenuto del vettore.

  4. Memorizzare in un vettore 10 valori double random compresi nell'intervallo [0, 100). Mostrare a schermo il contenuto del vettore.

  5. Memorizzare in un vettore di 5 valori double random compresi nell'intervallo [5, 10). Mostrare a schermo la mediana del vettore.

Esercizio 13: Matrice di zeri 3x3

Si realizzi un programma in grado di dichiarare una matrice 3x3 contenente tutti valori uguali 0. Infine stampare la matrice a schermo. L'output deve essere come il seguente:

La matrice contiene:
0 0 0
0 0 0
0 0 0

Esercizio 14: Matrice delle tabelline

Si realizzi un programma in grado di dichiarare una matrice 10x10 contenente in ogni riga una tabellina. L'inizializzazione della matrice dovrà produrre in output la seguente matrice.

La matrice delle tabelline contiene:

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

4 8 12 16 20 24 28 32 36 40

5 10 15 20 25 30 35 40 45 50

6 12 18 24 30 36 42 48 54 60

7 14 21 28 35 42 49 56 63 70

8 16 24 32 40 48 56 64 72 80

9 18 27 36 45 54 63 72 81 90

10 20 30 40 50 60 70 80 90 100

Per attuare tale tipo di stampa puoi usare il metodo printf applicato a System.out. Ad esempio con l'istruzione:
System.out.printf ("%4d", numero);
indipendentemente da quante cifre abbia il valore contenuto nella variabile numero, tale valore occuperà 4 caratteri nella stampa.

Esercizio 15: Matrici che passione

Si realizzi un programma in grado di inizializzare con dei valori inseriti da tastiera una matrice di int grande 3x3. Per tale matrice:

  1. Mostrare a schermo i valori contenuti nella matrice;

  2. Per ogni riga della matrice indicare quale è il risultato della somma dei valori contenuti in essa;

  3. Per ogni colonna della matrice indicare quale è il risultato della somma dei valori contenuti in essa;

  4. Trovare la sua matrice trasposta e memorizzarla in una nuova matrice 3x3 chiamata "trasposta".

Nota bene: la matrice trasposta è una matrice avente le stesse dimensioni, ma con righe e colonne scambiate tra loro.

Un esempio di output del programma dopo aver assegnato i valori alla matrice.
Matrice Inserita:
1 2 3
4 5 6
7 8 9

La somma delle righe della matrice:
Somma riga 0: 6
Somma riga 1: 15
Somma riga 2: 24

La somma delle colonne della matrice:
Somma colonna 0: 12
Somma colonna 1: 15
Somma colonna 2: 18

Matrice trasposta:
1 4 7
2 5 8
3 6 9

Esercizio 16: Matrice diagonale

Si realizzi un programma in grado di inizializzare una matrice 4 x 4 con i valori che rappresentano la matrice identità. La matrice identità ha valori pari a 1 nella diagonale principale della matrice e 0 in tutti gli altri valori. Realizzare l'assegnazione di tali valori senza usare il metodo di assegnazione con le parentesi graffe. Infine, stampare a schermo tale matrice.

Si riporta di seguito l'output del programma atteso.

La matrice diagonale è la seguente:

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Esercizio 17: Squadre in ordine di goal

Si realizzi un programma in grado di inizializzare una matrice di interi 4 x 5 chiamata goal. Ogni riga della matrice rappresenta i goal fatti da una determinata squadra di calcetto. Ipotizzando che le quattro squadre di calcetto siano Roma, Lazio, Inter e Juve:

  • Calcolare il numero complessivo di goal fatti da ogni squadra;

  • Mostrare a schermo i nomi delle squadre in ordine decrescente per numero di goal fatti.

Si riporta di seguito l'output del programma atteso.

La matrice dei goal è:
Roma 0 3 4 20 34
Lazio 0 5 3 21 31
Inter 1 4 3 32 26
Juve 1 2 4 30 27

Le squadre ordinate in base ai goal fatti sono:
Inter
Juve
Roma
Lazio

Esercizio 18: Realizzare copie di array

Si realizzi un programma in grado di inizializzare il vettore numeri di interi grande 5. Il programma deve poter:

  • Far inserire 5 elementi all'utente dalla tastiera all'interno degli elementi del vettore numeri;

  • Creare il vettore copiaNumeri di interi grande 5;

  • Effettuare la copia del vettore numeri all'interno del vettore copiaNumeri;

  • Ordinare il vettore copiaNumeri;

  • Stampare a schermo i vettori numeri e copiaNumeri.

Attenzione a come copi gli elementi del vettore numeri all'interno del vettore copiaNumeri. Prova le seguenti modalità ed analizza l'output ottenuto:

  • Assegnare il vettore numeri al vettore copiaNumeri --> copiaNumeri = numeri; // questa istruzione indica che il programmatore potrà accedere ai valori del vettore numeri anche tramite l'identificatore copiaNumeri

  • Realizzare un ciclo for che copia ogni singolo valore del vettore numeri all'interno delle singole celle di copiaNumeri. In tal caso in memoria si avranno due aree di memoria diverse indicate dai due identificatori numeri e copiaNumeri.