Problemi per la lezione del 25/11
- [Rettangoli, quadrati e aree] Scrivete un programma che chieda all'utente di inserire una sequenza di aree di figure geometriche
(le aree sono al massimo 100, tutte costituite da numeri interi, e terminate da 0). Dopo aver chiesto ciascuna area, il programma
chiede all'utente di inserire la misura del lato (che deve essere un divisore dell'area). A seconda dei casi, il programma creerà
un rettangolo o un quadrato.
Alla fine, verranno stampate le misure dei rettangoli e quadrati inseriti, nell'ordine in cui sono stati inseriti.
Ad esempio (le parti in grassetto sono inserite dall'utente):
Area: 15
Lato: 3
Area: 16
Lato: 4
Area: 17
Lato: 1
Area: 0
Rettangolo -- base = 3.0; altezza = 5.0
Quadrato -- lato = 4.0
Rettangolo -- base = 1.0; altezza = 17.0
Suggerimento: per questo esercizio, dovete sfruttare il polimorfismo e il predicato instanceof. - [Identità ciclica] Due stringhe v e w sullo stesso alfabeto sono dette ciclicamente equivalenti sse esistono due stringhe x,y tali che v=xy e w=yx. È facile vedere che questo definisce una relazione di equivalenza sul monoide libero, le cui classi si chiamano collane. Scrivete un programma che, lette due stringhe, determini se sono ciclicamente equivalenti oppure no.
- [Media, varianza e scarto quadratico medio] Scrivete un programma che, dopo aver letto una sequenza di numeri interi (al massimo 100, terminata dalla lettura di -1), ne determini e stampi la media, la varianza e lo scarto quadratico medio. La varianza è, per definizione, la media dei quadrati delle differenze fra i valori della sequenza e la media. Lo scarto quadratico medio è la radice quadrata della varianza (calcolabile mediante il metodo statico sqrt di Math).
- [Minimo, massimo, moda] Scrivete un programma che, dopo aver letto una sequenza di numeri interi (al massimo 100,
terminata dalla lettura di -1), determini e stampi il valore massimo, il valore minimo e la moda. La moda è il numero che compare
più frequentemente (in caso di parità, uno qualunque dei numeri che compaiono più frequentemente). Ad esempio, se la sequenza introdotta
fosse 3, 12, 7, 12, 7, 5, 2, 7, -1 il programma dovrebbe stampare 12 (massimo), 3 (minimo) e 7 (moda).
Suggerimento: per calcolare la moda conviene, per ciascun elemento del vettore dei numeri letti, determinare quante volte quell'elemento compaia nell'array, tenendo traccia della candidata moda e della sua frequenza.