Blog del corso di Programmazione (9 CFU) tenuto da Marco La Cascia presso l'Universita' di Palermo per il corso di laurea in Ingegneria Informatica e delle Telecomunicazioni. Tratta la programmazione a oggetti in Java.
lunedì 4 novembre 2013
Nuova esercitazione
Disponibile una nuova esercitazione su operatori e strutture di controllo.
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.
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.
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 ;
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).
Buona sera Brofessore.
RispondiEliminaavrei 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
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*Professore
RispondiEliminaCome 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.
RispondiEliminaPROFESSORE BUONASERA.
RispondiEliminaVolevo 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;
}
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