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.
     

  1. 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.
     
  2. 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:
    1. eseguire /home/docente/euro e cercare di individuare le operazioni fondamentali effettuate dal programma
    2. elencare le operazioni fondamentali in un commento all'interno del vostro programma
    3. 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...
    4. 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.
       
  3. 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
    1. viene stampato sia in formato esadecimale che decimale
    2. viene incrementato di un'unita'
    3. viene nuovamente stampato
    4. 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