12.07.2015 Views

Esame di porgrammazione I 12 CFU Prof. Paolo Maresca - Quelli di ...

Esame di porgrammazione I 12 CFU Prof. Paolo Maresca - Quelli di ...

Esame di porgrammazione I 12 CFU Prof. Paolo Maresca - Quelli di ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Esame</strong> <strong>di</strong> <strong>porgrammazione</strong> I <strong>12</strong> <strong>CFU</strong><strong>Prof</strong>. <strong>Paolo</strong> <strong>Maresca</strong>ESERCIZIO 1Scrivere un programma che sod<strong>di</strong>sfi i seguenti requisiti:1)Creare una classe Complex che contenga come dati privati parte reale eimmaginaria, rappresentati col tipo intero. La classe Complex <strong>di</strong>chiari duefunzioni operatore sovrapposte: una <strong>di</strong> inserimento nello stream e l’altra <strong>di</strong>estrazione dallo stream. La funzione operatore <strong>di</strong> estrazione dallo streamdovrebbe stabilire se il dato immesso è valido e, se non lo è, dovrebbe settareios::failbit per determinare se è stato immesso un input improprio. Un inputvalido dovrebbe essere espresso nella forma: 3 + 8i2)Il valore può essere negativo o positivo ed è possibile che uno dei valoripossa non essere fornito. Se non è fornito viene settato a zero. Qualsiasi altrasituazione eccezionale venga gestita me<strong>di</strong>ante l’utilizzo <strong>di</strong> appropriateeccezioni, ossia progettando un’apposita classe <strong>di</strong> eccezioni per Complex.L’operatore <strong>di</strong> inserimento non dovrebbe essere capace <strong>di</strong> mostrare il numerocomplesso se immettete un dato erroneo da tastiera. Il formato dell’outputdovrebbe essere identico al formato <strong>di</strong> input prima illustrato, considerando cheper valori immaginari negativi deve essere stampato un segno “ – “, mentreper i positivi un segno “ + “.3) Scrivere un opportuno main <strong>di</strong> test della classe Complex.ESERCIZIO 21)Scrivere una funzione template per una funzione pre<strong>di</strong>cato isEqualTo, checompara i suoi due argomenti utilizzando l’operatore <strong>di</strong> uguaglianza “ == “ erestituisce true se questi sono uguali e false se sono <strong>di</strong>versi. Usare unafunzione template in un programma che chiami isEqualTo e la provi su unavarietà <strong>di</strong> tipi built in del linguaggio2)Successivamente si scriva una versione <strong>di</strong>versa del programma che chiamiisEqualTo e la provi su un tipo <strong>di</strong> classi definite dall’utente, ma senzasovrapporre l’operatore <strong>di</strong> eguaglianza. Cosa succede quando si tenta <strong>di</strong>eseguire questo programma??? (commentare in un file <strong>di</strong> testo allegato alprogetto)


3)Come il punto 2), ma adesso sovrapponiamo l’operatore <strong>di</strong> uguaglianza conla funzione operator==. Cosa succede quando eseguite questo programma??(commentare in un file <strong>di</strong> testo allegato al progetto)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!