PDA

View Full Version : [C++]Consiglio Esercizio


maestrale
06-06-2008, 21:54
Rieccomi a bussare alla vostra porta....:muro: :mc:
Questa volta l'esercizio dice:
Scrivere un programma che chieda all'utente
una quantità di euro e trasformi tale quantità in banconote e
monete di corso legale(cambio ottimo)

Questa volta però sono in mare aperto...non ho la più pallida idea di come iniziare anche perchè non capisco cosa vuole sapere....:confused:

Considerate che l'esercizio fa parte del capitolo dove si parla di assegnamento,tipi etc etc ancora non sono stati affrontati i cicli...

Grazie

codcata
06-06-2008, 22:33
sei principiante? io proverei con % (modulo)

maestrale
06-06-2008, 22:55
hihihihi
Ma quale principiante??!!!
Sono Propio IL Principiante....hihihihihihihi:) :Prrr: Ho iniziato da circa una settimana quindi sono proprio agli inizi,ma mi sto appassionando man mano che riesco a svolgere gli esercizi.

Per l'operzione da compiere avevo intuito % ma in teoria non potendo usare if,else o switch(perchè non ancora trattati) non posso dare comandi condizionali...
altrimenti avrei pensato Cifra%500, se è 0 divido cifra per 500 e segno le banconote da 500...etc etc.....
Speravo ci fosse un altro sistema.

Albi89
06-06-2008, 23:16
Esistono sicuramente molti approcci.
Visto che non puoi usare le if, se puoi usare i cicli una buona tecnica potrebbe essere questa.
Se la cifra è 1526.23 €, chiamiamola startValue.
Potresti fare dei controlli su startValue del tipo
while (startValue - 500 > 0) {
banconoteDa500++;
startValue -= 500;
}

Puoi ovviamente continuare a sottrarre con tagli via via più piccoli, accumulando nelle variabili apposite, e alla fine stampare tutto.

Un'altro metodo potrebbe essere quello di separare parte intera e parte decimale: in questo modo otterresti due valori interi e potresti sfruttare le proprietà della divisione tra interi.
Insomma, di metodi ce ne sono tanti quindi... buona implementazione :oink:

codcata
06-06-2008, 23:22
se non puoi usare i cicli e le if fai così
hai 137 euri

137 / 20 = 6. visto che sono tutti e 2 interi il risultato è 1 int
137 % 20(banconote da 20) = 17 è il resto dei soldi oltre alle 6 da 20euri

Albi89
06-06-2008, 23:30
se non puoi usare i cicli e le if fai così
hai 137 euri

137 / 20 = 6. visto che sono tutti e 2 interi il risultato è 1 int
137 % 20(banconote da 20) = 17 è il resto dei soldi oltre alle 6 da 20euri

Il problema è che se il valore inserito comprende anche dei centesimi, non può farlo.
A meno di un
intValue = static_cast<int>(startValue);
centValue = (startValue - intValue)*100;
e si lavora sulle due parti separatamente :fagiano:

maestrale
06-06-2008, 23:41
Intanto grazie ad entrambi...:D

Direi che seguendo cronologicamente il libro non dovrei usare ne for ne cicli tipo while....
quindi prima Faccio l'esercizio seguendo il consiglio di Codecata...(usando solo cifre senza decimali)
Ma siccome ho appena finito il Capitolo "Programmazione Strutturata"provo a svolgerlo anche secondo il consiglio di Albi89....Male di sicuro non mi fa....:) :muro:

Magari appena fatti Posto il codice nel caso qualcuno abbia mai il mio stesso problema.

Ciao a presto

codcata
07-06-2008, 00:10
Il problema è che se il valore inserito comprende anche dei centesimi, non può farlo.
A meno di un
intValue = static_cast<int>(startValue);
centValue = (startValue - intValue)*100;
e si lavora sulle due parti separatamente :fagiano:

:ave: