JaVa ESeRCiZi
Scrivere un programma che legga un array di interi da tastiera, lo
ordini in senso crescente utilizzando l'algoritmo di ordinamento
per selezione, e lo stampi.
Soluzione
Scrivere un programma che legga un array di interi da tastiera, lo
ordini in senso crescente utilizzando l'algoritmo di ordinamento
per fusione (MergeSort), e lo stampi.
Soluzione
Realizzare un Tipo di Dato Astratto (TDA) che rappresenti una
pila di numeri interi, e un programma che usi questa pila
per leggere da tastiera un elenco di numeri e stamparli
in ordine inverso.
Soluzione
pila
Soluzione ordine inverso
Una terna pitagorica è formata da tre numeri naturali a, b, e c tali che
a*a + b*b = c*c. Parte 1:
Scrivere un programma che conti
il numero di terne pitagoriche tali che
1 <= a < b < c <= 100.
Parte 2:
Scrivere un programma che stampi le terne pitagoriche con
1 <= a < b < c <= 100
tali che a sia un numero primo.
Soluzione 1
Soluzione 2
Scrivere un programma che che legga da tastiera una cartella della tombola,
costituita da tre righe di cinque numeri tra 1 e 90; dopo l'inserimento della
cartella, l'utente fornisce uno alla volta i numeri estratti, o inserisce 0
per indicare la fine del gioco. Ad ogni numero estratto, il programma deve
controllare se sulla cartella è stato realizzato un terno, una quaterna, una
cinquina o una tombola, e in caso affermativo stampare un messaggio
corrispondente. Il messaggio deve essere stampato solo per la prima vincita di
ciascun tipo, ovvero per il primo terno, la prima quaterna ecc.
Suggerimento: si usi un array bidimensionale di interi per rappresentare la
cartella, e un array bidimensionale di boolean per tenere traccia di quali dei
numeri della cartella sono già usciti.
Soluzione
Scrivere un programma che realizzi un calendario perpetuo, ovvero calcoli
il giorno della settimana corrispondente a una certa data, sapendo che il
1 gennaio 1900 è stato un lunedì. Suggerimento: Calcolare il numero di giorni
trascorsi dal 1/01/1900 alla data richiesta, e valutare con l'operatore % il
resto della divisione per 7 di tale numero. Se il resto è 0, il giorno è lunedì,
se 1 è martedì e così via.
Soluzione
Il gioco della torre di Hanoi è costituito da una piattaforma con 3
pioli A, B e C. Sui pioli sono inseriti dei dischi forati di diverse
dimensioni. Il gioco consiste nello spostare tutti i dischi dal piolo A,
dove sono inseriti inizialmente, sul piolo C, osservando le seguenti regole:
* è possibile spostare un solo disco per volta
* si può spostare un disco solo se non ha altri dischi sopra di sé
* non è possibile inserire un disco al di sopra di un altro disco di
dimensioni più piccole.
Scrivere un programma che stampi la sequenza di passi necessaria per risolvere
il gioco. Suggerimento: l'ipotesi di induzione da usare è che l'algoritmo
sviluppato funzioni per spostare N-1 dischi, dove N è il numero totale dei
dischi nel gioco.
Soluzione
Soluzione grafica
Si realizzi un programma che legge da tastiera un elenco di voti, e alla fine
visualizzi un istogramma orizzontale in cui ciascuna barra è formata da tanti
asterischi ('*') quante sono le volte che il voto corrispondente è stato ottenuto,
come nel seguente esempio:
Voto 18: **
Voto 19: ***
......
Voto 30: *************
Soluzione
Soluzione grafica
Lo scopo di questo esempio è di illustrare i vantaggi del polimorfismo. Il programma è formato da una classe GraficoFunzione, in grado di visualizzare il grafico di una qualsiasi funzione di una variabile. La funzione viene specificata attraverso un oggetto della classe Funzione, a cui spetta il compito di calcolare il valore della y a partire dalla x. In realtà, il main passerà a GraficoFunzione un'istanza di una classe derivata da Funzione, in cui sarà opportunamente ridefinito il metodo di calcolo. In questo modo, la classe GraficoFunzione potrà visualizzare il grafico di una funzione diversa senza bisogno di modificare o ricompilare il suo codice. A titolo di esempio, sono fornite alcune funzioni "classiche", che il main, contenuto nella classe CreaGrafici crea e passa a GraficoFunzione.
Lo studente può estendere il programma, supportando nuove funzioni mediante la creazione delle classi opportune, e la modifica del main.
Questa classe rappresenta una generica funzione in grado di calcolare il valore della y a partire dal valore della x
Questa classe rappresenta oggetti in grado di visualizzare il grafico di una funzione
Questo programma crea i grafici di alcune funzioni, usando le classi precedenti
Questa classe descrive oggetti in grado di calcolare la funzione 'seno'
Definisce oggetti in grado di calcolare la funzione 'sinc'
Descrive oggetti in grado di calcolare il logaritmo

Siete tutti invitati a collaborare segnalandomi errori, inviando materiale, suggerimenti e tutto ciò che vi è stato utile per preparare e superare gli esami.
Il sito cresce ed è utile grazie a voi!