Pagina 1 di 4

C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 12:51
da razielmitico
Ragazzi,buongiorno a tutti! Oggi a scuola abbiamo cominciato a muovere i primi passi nel mondo del C++ (senza aver fatto il C vorrei aggiungere...) comunque,ho scritto,con i pochi comandi che conosco,questo programma che dovrebbe fare la differenza tra due numeri:

Codice: Seleziona tutto
#include <iostream>
using namespace std;
int main ()
{
    int a,b,diff;   
    cout<<"inserisci a";
    cout<< endl;
    cin>>a;
    cout<<"inserisci b";
    cout<<endl;
    cin>>b;
    if (a>b)
    {
            diff=a-b;
            }
            else
            {
                diff=b-a;
                }
                system("pause");
                return 0;
                }


ma quando lo avvio mi spunta direttamente "premere un tasto per continuare..." perché salta tutte le operazioni?

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 13:35
da TardoFreak
Il sorgente non è completo.
Non rispondo anche se avrei già la soluzione.
Riposta il sorgente completo.

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 13:55
da razielmitico
Non capisco,che cosa manca?

#include <iostream>
using namespace std;
int main ()
{ //inizio
int a,b,diff;
cout<<"inserisci a";
cout<< endl;
cin>>a;
cout<<"inserisci b";
cout<<endl;
cin>>b;
if (a>b)
{
diff=a-b;
}
else
{
diff=b-a;
}
system("pause");
return 0;
} //fine

il codice è questo ò.ò in pratica serve a fare la sottrazione tra due numeri a e b in particolare se a>b si invertono...

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 14:06
da TardoFreak
Si è vero, non manca niente.
Purtroppo è scritto in modo orrendo, schifosissimo direi, e quindi non si riescono ad individuare i vari blocchi.
Ragioniamo con il sorgente scritto in modo ordinato:
Codice: Seleziona tutto
#include <iostream>
using namespace std;

int main ()
{
  int a,b,diff;
 
  cout<<"inserisci a";
  cout<< endl;
  cin>>a;
  cout<<"inserisci b";
  cout<<endl;
  cin>>b;
  if (a>b)
  {
    diff=a-b;
  }
  else
  {
    diff=b-a;
  }
  system("pause");
  return 0;
}

Come puoi notare l' operazione non te la salta. Manca l' istruzione per visualizzarne il risultato.
Non vedo nessuna istruzione
Codice: Seleziona tutto
cout<<diff;
;-)

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 14:23
da razielmitico
non me ne sono accorto per niente cavolo! XD grazie mille.
Adesso andiamo al problema serio :S
Essendo alle prime armi volevo creare un programma abbastanza semplice senza cicli ne altro di complesso.
Una calcolatrice che fa le quattro operazioni tra due numeri.
Il programma inizia con una domanda "vuoi eseguire una sottrazione,divisione,moltiplicazione o una addizione?"
quindi ho una variabile di nome "risposta" che deve contenere una risposta tra le quattro possibili (sottrazione divisione,moltiplicazione,addizione) quindi solo lettere e poi una condizione che vada a verificare se "risposta" è una della quattro scelte e procede con le operazioni.
So che per i caratteri si usa "char" ma come le devo dichiarare?

io ho scritto così:

#include <iostream>
using namespace std;
int (o devo mettere char?) main ()
{
char risposta,a,b,div,sot,add,molt;
cout<<"vuoi eseguire una divisione,una sottrazione,una moltiplicazione o un addizione?"<<endl;
cin<<risposta;
if (risposta= divisine)
va a fare le varie cose....

un altro problemma spunta per la divisione,in quanto i risultati possono essere con la virgola,quindi devo usare il float (o mi consigliate il double?) ma come dichiaro le varie variabili? (in questo caso il risultato della divisione?)

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 14:29
da TardoFreak
Non te ne eri accorto perché il programma era scritto in modo non ordinato.

Ciò detto,
Ti conviene fare la scelta dell' operazione mediante un codice numerico, ad esempio 1 per l' addizione, 2 per la sottrazione e via dicendo. Il programma sarà più semplice.

Ma una cosa importante hai dimenticato: quando fai la divisione devi sempre verificare che il divisore non sia uguale a zero.

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 14:43
da Pioz
Dai ricordi che ho(bei ricordi :D ) per fare la scelta oltre a un numero puoi sempre usare un singolo carattere "char" e usare una lettera o meglio ancora + - * /
Quando controlli un uguaglianza devi usare il doppio uguale == altrimenti con uno solo non controlli niente.
Codice: Seleziona tutto
if(risposta=="+")

con questa scrittura, se ricordo bene, lui controlla il codice ASCII del carattere contenuto nella variabile risposta( di tipo char appunto) con quello del simbolo + (se non metti le virgolette ricorda che il controllo non è corretto perché solo con le virgolette controlla il codice ASCII)

Mi affido a Foto UtenteTardoFreak per il controllo degli errori...

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 16:08
da razielmitico
ho tentato di fare il programma:
#include <iostream>
using namespace std;
int main ()
{
double a,b,risultato;
int risposta;
cout<< "cosa vuoi fare? (digita un numero)"<<endl<<"1=divisione"<<"2=moltiplicazione"<<"3=addizione"<<"4=sottrazione";
cin>>risposta;
if (risposta == 1)
{
risultato= a/b;
}
else if (risposta == 2)
{
risultato= a*b;
}
else if (risposta == 3)
{
risultato=a+b;
}
else if (risposta == 4)
{
risultato=a-b;
}
cout<<"il risultato è"<<risultato<<endl;
system("pause");
return 0;
}

ma anche stavolta mi dice soltanto "premere un tasto per continuare" ma "cout<<"Il risultato è"<<risultato"
c'è,cosa può essere?

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 17:17
da Pioz
Puoi togliere gli else perché in questo caso non servono, al limite metti un else alla fine che se premi un tasto diverso da quelli prefissati 1-2-3-4 ti dice che hai sbagliato..
Gli else infatti non sono indispensabili se quando usi la funzione if....Se per esempio devi controllare come nel tuo caso l'uguaglianza tra una variabile e alcuni valori puoi mettere if in cascata senza else. Se, controllati tutti gli if e nessuno è risultato true(vero) e vuoi che il programma ti dica guarda che quella variabile non è né 1 né 2 ecc. metti l'else alla fine che quindi viene svolto solo se tutte le condizioni precedenti risultando false...

if(risposta==1){...}
if(risposta==2){...}
if(risposta==3){...}
if(risposta==4){...}
else{cout<<"Non hai inserito un numero coerente con le possibilità date";}

Comunque il problema è che non chiedi di inserire a e b

Re: C++ programma calcolatrice!

MessaggioInviato: 5 dic 2012, 17:40
da razielmitico
ho aggiusto il codice e ora parte:

Codice: Seleziona tutto
#include <iostream>
using namespace std;
int main ()
{
    double a,b,;
    int risposta;
    cout<<"inserisci a"<<endl;
    cin>>a;
    cout<<"inserisci b"<<endl;
    cin>>b;
    cout<< "cosa vuoi fare?(digita un numero)"<<endl<<"1=divisione"<<endl<<"2=moltiplicazione"<<endl<<"3=addizione"<<endl<<"4=sottrazione"<<endl;
    cin>>risposta;
    if (risposta=1)
    {
      risultato= a/b;
      }
      if (risposta=2)
      {
           risultato= a*b;
           }
           if (risposta=3)
           {
                risultato=a+b;
                }
                if (risposta=4)
                {
                risultato=a-b;
                }
                else
                {
                    cout<<"Non hai inserito un numero coerente con le possibilità date";
                    }
                cout<<"il risultato e'"<<risultato<<endl;
                system("pause");
                return 0;
                       }




il problema è uno solo,i risultati,ho provato con a=5 e b=10 tutte le operazioni vengono -5,com'è possibile?