Page 1 of 1

problema de incepator ..:(

Posted: 12 Aug 2013, 14:20
by alexandru plesa
Buna ziua !

vreau sa fac un simplu calculator in c++ (in code::blocks) dar tot imi spune cand dau build & run ""expected unqualified-id before '{' token ""...asta e codul

Code: Select all

#include <iostream>
#include <fstream>
#include<string.h>

using namespace std;

void adunare(){cout << "adunare";}
void scadere(){cout << "scadere";}
void inmultire(){cout << "inmultire";}
void impartire(){cout<<"impartire";}


{
  int input;
  char continuare[10];

  cout<<"1. adunare\n";
  cout<<"2. scadere\n";
  cout<<"3. inmultire\n";
  cout<<"4. impartire\n";
  cout<<"5. iesi\n";
  cout<<"alegere\n: ";
  cin>> input;
  switch ( input ) {
                      case 1:
                               {
                                 float input=1;
                                 float input2=1;
                                 float sum = 0;
                                 while ( input != 0 )
                                                     {
                                                      cout << "introdu un numar :" <<  endl;
                                                      cin >> input;
                                                      cout<<"introdu al doilea numar : "<<endl;
                                                      cin>>input2;
                                                      sum += input+input2;
                                                      cout << "suma este :" << sum << endl;



                                                     while (sum >= 0)
                                                        cout<<"vrei sa calculezi din nou ? (DA,NU) "<<endl;
                                                     cin>>continuare;
                                                     if(strcmp("DA", continuare) == 0 || strcmp("da", continuare) == 0){
                                                                                                                        cout << "introdu un numar :" <<  endl;
                                                                                                                        cin >> input;
                                                                                                                        cout<<"introdu al doilea numar : "<<endl;
                                                                                                                        cin>>input2;
                                                                                                                        sum += input+input2;
                                                                                                                        cout << "suma este :" << sum << endl;}

                                                                                                                                                              else{
                                                                                                                                                                   cout<<"Ai decis sa iesi ! "<<endl;
		                                                                                                                                                           }
                                                     }



                    break;
                      case 2:
                      scadere();
                    break;
                      case 3:
                      inmultire();
                    break;
                      case 4:
                      impartire();
                    break;
                      case 5:
                              cout<<"la revedere\n";
                    break;
                    default:
                              cout<<"eroare,nu exista acest carecter\n";
                    break;
                  }
  cin.get();
                }

  }



MA PUTETI AJUTA ?

Re: problema de incepator ..:(

Posted: 12 Aug 2013, 15:32
by Marius Bancila
Pai ce e asta?

Code: Select all

{
  int input;
  char continuare[10];
E un block are nu tine de nimic. Banuiesc ca acolo ar trebuie sa fie functia main.

Code: Select all

int main()
{
  int input;
  char continuare[10];

Re: problema de incepator ..:(

Posted: 13 Aug 2013, 15:03
by alexandru plesa
daca pun int main() ..
imi zice: invalid conversion from 'char' to 'const char * '

Re: problema de incepator ..:(

Posted: 13 Aug 2013, 18:35
by Ovidiu Cucu
Pana una alta ai oaresce probleme cu parantezele. Ai deschis o acolada dupa primul case, pe care ai uitat s-o inchizi inainte de (sau imediat dupa) break ceea ce-ti genereaza un carnat de erori. Iar problemele nu se opresc aici.
Uite, ti-am pus eu paranteza si am aranjat un pic codul ca sa putem vedea ce-i acolo. Incearca de acum inainte sa faci si tu la fel, adica sa pui spatii in loc de taburi pentru indentari si sa deschizi/inchizi acoladele la linie noua.

Cam asa:

Code: Select all

int main()
{
    int input;
    char continuare[10];

    cout << "1. adunare\n";
    cout << "2. scadere\n";
    cout << "3. inmultire\n";
    cout << "4. impartire\n";
    cout << "5. iesi\n";
    cout << "alegere\n: ";
    cin >> input;
    switch(input) 
    {
    case 1:
        {
            float input = 1;
            float input2 = 1;
            float sum = 0;
            while(input != 0)
            {
                cout << "introdu un numar :" <<  endl;
                cin >> input;
                cout << "introdu al doilea numar : " << endl;
                cin >> input2;
                sum += input + input2;
                cout << "suma este :" << sum << endl;

                while(sum >= 0) // <--- aici ai bucla infinita
                    cout << "vrei sa calculezi din nou ? (DA,NU) "<< endl; 
                cin >> continuare;
                if(strcmp("DA", continuare) == 0 || strcmp("da", continuare) == 0)
                {
                    cout << "introdu un numar :" <<  endl;
                    cin >> input;
                    cout << "introdu al doilea numar : "<<endl;
                    cin >> input2;
                    sum += input + input2;
                    cout << "suma este :" << sum << endl;
                }
                else
                {
                    cout<<"Ai decis sa iesi ! "<<endl;
                }
            }
        } // <--- paranteza asta ai utat-o
        break;
    case 2:
        scadere();
        break;
    case 3:
        inmultire();
        break;
    case 4:
        impartire();
        break;
    case 5:
        cout << "la revedere\n";
        break;
    default:
        cout << "eroare,nu exista acest carecter\n";
        break;
    }
    cin.get();

    return 0;
}
Acuma parca se vede mai bine flow-ul si eventualele greseli, nu-i asa?
Sare in primul rand in ochi bucla infinita de dupa while(sum >= 0). Si aici ai uitat niste paranteze.
Oricum se vede si ca ai while-urile alea puse aiurea, daca asa cum banui, vrei sa iesi din bucla atunci cand utilizatorul intoduce "NU" sau "nu".
Si mai sunt...

Mai incearca, in primul rand sa scrii ordonat, apoi se rezolva.