lunedì 4 novembre 2013

Nuova esercitazione

Disponibile una nuova esercitazione su operatori e strutture di controllo.

6 commenti:

  1. Buona sera Brofessore.
    avrei un dubbio su questo esercizio:

    6. Scrivere un programma che legga due interi di tre cifre e ne stampi il loro prodotto come se l’operazione
    fosse svolta manualmente. Ad esempio se l’utente introduce 325 e 426 il programma visualizza:
    325*
    426=
    -------
    1950
    6500
    130000
    -------
    138450

    Ho provato a farlo in 2 versioni,
    la prima mi sembra abbastanza banale e per questo volevo capire se potesse andare bene.

    La seconda versione che è quella un pò più "dettagliata", mi crea problemi nella stampa.

    Le allego qui il codice per averlo leggibile, all'interno del quale,
    spiego direttamente il problema che ho con la seconda versione di cui parlavo.

    http://pastebin.com/YiFeViJr

    RispondiElimina
    Risposte
    1. Se il problema è solo fare stampare a sinistra dello 0 potresti mettere tutto in un vector e poi farlo stampare dalla fine all'inizio. Hai provato?

      Elimina
  2. Come già detto oggi la prima versione va bene. Lo scopo dell'esercizio era infatti principalmente di estrarre le cifre dal numero e formattare l'output.

    RispondiElimina
  3. PROFESSORE BUONASERA.
    Volevo chiederle se esiste una versione piú leggibile del programma da me scritto.
    Grazie anticipatamente.

    /*Scrivere un programma che legga due interi di tre cifre e ne stampi il loro prodotto come se l’operazione fosse svolta manualmente.
    Ad esempio se l’utente introduce 325 e 426 il programma visualizza:
    325*
    426=
    -------
    1950
    6500
    130000
    -------
    138450
    */

    #include
    #include
    #include
    using namespace std;


    int main(){

    int x = 325 , y = 426 ;

    cout << " " << x << "*\n" << " " << y << "=\n" << "--------" << endl ;

    cout << " " << (x*(y%10)) << endl
    << " " << (x*((y/10)%10))*10 << endl
    << " " << (x*((y/100)%10))*100 << endl
    << "--------" << endl
    << " " << (x*(y%10))+(x*((y/10)%10))*10+(x*((y/100)%10))*100 ;







    return 0;
    }

    RispondiElimina
  4. In questo modo i calcoli parziali vengono allineati a sinistra invece che a destra. Si potrebbe fare in modo che risultano allineati a destra valutando la lunghezza del numero e riempendo con spazi a sinistra (magari scrivendo una funzione apposita).

    RispondiElimina