Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Esercizio C++
Forum - C/C++ - Esercizio C++

Avatar
plotter (Normal User)
Newbie


Messaggi: 2
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 14:40
Giovedì, 16/07/2009
Ciao a tutti, stò imparando il C++ e sono arrivato a svolgere questo esercizio:

Devo inserire da tastiera un numero di 5 cifre e poi visualizzarle a video separate da 2 spazi, ad esempio insersco 12345 e visualizzo 1  2  3  4  5
Io ho svolto l'esercizio così

#include <iostream>

using std::cout;
using std::cin;
using std::endl;
int a, appoggio, appoggio2, appoggio3, appoggio4, primo, secondo, terzo, quarto, quinto;

int main()
{
    cout << "Inserisci un valore di 5 cifre: ";
    cin >> a;
    appoggio = a;
    a = a / 10000;
    primo = a;
    a = appoggio - a * 10000;
    appoggio2 = a;
    a = a / 1000;
        secondo = a;
    a= appoggio2 - a * 1000;
    appoggio3 = a;
    a = a /100;
    terzo = a;
    a = appoggio3 - a * 100;
    appoggio4 = a;
    a = a / 10;
    quarto = a;
    a= appoggio4 - a * 10;
    
    cout << primo << "  " << secondo << "  " << terzo << "  " << quarto << "  " << a << endl;
    return 0;
}

Ma il libro consigliava di usare l'operatore modulo e la divisione intera, c'è un altro metodo?

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 14:49
Giovedì, 16/07/2009
Testo quotato

Ma il libro consigliava di usare l'operatore modulo e la divisione intera, c'è un altro metodo?



Qualcosa del genere ...

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.         int a;
  8.  
  9.         cout << "Inserisci un valore di 5 cifre: ";
  10.         cin >> a;
  11.  
  12.         for(int d = 10000; d; d/=10)
  13.                 cout << a / d % 10 << "  ";
  14.        
  15.         cout << endl;
  16.  
  17.         return 0;
  18. }



Ultima modifica effettuata da theprogrammer il 16/07/2009 alle 14:50


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 15:10
Giovedì, 16/07/2009
Testo quotato

Postato originariamente da theprogrammer:

Testo quotato

Ma il libro consigliava di usare l'operatore modulo e la divisione intera, c'è un altro metodo?



Qualcosa del genere ...

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.         int a;
  8.  
  9.         cout << "Inserisci un valore di 5 cifre: ";
  10.         cin >> a;
  11.  
  12.         for(int d = 10000; d; d/=10)
  13.                 cout << a / d % 10 << "  ";
  14.        
  15.         cout << endl;
  16.  
  17.         return 0;
  18. }





Si, va bene, ma la soluzione e' "troppo" giusta, penso che a lui non interessi il problema in se, ma gli interessi soprattutto prendere confidenza col linguaggio,

penso che lui possa fare qualcosa del genere:

Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.         int N, C, D;
  4.  
  5.         cout << "Inserisci un valore di 5 cifre: ";
  6.         cin >> N;
  7.  
  8.          D = 10000;
  9.          
  10.          while (N != 0) {
  11.            C = N / D;
  12.            N = N % D;
  13.            D = D / 10;
  14.  
  15.            cout << C << "  ";
  16.          }
  17.  
  18.         cout << endl;
  19.  
  20.         return 0;
  21. }



Ciao. :k:

Luigi

P.S. per plotter

in futuro sarebbe opportuno usare i tag appositi per il codice sorgente, il post risultera' piu' chiaro. :k:

Ultima modifica effettuata da gigisoft il 16/07/2009 alle 15:13


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 15:26
Giovedì, 16/07/2009
Testo quotato

Postato originariamente da gigisoft:
...



Scusa ... hai usato una while al posto di una for, spezzando le varie parti dell'espressione ...

E adesso il programma e' piu' chiaro ?

Probabilmente ha compreso perfettamente anche quello con la for ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 15:30
Giovedì, 16/07/2009
Testo quotato

Postato originariamente da theprogrammer:

Testo quotato

Postato originariamente da gigisoft:
...



Scusa ... hai usato una while al posto di una for, spezzando le varie parti dell'espressione ...

E adesso il programma e' piu' chiaro ?

Probabilmente ha compreso perfettamente anche quello con la for ...



Voglio dire che quello col for era troppo compatto e, per uno non troppo allenato a leggere il codice, poteva non essere immediatamente chiaro, tutto qui'


Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
plotter (Normal User)
Newbie


Messaggi: 2
Iscritto: 23/03/2009

Segnala al moderatore
Postato alle 16:15
Giovedì, 16/07/2009
Innanzitutto grazie delle risposte, però ci tengo a precisare una cosa...
In effetti, stò familiarizzando col linguaggio e quindi anche se bene o male sò cosa sono i cicli, nel libro ancora non li ho trattai, le cose che ho trattato sono gli streaming di input ed output cout, cin, endl, le variabili intere e l'istruzione IF, nint'altro, poi ovviamente ho letto degli operatori matematici e logici, quindi l'esercizio và svolto solo con queste istruzioni, ma sinceramente mi è venuto come ve l'ho spiegato prima e capisco anche che come l'ho svolto è parecchio incasinato.

PM Quote