Esercizio 1. Progettate la classe Frazione Il costruttore con un solo

Transcript

Esercizio 1. Progettate la classe Frazione Il costruttore con un solo
Informatica
Strutture dati
Laboratorio
Esercizio 1.
Progettate la classe Frazione
Il costruttore con un solo argomento restituisce la frazione il cui numeratore è x e denominatore 1,
il costruttore con argomenti x e y restituisce la frazione il cui numeratore è x e denominatore y, il
metodo piu() restituisce la somma tra due frazioni, per() il prodotto e così via.
Esercizio 2.
Progettate le classi ConsoleInputManager e ConsoleOutputManager.
Il metodo readSiNo() accetta solo uno dei caratteri Y, y, S, s, N, n e restituisce true se il carattere
introdotto è Y, y, S o s, false se il carattere inserito è N o n. In tutti gli altri casi, richiede all'utente
di reinserire il carattere. Tutti i metodi “read()” chiedono all'utente di inserire il dato
corrispondente al tipo indicato e restituiscono quel dato se l'input è corretto, chiedono invece di
introdurre nuovamente il dato se esso non è del tipo previsto; msg è un “messaggio” visualizzato
all'utente.
Brescia 1 dic 2011
Pag. 1/2
Prof. Cozzetto
Informatica
Strutture dati
Laboratorio
Esercizio 3.
Implementate in Java una pila (o stack) con un array di oggetti di tipo T (T è una classe
“generica”).
a è l'array i cui elementi sono di tipo T, MAX è la dimensione dell'array (costante) e n è il numero di
elementi contenuti nella pila in un certo momento (n<=MAX e n>=0). Il metodo pop() estrae un
elemento dalla pila eliminandolo dalla struttura, mentre top() restituisce la “cima” della pila ma
non elimina l'elemento. Il metodo isEmpty() restituisce true se la pila è vuota, false in caso
contrario, mentre isFull() restituisce true se la pila ha raggiunto il numero massimo di elementi,
false in caso contrario.
Esercizio 4.
Un insegnante prende nota su un foglio di carta degli studenti da interrogare in un certo periodo.
Per ogni giorno, vengono riportati i nomi degli studenti come nello schema seguente:
lun-03/11/2011: Rossi, Verdi, Gialli
mer-05/11/2011: Bruni
gio-06/11/2011: Bianchi, Ferrari, Rastelli, Guidi
lun-10/11/2011: Capperi, Terenzi
Accanto al nome, egli segnerà il voto. Progettate un applicativo Java che memorizzi le informazioni
e visualizzi giorno per giorno gli studenti da interrogare (col voto se esiste). Quale è la struttura dati
più adatta?
Esercizio 5.
In una università, i dati relativi agli esami, prima di essere resi “persistenti” su memoria di massa,
vengono temporaneamente memorizzati in memoria centrale. Per ogni studente vengono
memorizzati i dati anagrafici, la matricola e la data di nascita. Per ogni materia, il codice e la
denominazione. Di ogni esame, viene registrato il voto (in centesimi) e la data. Progettate un
programma Java che vi consenta di memorizzare queste informazioni e di ottenere la media
aritmetica dei voti di una certa materia (la denominazione) fornita in input.
Per esempio, se i dati da memorizzare fossero
Algebra: 88,74, 93, 82
Geometria: 60, 70, 89, 100, 86, 65, 64
Informatica: 78,99,65,67
e si richiedesse “Algebra”, la media aritmetica sarebbe di 78,33.
Brescia 1 dic 2011
Pag. 2/2
Prof. Cozzetto