Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

C++ programma calcolatrice!

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] C++ programma calcolatrice!

Messaggioda Foto Utenterazielmitico » 5 dic 2012, 12:51

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?
Avatar utente
Foto Utenterazielmitico
-10 5
Frequentatore
Frequentatore
 
Messaggi: 153
Iscritto il: 23 ott 2012, 22:59

0
voti

[2] Re: C++ programma calcolatrice!

Messaggioda Foto UtenteTardoFreak » 5 dic 2012, 13:35

Il sorgente non è completo.
Non rispondo anche se avrei già la soluzione.
Riposta il sorgente completo.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[3] Re: C++ programma calcolatrice!

Messaggioda Foto Utenterazielmitico » 5 dic 2012, 13:55

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...
Avatar utente
Foto Utenterazielmitico
-10 5
Frequentatore
Frequentatore
 
Messaggi: 153
Iscritto il: 23 ott 2012, 22:59

1
voti

[4] Re: C++ programma calcolatrice!

Messaggioda Foto UtenteTardoFreak » 5 dic 2012, 14:06

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;
;-)
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[5] Re: C++ programma calcolatrice!

Messaggioda Foto Utenterazielmitico » 5 dic 2012, 14:23

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?)
Avatar utente
Foto Utenterazielmitico
-10 5
Frequentatore
Frequentatore
 
Messaggi: 153
Iscritto il: 23 ott 2012, 22:59

0
voti

[6] Re: C++ programma calcolatrice!

Messaggioda Foto UtenteTardoFreak » 5 dic 2012, 14:29

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.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[7] Re: C++ programma calcolatrice!

Messaggioda Foto UtentePioz » 5 dic 2012, 14:43

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...
Avatar utente
Foto UtentePioz
629 4 8
Expert
Expert
 
Messaggi: 568
Iscritto il: 11 ago 2011, 21:56

0
voti

[8] Re: C++ programma calcolatrice!

Messaggioda Foto Utenterazielmitico » 5 dic 2012, 16:08

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?
Avatar utente
Foto Utenterazielmitico
-10 5
Frequentatore
Frequentatore
 
Messaggi: 153
Iscritto il: 23 ott 2012, 22:59

0
voti

[9] Re: C++ programma calcolatrice!

Messaggioda Foto UtentePioz » 5 dic 2012, 17:17

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
Avatar utente
Foto UtentePioz
629 4 8
Expert
Expert
 
Messaggi: 568
Iscritto il: 11 ago 2011, 21:56

-1
voti

[10] Re: C++ programma calcolatrice!

Messaggioda Foto Utenterazielmitico » 5 dic 2012, 17:40

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?
Avatar utente
Foto Utenterazielmitico
-10 5
Frequentatore
Frequentatore
 
Messaggi: 153
Iscritto il: 23 ott 2012, 22:59

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti