Esame di programmazione I 12 CFU
Prof. Paolo Maresca
Esercizio 1
Scrivere un programma che soddisfi i seguenti requisiti:
- Creare una classe Complex che contenga come dati privati parte reale e immaginaria, rappresentati col tipo intero. La classe Complex dichiari due funzioni operatore sovrapposte: una di inserimento nello stream e l’altra di estrazione dallo stream. La funzione operatore di estrazione dallo stream dovrebbe stabilire se il dato immesso è valido e, se non lo è, dovrebbe settare ios::failbit per determinare se è stato immesso un input improprio. Un input valido dovrebbe essere espresso nella forma: 3 + 8i
- Il valore può essere negativo o positivo ed è possibile che uno dei valori possa non essere fornito. Se non è fornito viene settato a zero. Qualsiasi altra situazione eccezionale venga gestita mediante l’utilizzo di appropriate eccezioni, ossia progettando un’apposita classe di eccezioni per Complex. L’operatore di inserimento non dovrebbe essere capace di mostrare il numero complesso se immettete un dato erroneo da tastiera. Il formato dell’output dovrebbe essere identico al formato di input prima illustrato, considerando che per valori immaginari negativi deve essere stampato un segno “ – “, mentre per i positivi un segno “ + “.
- Scrivere un opportuno main di test della classe Complex.
Esercizio 2
- Scrivere una funzione template per una funzione predicato isEqualTo, che compara i suoi due argomenti utilizzando l’operatore di uguaglianza “ == “ e restituisce true se questi sono uguali e false se sono diversi. Usare una funzione template in un programma che chiami isEqualTo e la provi su una varietà di tipi built in del linguaggio.
- Successivamente si scriva una versione diversa del programma che chiami isEqualTo e la provi su un tipo di classi definite dall’utente, ma senza sovrapporre l’operatore di eguaglianza. Cosa succede quando si tenta di eseguire questo programma??? (commentare in un file di testo allegato al progetto)
-
Esercitazione Programmazione 1
-
Programmazione 1 - Esercitazione
-
Programmazione 1 - Esercitazione
-
Programmazione 1 - Esercitazione