Paola Magillo, Univestita' di Genova,
Corso di Programmazione II per SMID, a.a. 2004-2005.
Laboratorio 02:
CRIVELLO DI ERATOSTENE E VARIANTI
Vedere l'ultima parte della lezione 4 per
l'algoritmo del Crivello di Eratostene in Java.
Partire dalla versione che genera i numeri primi e li stampa
(senza raccoglierli in una lista).
Scrivere le seguenti varianti:
-
Generare tutti i numeri primi minori di k con k dato come
parametro su command-line.
IN PRATICA:
Bisogna aggiungere la lettura del parametro da command-line.
-
Scrivere un programma che controlla se un numero
assegnato e' primo oppure no.
IN PRATICA:
Sia n il numero da controllare (per es. dato come parametro da linea
di comando).
E' sufficiente provare a generare tutti i numeri
primi minori di n+1. Se a un certo punto si scopre che n e' primo,
allora si termina e si risponde "si".
Altrimenti si risponde "no".
CLASSI ED EREDITARIETA'
Scrivere una classe Point che descrive un punto nel piano (quindi una
coppia di coordinate x,y).
Definire, testandoli via via, i seguenti costruttori e metodi:
- costruttore senza argomenti che costruisce il punto "origine"
- costruttore che costruisce un punto date le due coordinate
- costruttore che fa la copia di un altro punto
- metodo che trasla il punto di una certa distanza sulla x
- metodo che trasla il punto di una certa distanza sulla y
- metodo che calcola la distanza del punto dall'origine
- metodo che stabilisce se un punto e' uguale, come coordinate,
a un altro punto
Scrivere una classe OrientedPoint, sotto-classe di Point,
che descrive un punto orientato.
Un punto orientato ha in piu' una direzione fra
NORTH, SOUTH, EAST e WEST.
Supponiamo inoltre che esista una "direzione di default" definita
come variabile di classe (scegliere una delle quattro a piacere).
Definire, testandoli via via, i seguenti costruttori e metodi:
- costruttore senza argomenti che costruisce il punto origine
orientato secondo la direzione di default
- costruttore che costruisce un punto orientato date le due coordinate,
assegnandogli la direzione di default
- costruttore che costruisce un punto orientato date le due coordinate e
la direzione
- costruttore che fa la copia di un altro punto orientato
- metodo che sposta un punto orientato di una certa distanza nella
direzione corrente
- metodo che "gira" un punto orientato in senso orario
- metodo che cambia la direzione di default
- metodo che stabilisce se un punto orientato e' uguale, come coordinate
e direzione, a un altro punto orientato