Cognome___________________ Nome ____________________ Matricola____________________
Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica.
Esame di Fondamenti di Informatica II (N.O.) e V.O (prova pratica di programmazione)
12-settembre-2002
Testo dell’esercizio
Un punto di uno spazio n-dimensionale è un vettore di numeri double con n coordinate. Ad esempio, p=(1.4, -11) è un punto di uno spazio 2-dimensionale e p=(-2, 3.5, 43.1) è un punto di uno spazio 3-dimensionale. In generale, se p è un punto dello spazio n-dimensionale, indichiamo p al modo: p=(p1, p2, ... , pn).
Un operatore tra punti è un oggetto capace di memorizzare due punti p e q di uno spazio n- dimensionale e di eseguire alcune semplici operazioni tra tali punti. Sia data la seguente interfaccia Java, che descrive i metodi di un generico operatore tra punti:
public interface OperatoreTraPunti {
/* Stampa il punto r somma dei due punti memorizzati p e q, */
/* cioè r = (r1,r2,...,rn) = (p1+q1,p2+q2,...,pn+qn) public void somma ();
/* Stampa il prodotto scalare r dei due punti memorizzati p e q, */
/* cioè r = p1*q1 + p2*q2 + ... + pn*qn public void prodotto ();
/* Stampa i due punti memorizzati */
public void stampa ();
}
Si chiede di:
1. Definire le due seguenti classi, che definiscono rispettivamente operatori tra punti 2- dimensionali e 3-dimensionali.
public class OperatoreTraPunti2D implements OperatoreTraPunti { /* variabili di istanza */
double p1,q1; // prima coordinata double p2,q2; // seconda coordinata /* metodi */
...
}
public class OperatoreTraPunti3D implements OperatoreTraPunti { /* variabili di istanza */
double p1,q1; // prima coordinata double p2,q2; // seconda coordinata double p3,q3; // terza coordinata /* metodi */
...
}
2. Definire una classe TestOperatoriTraPunti che svolge le seguenti funzioni:
- Chiede all’utente di inserire un array A di oggetti OperatoreTraPunti (2D o 3D). Per ogni nuovo oggetto da inserire, l’utente deve specificare la dimensione (2 o 3) dei suoi due punti p e q, e le coordinate dei punti p e q.
- Per ogni oggetto dell’array A, stampa: i due punti p e q che esso memorizza, la somma tra p e q, e il prodotto scalare tra p e q.
Cognome___________________ Nome ____________________ Matricola____________________
Questo compito è stato discusso e definito collegialmente dalla commissione di esame di Fondamenti di Informatica.
Note importanti:
• Sul dischetto che ti è stato dato trovi il file ReadStream.class, utile per leggere dati immessi dall’utente.
• Salva sul dischetto le classi e le interfacce che devi definire.
• Scrivi Cognome, Nome e Matricola sia su questo foglio sia in un commento in testa alle classi che devi definire.
• Il dischetto va riconsegnato ben incartato in questo foglio