PROBLEMA:programma calolatrice

di il
12 risposte

PROBLEMA:programma calolatrice

Volevo fare un programmino semplice, che permetta di svolgere diverso calcoli; tuttavia, quando lo compilo, VALANGA DI ERRORI
#include <iostream.h>
#include <stdio.h>

char scelta;
char dinuovo;
int a;
int b;
int c =a*b;
int d =a+b;
int e =a-b;
int f =a/b;
int g =a*a;
int h =a*a*a;

int main()
{
cout <<"BENVENUTO \n Inserisci 1 per addizione \n 2 per sottrazione, \n 3 per moltiplicazione \n 4 per divisione \n 5 pe elevamento alla seconda \6 per elevamento alla terza";
cin >> scelta;
if (scelta=="1")
{
                cout <<"PRIMO ADDENDO: ";
                cin >> a;
                cout <<"SECONDO ADDENDO: ";
                cin >> b;
                cout <<d;
}
else if (scelta=="2")
{
                cout <<"INSERISCI IL PRIMO NUMERO: ";
                cin >>a;
                cout<<"ORA IL SECONDO: ";
                cin >>b;
                cout <<e;
}
else if(scelta=="3")
{
               cout<<"PRIMO FATTORE: ";
               cin >>a;
               cout <<"SECONDO FATTORE: ";
               cin >>b;
               cout << c;
}
else if(scelta=="4")
{
     cout <<"DIVIDENDO: ";
     cin >> a;
     cout <<"DIVISORE: ";
     cin >> b;
     cou << f;
}
else if(scelta=="5")
{
     cout <<"BASE: ";
     cin >> a;
     cout << g;
}
else
{
    cout <<"BASE: ";
    cin >> a;
    cout << h;
}
}
cout << "INTENDI USARE NUOVAMENTE LA CALCOLATRICE? INSERISCI si o no: ";
cin >> dinuovo;

if(dinuovo="si")
{
goto main();
}
else
{
exit;
}

system("PAUSE");
return 0;

12 Risposte

  • Re: PROBLEMA:programma calolatrice

    Questo
    
    int a;
    int b;
    int c =a*b;
    int d =a+b;
    int e =a-b;
    int f =a/b;
    int g =a*a;
    int h =a*a*a;
    
    Non è valido. a e b sono indefiniti in quel punto.
  • Re: PROBLEMA:programma calolatrice

    3 errori in una sola riga
    
    if(dinuovo="si")
    
    1. come fa un char a tenere due caratteri?
    2. l'uguaglianza in C++ si fa col ==. Solo = significa assegnazione
    3. "si" è una stringa,dinuovo è un char. Anche se tu indendessi uguaglianza non lo puoi fare perche sono due tipi di dati diversi.
  • Re: PROBLEMA:programma calolatrice

    Tuttgli if sono sbagliati per lo stesso motivo.
    
    if(scelta == "1")
    
    "1" è una stringa, '1' è un carattere.
  • Re: PROBLEMA:programma calolatrice

    Ultima domanda: Qual'è sto compilatore così datato che ti permette di utilizzare <iostream.h>?
    Altra cosa: Stai studiando il C++ oppure il C. Se C++ <stdio.h> non serve.
  • Re: PROBLEMA:programma calolatrice

    Vi ringrazio tutti. specifico che sono alle prime armi
  • Re: PROBLEMA:programma calolatrice

    Prendi spunto da questo e modifica il resto
    
    if (scelta=='1')
        {
            cout <<"PRIMO ADDENDO: ";
            cin >> a;
            cout <<"SECONDO ADDENDO: ";
            cin >> b;
            cout << a + b;
        }
    
    come vedi non c'è bisogno di una variabile nuova c per tenere la somma. lo puoi stampare direttamente. Impara a non usare il goto. Esiste in C (anche se è il caso di farlo fuori) ma se riesci a fare il tuo programma senza quello avrai meno problemi. Impara ad usare la parola chiave switch/case che fa la stessa cosa dei tuoi if/else sparsi x tutto il programma ma + strutturato.
    Le variabili fuori dal main sono considerati globali, impara a non usarli. Definisci solo a e b all'inizio del main. Basta e avanza.
  • Re: PROBLEMA:programma calolatrice

    Scusate, ma non me lo compila ancora.
  • Re: PROBLEMA:programma calolatrice

    Ho apportato alcune modifiche, ma continua a non compilarlo ( uso DEV-C++)
    #include <iostream>
    
    int main()
    int a, b
    char scelta
    
    cout <<"BENVENUTO \n Inserisci 1 per addizione \n 2 per sottrazione, \n 3 per moltiplicazione \n 4 per divisione \n 5 pe elevamento alla seconda \6 per elevamento alla terza";
    cin >> scelta;
    if (scelta=='1')
    {
                    cout <<"PRIMO ADDENDO: ";
                    cin >> a;
                    cout <<"SECONDO ADDENDO: ";
                    cin >> b;
                    int c = a + b;
                    cout << c;
    }
    else if (scelta=='2')
    {
                    cout <<"INSERISCI IL PRIMO NUMERO: ";
                    cin >> a;
                    cout<<"ORA IL SECONDO: ";
                    cin >> b;
                    int d = a - b;
                    cout << d;
    }
    else if(scelta=='3')
    {
                   cout<<"PRIMO FATTORE: ";
                   cin >> a;
                   cout <<"SECONDO FATTORE: ";
                   cin >> b;
                   int e = a * b;
                   cout << e;
    }
    else if(scelta=='4')
    {
         cout <<"DIVIDENDO: ";
         cin >> a;
         cout <<"DIVISORE: ";
         cin >> b;
         int f = a/b;
         cout << f;
    }
    else if(scelta=='5')
    {
         cout <<"BASE: ";
         cin >> a;
         int g = a*a;
         cout << g;
    }
    else
    {
        cout <<"BASE: ";
        cin >> a;
        int h = a*a*a;
        cout << h;
    }
    
  • Re: PROBLEMA:programma calolatrice

    Visto che stai studiando ti posto il codice completo se no facciamo notte. Io toglierei anche il goto e system(pause) ma non ho tempo adesso. Vediamo se ci riesci tu.
    
    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main()
    {
        char scelta;
        char dinuovo;
        int a;
        int b;
    
        main:
        cout <<"\nBENVENUTO \n Inserisci 1 per addizione \n 2 per sottrazione, \n 3 per moltiplicazione \n 4 per divisione \n 5 per elevamento alla seconda \n 6 per elevamento alla terza\t";
        cin >> scelta;
        if (scelta=='1')
        {
            cout <<"PRIMO ADDENDO: ";
            cin >> a;
            cout <<"SECONDO ADDENDO: ";
            cin >> b;
            cout << a + b;
        }
        else if (scelta=='2')
        {
            cout <<"INSERISCI IL PRIMO NUMERO: ";
            cin >>a;
            cout<<"ORA IL SECONDO: ";
            cin >>b;
            cout << a - b;
        }
        else if(scelta=='3')
        {
            cout<<"PRIMO FATTORE: ";
            cin >>a;
            cout <<"SECONDO FATTORE: ";
            cin >>b;
            cout << a * b;
        }
        else if(scelta=='4')
        {
             cout <<"DIVIDENDO: ";
             cin >> a;
             cout <<"DIVISORE: ";
             cin >> b;
             cout << a / b;
        }
        else if(scelta=='5')
        {
             cout <<"BASE: ";
             cin >> a;
             cout << a * a;
        }
        else
        {
            cout <<"BASE: ";
            cin >> a;
            cout << a * a * a;
        }
    
        cout << "\nINTENDI USARE NUOVAMENTE LA CALCOLATRICE? INSERISCI si o no: ";
        cin >> dinuovo;
    
        if(dinuovo=='s')
        {
            goto main;
        }
        else
        {
            return 0;
        }
    
        system("PAUSE");
        return 0;
    
    }
    
    Cancella Dev-C++ e metti Code::Blocks.
  • Re: PROBLEMA:programma calolatrice

    Ho modificato ulteriormente, ma non me lo compila. Cosa dovrei mettere dopo #include?
    Potete vedere se il vostro compilatore è in grado di compilarlo?
    #include <iostream.h>
    
    int main()
    int a, b
    char scelta
    
    cout <<"BENVENUTO \n Inserisci 1 per addizione \n 2 per sottrazione, \n 3 per moltiplicazione \n 4 per divisione \n 5 pe elevamento alla seconda \6 per elevamento alla terza";
    cin >> scelta;
    if (scelta=='1')
    {
                    cout <<"PRIMO ADDENDO: ";
                    cin >> a;
                    cout <<"SECONDO ADDENDO: ";
                    cin >> b;
                    cout << a + b;
    }
    else if (scelta=='2')
    {
                    cout <<"INSERISCI IL PRIMO NUMERO: ";
                    cin >> a;
                    cout<<"ORA IL SECONDO: ";
                    cin >> b;
                    cout<< a-b;
    }
    else if(scelta=='3')
    {
                   cout<<"PRIMO FATTORE: ";
                   cin >> a;
                   cout <<"SECONDO FATTORE: ";
                   cin >> b;
                   cout << a * b;
    }
    else if(scelta=='4')
    {
         cout <<"DIVIDENDO: ";
         cin >> a;
         cout <<"DIVISORE: ";
         cin >> b;
         cout << a/b;
    }
    else if(scelta=='5')
    {
         cout <<"BASE: ";
         cin >> a;
         cout << a*a;
    }
    else
    {
        cout <<"BASE: ";
        cin >> a;
        cout << a*a*a;
    }
    
    
    system("PAUSE");
    return 0;
    
  • Re: PROBLEMA:programma calolatrice

    Ringrazio skynet. provo con quello che mi hai detto tu
  • Re: PROBLEMA:programma calolatrice

    Con skynet ha funzionato. dà 0 errori e 0 avvertimenti. grazie a tutti e Buona Pasqua!
Devi accedere o registrarti per scrivere nel forum
12 risposte