Esercitazioni del corso di
Laboratorio di Calcolo I
n.
3
11 e 15 ottobre 2002
uso degli oggetti numerici
Attenzione , questa e` la prima
esercitazione con valutazione !!!
In questa esercitazione dovete scrivere due programmi. Il
primo (punto 1) servira` a illustrarvi come il calcolatore valuti delle
espressioni numeriche e booleane. Per il secondo programma potete scegliere
tra quello descritto nel punto 2, che serve a farvi capire come effettuare
degli arrotondamenti, e quello descritto al punto 3 che vi mostra come usare
numeri in formato esadecimale e quanto valga il massimo numero intero
rappresentabile in memoria.
- scrivere un programma che valuti e stampi le
espressioni lasciate come esercizio (pag 15,
pag 16)
nella lezione sulle classi numeriche e operatori. Si consiglia di copiare in
un nuovo direttorio (ex3) un programma dell'esercitazione precedente, dandogli
anche un altro nome, di editarlo eliminando tutto cio` che non serve e
aggiungendovi le nuove istruzioni di stampa.
- scrivere un programma che utilizzi le proprieta' della
divisione tra numeri interi per realizzare un "euroconvertitore" con le stesse
funzionalita' dell'eseguibile /home/docente/ex3/euro (o, per gli utenti
windows, dell'eseguibile euro.exe).
Si consiglia di procedere nel modo seguente:
- eseguire /home/docente/euro e cercare di individuare le
operazioni fondamentali effettuate dal programma
- elencare le operazioni fondamentali in un commento
all'interno del vostro programma
- cominciare a scrivere il codice necessario per
effettuare queste operazioni partendo dalla prima (stampa di una scritta e
lettura di un dato in ingresso), compilando, testando, e poi passando alla
successiva (calcolo e stampa del corrispettivo in lire del costo in euro)
etc...
- si consiglia di prevedere, almeno in un primo tempo,
l'immissione di costi in euro inferiori ad un certa cifra, in modo da non
dovere implementare il codice per tutti i tagli di banconote e monete ma
solo per i piu' piccoli.
- per poter realizzare questo programma e' necessario
che leggiate il capitolo 4 degli appunti. Scoprirete che nei vostri
calcolatori (32 bit) il massimo intero rappresentabile e' dato, in
codice esadecimale, da 7fffffff (31 bit messi a 1). Avrete
bisogno di modificare l'azione di cin e cout per far loro conventire i numeri
da un formato ad un altro.
Per stampare
o leggere un numero in formato esadecimale usate
cout << hex <<
numero;
cin >> hex >> numero;
Partendo da un numero esadecimale invece, per stamparlo o leggerlo
come numero in base 10, dovete usare
cout << dec <<
numero;
cin >> dec >> numero;
Se volete direttamente inizializzare una variabile ad un valore
espresso in forma esadecimale usate il prefisso 0x
int numero=0xff78;
Scrivete un
programma in cui un oggetto intero, inizializzato a 0x7fffffff
- viene stampato sia in formato esadecimale che
decimale
- viene incrementato di un'unita'
- viene nuovamente stampato
- da quello che avete letto e visto fare al programma
siete in grado di scrivere in formato esadecimale il numero che sommato a
0x7fffffff dia 0 o siete in grado di farvelo scrivere dal programma?
Scrivete la risposta in un commento all'interno del programma
stesso.
Ai fini della valutazione verrano presi in esame
i file lasciati nel vostro
sottodirettorio ex3 alla fine dell'esercitazione. Questi dovranno
contenere
- un commento iniziale con il nome del gruppo e i vostri
nomi
- abbondanti commenti che illustrino quello che volete
fare
- NB: dovete lasciare programmi
compilabili senza errori e che possano girare!