Sei sulla pagina 1di 5

Corso di Fondamenti di Informatica (Unificato) Prof Aldo Franco Dragoni

Avvertenze

Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo i lati. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo di pagina rispetto al totale; esempio per il secondo foglio di 3 consegnati: Giuseppe Russo 2/3 Mantenere sul banco il libretto o altro documento di riconoscimento fino a controllo avvenuto Nientaltro deve trovarsi sul banco: non consentito consultare libri, dispense, appunti, ecc. La correzione di riferimento per lautovalutazione verr fornita sul sito internet del Corso

Prova Scritta del 16/11/09


Il programma dovr attraverso un Men leggere da tastiera se l'utente vuole: 1. calcolare il quoziente ed il resto di una divisione tra interi (carattere a); 2. calcolare il prodotto tra interi (carattere b); 3. uscire dal programma (carattere c); Fatta la scelta dal Men il programma dovr: 1. leggere dalla tastiera due numeri interi attraverso l'apposita funzione, tale lettura dovr ripetersi finch non ne siano immessi due entrambi positivi e nel caso della divisione lo zero non sar ammesso;

2. nel caso si sia scelto di fare la divisione, calcolare e stampare a video il QUOZIENTE ed il RESTO della
divisione intera del MAGGIORE dei due per il MINORE, attraverso le due apposite funzioni; 3. nel caso si sia scelto di fare il prodotto, calcolare e stampare a video il PRODOTTO dei due numeri attraverso l'apposita funzione; Sia il RESTO che il QUOZIENTE della divisione intera NON DEVONO ESSERE CALCOLATI FACENDO USO DEGLI OPERATORI PREDEFINITI ( / e % ) ma mediante le due funzioni appositamente scritte. Anche il PRODOTTO NON DEVE ESSERE CALCOLATO FACENDO USO DELL'OPERATORE PREDEFINITO (*) ma mediante la funzione appositamente scritta. Una possibile esecuzione potrebbe essere (in grassetto sono indicati i valori forniti da tastiera !!!):
MENU' a) Per calcolare il quoziente ed il resto della divisione tra due numeri positivi b) Per calcolare il prodotto tra due numeri positivi c) Per uscire dal programma Scelta: b Scrivi il primo numero positivo: -4 Scrivi il primo numero positivo: 4 Scrivi il secondo numero positivo: -6 Scrivi il secondo numero positivo: 0 Il prodotto dei due numeri : 0 MENU' a) Per calcolare il quoziente ed il resto della divisione tra due numeri positivi b) Per calcolare il prodotto tra due numeri positivi
60131 ANCONA - ITALY - Via Brecce Bianche Phone (+39) 0712204390 - e-mail: a.f.dragoni@univpm.it

Corso di Fondamenti di Informatica (Unificato) Prof Aldo Franco Dragoni


c) Per uscire dal programma Scelta: b Scrivi il primo numero positivo: 2 Scrivi il secondo numero positivo: 6 Il prodotto dei due numeri : 12 MENU' a) Per calcolare il quoziente ed il resto della divisione tra due numeri positivi b) Per calcolare il prodotto tra due numeri positivi c) Per uscire dal programma Scelta: p Usa solo le lettere indicate nel Menu' MENU' a) Per calcolare il quoziente ed il resto della divisione tra due numeri positivi b) Per calcolare il prodotto tra due numeri positivi c) Per uscire dal programma Scelta: a Scrivi il primo numero positivo: -4 Scrivi il primo numero positivo: 0 Non puoi dividere per 0 Scrivi il primo numero positivo: 4 Scrivi il secondo numero positivo: -6 Scrivi il secondo numero positivo: 0 Non puoi dividere per 0 Scrivi il secondo numero positivo: 9 Il quoziente della divisione : 2 Mentre il resto : 1 MENU' a) Per calcolare il quoziente ed il resto della divisione tra due numeri positivi b) Per calcolare il prodotto tra due numeri positivi c) Per uscire dal programma Scelta: c (* Fine dell'esempio *)

60131 ANCONA - ITALY - Via Brecce Bianche Phone (+39) 0712204390 - e-mail: a.f.dragoni@univpm.it

Corso di Fondamenti di Informatica (Unificato) Prof Aldo Franco Dragoni


#include <iostream> using namespace std; // [15 PUNTI] // questa procedura legge da tastiera i due numeri ed esegue gli opportuni controlli sui valori inseriti void leggi_numeri(int& pri, int& sec, bool flag) { int temp = 0; do{ do{ cout << "\nScrivi il primo numero positivo: "; cin >> pri; }while(pri < 0); if(pri == 0 && flag) cout << "\nNon puoi dividere per 0\n"; }while(pri == 0 && flag); do{ do{ cout << "\nScrivi il secondo numero positivo: "; cin >> sec; }while(sec < 0); if(sec == 0 && flag) cout << "\nNon puoi dividere per 0\n"; }while(sec == 0 && flag); if(pri < sec) { temp = pri; pri = sec; sec = temp; } } //PUNTI 4

60131 ANCONA - ITALY - Via Brecce Bianche Phone (+39) 0712204390 - e-mail: a.f.dragoni@univpm.it

Corso di Fondamenti di Informatica (Unificato) Prof Aldo Franco Dragoni


// questa funzione calcola il resto della divisione senza utilizzare il % int resto(int num1, int num2) { int acc = num1; while (acc >= num2) acc -= num2; return acc; } // questa funzione calcola il quoziente della divisione senza utilizzare il / int quoziente(int num1, int num2) { int c=0, acc = num2; while (acc <= num1){ acc += num2; c++; } return c; } // questa funzione calcola il prodotto senza utilizzare il * int prodotto(int num1, int num2) { int acc = 0; while (num2 > 0){ acc += num1; num2--; } return acc; } // PUNTI 2 // PUNTI 2 // PUNTI 2

60131 ANCONA - ITALY - Via Brecce Bianche Phone (+39) 0712204390 - e-mail: a.f.dragoni@univpm.it

Corso di Fondamenti di Informatica (Unificato) Prof Aldo Franco Dragoni


int main() { int primo, secondo; char s; do{ do{ cout << "\nMENU'\n"; cout << "a) Per calcolare il quoziente ed il resto della divisione tra due numeri positivi\n"; cout << "b) Per calcolare il prodotto tra due numeri positivi\n"; cout << "c) Per uscire dal programma\n"; cout << "Scelta: "; cin >> s; if(s != 'a' && s != 'b' && s!= 'c') cout << "Usa solo le lettere indicate nel Menu'\n"; }while(s != 'a' && s != 'b' && s != 'c'); switch(s) { case 'a': leggi_numeri(primo,secondo,true); cout << "\nIl quoziente della divisione e': " << quoziente(primo,secondo) << "\nMentre il resto e': " << resto(primo,secondo) << endl; break; case 'b': leggi_numeri(primo,secondo,false); cout << "\nIl prodotto dei due numeri e': " << prodotto(primo,secondo) << endl; break; } }while(s != 'c'); system("PAUSE"); return 0; } // PUNTI 4

60131 ANCONA - ITALY - Via Brecce Bianche Phone (+39) 0712204390 - e-mail: a.f.dragoni@univpm.it