[C++] Problem z dodaniem procedur do programu

Mam oto taki program i nie wiem czemu pojawia mi się tyle błędów wiem że jest tam więcej zmiennych niż jest użytych ale ten program jest okropny o 1 cześć

#include

#include

int main()


{

    using namespace std;

    int liczba3,liczba4,liczba5,liczba6,liczba7,liczba8,liczba9,liczba10,liczba11,a,b,x,c,del,del1,x1,x2,x0,p,h,ob;



    cout<<"Wybierz: 1-Figura, 2-Bryła: ";

    cin>>liczba;

    switch(liczba);

    {


                        case 1:


                        cout<<"Wybierz funkcja: 1-kwadrat, 2-prostokat, 3-rownoleglobok: ";

                        cin>>liczba3;

                        switch(liczba3);

                        {

                         case 1:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba5;

                              switch(liczba5);

                              {

                              case 1:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   p=a*a;

                                   cout<<"Pole rowna jest: "<

                                   

                                 break;

                              case 2:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   ob=4*a;

                                   cout<<"Obwod rowna sie: "<

                              break;


                          break;

                         case 2:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba6;

                              switch(liczba6);

                              {

                              case 1:


                              cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              p=a*b;

                              cout<<"Pole rowna sie: "<

                              

                              break;

                              case 2:


                                   cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              ob=2*a+2*b;

                              cout<<"Obwod rowna sie: "<

                              break;

                         case 3:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba7;

                              switch(liczba7);

                              case 1:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                   p=a*h;

                                   cout<<"Pole rowna jest: "<

                                   

                                   break;

                               case 2:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   cout<<"Podaj wysokosc b: ";

                                   cin>>b;

                                   ob=2*a+2*b;

                                   cout<<"Obwod rowna sie: "<

                              break;


                           break;

                     case 2:

                         cout<<"Wybierz funkcja: 1-prostopoadloscian, 2-szescian, 3-ostroslup: ";

                        cin>>liczba8;

                        switch(liczba8)

                        {

                       case 1:  


                           cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba9;

                              switch(liczba9);

                              {

                              case 1:


                             cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                              p=(2*a*b)+(2*a*h)+(2*b*h);

                              cout<<"Pole rowna sie: "<

                              

                             break;

                             case 2:


                                  cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                              ob=a*b*h;

                              cout<<"Obwod rowna sie: "<

                              break;


                           break;  

                          case 2:


                               cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba10;

                              switch(liczba10);

                              {

                            case 1:


                                 cout<<"Podaj bok a: ";

                              cin>>a;

                              p=6*(a*a);

                              cout<<"Pole rowna sie: "<

                              

                              break;

                            case 2:


                                 cout<<"Podaj bok a: ";

                              cin>>a;

                              ob=a*a*a;

                            cout<<"Obwod rowna sie: "<

                            break;


                            break;

                          case 3:


                               cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba11;

                              switch(liczba11);

                              {

                            case 1: 


                                    cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj wysokosc boku: ";

                              cin>>b;


                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                   p=(a*a)+2*a*b;


                                   break;

                             case 2:


                                  cout<<"Podaj bok a: ";

                              cin>>a;


                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                 ob=((a*a)*h)/3;


                                 break;


                                 break;



                           system("PAUSE");

                           }

A tu błędy

Compiler: Default compiler

Executing g++.exe...

g++.exe "H:\Tomalla Adam\zobaczymy.cpp" -o "H:\Tomalla Adam\zobaczymy.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" 

In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,

                 from H:\Tomalla Adam\zobaczymy.cpp:1:

C:/Dev-Cpp/include/c++/3.4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the header for the header for C++ includes, or instead of the deprecated header . To disable this warning use -Wno-deprecated.


H:\Tomalla Adam\zobaczymy.cpp: In function `int main()':

H:\Tomalla Adam\zobaczymy.cpp:11: error: `liczba' undeclared (first use this function)

H:\Tomalla Adam\zobaczymy.cpp:11: error: (Each undeclared identifier is reported only once for each function it appears in.)


H:\Tomalla Adam\zobaczymy.cpp:15: error: case label `1' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:21: error: case label `1' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:27: error: case label `1' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:34: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:35: error: case label `2' not within a switch statement


H:\Tomalla Adam\zobaczymy.cpp:42: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:44: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:45: error: case label `2' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:51: error: case label `1' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:60: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:61: error: case label `2' not within a switch statement


H:\Tomalla Adam\zobaczymy.cpp:70: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:71: error: case label `3' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:76: error: case label `1' not within a switch statement


H:\Tomalla Adam\zobaczymy.cpp:85: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:86: error: case label `2' not within a switch statement

H:\Tomalla Adam\zobaczymy.cpp:95: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:97: error: break statement not within loop or switch

H:\Tomalla Adam\zobaczymy.cpp:98: error: case label `2' not within a switch statement


H:\Tomalla Adam\zobaczymy.cpp:109: error: duplicate case value


H:\Tomalla Adam\zobaczymy.cpp:103: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:135: error: duplicate case value


H:\Tomalla Adam\zobaczymy.cpp:121: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:141: error: duplicate case value


H:\Tomalla Adam\zobaczymy.cpp:109: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:149: error: duplicate case value


H:\Tomalla Adam\zobaczymy.cpp:135: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:165: error: duplicate case value


H:\Tomalla Adam\zobaczymy.cpp:141: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:177: error: duplicate case value


H:\Tomalla Adam\zobaczymy.cpp:149: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input

H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input


H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input

H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input


H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input

H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input


H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input

H:\Tomalla Adam\zobaczymy.cpp:192: error: expected `}' at end of input


Execution terminated

wczytujesz dane do zmiennej liczba której nie zadeklarowałeś. Po za tym masz pootwierane klamry “{” i nie zamykasz ich(9 otwierających i jedna zamykająca to o jakieś 8 za mało :wink: )

Tu jest jeszcze więcej błędów. Po switch(liczba) nie dajemy średnika. Niepotrzebnie duża ilość zmiennych…

#include - to jest jakiś przestarzały śmieć. Powinno być #include

#include - to nie jest błędem, ale w c++ jest lepiej, jeżeli użyjesz #include

Jeżeli zmienne liczba3,liczba4,liczba5,… służą tylko do wyboru menu, to możesz użyć do tego jednej zmiennej.

Nawet nie zwróciłem uwagi na nie właściwe includy.

@Adams911 popraw te błędy które wymieniłem i będzie działać. Również jeszcze zmienne powinno się raczej inicjalizować. Do tego w cout nie wykorzystuj polski znaków, gdyż Ci się krzaczki będą wyświetlać.

Po zmianach zostało tylko

Compiler: Default compiler

Executing g++.exe...

g++.exe "H:\Tomalla Adam\zobaczymy.cpp" -o "H:\Tomalla Adam\zobaczymy.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" 

H:\Tomalla Adam\zobaczymy.cpp: In function `int main()':

H:\Tomalla Adam\zobaczymy.cpp:87: error: duplicate case value

H:\Tomalla Adam\zobaczymy.cpp:45: error: previously used here


H:\Tomalla Adam\zobaczymy.cpp:100: error: case label `2' not within a switch statement


Execution terminated

A program wygląda tak:

#include

#include

int main()


{

    using namespace std;

    int liczba4,liczba5,liczba6,liczba7,liczba8,liczba9,liczba10,liczba11,a,b,x,c,del,del1,x1,x2,x0,p,h,ob,liczba,liczba3;



    cout<<"Wybierz: 1-Figura, 2-Bryła: ";

    cin>>liczba;

    switch(liczba)

    {


                        case 1:


                        cout<<"Wybierz funkcja: 1-kwadrat, 2-prostokat, 3-rownoleglobok: ";

                        cin>>liczba3;

                        switch(liczba3)

                        {

                         case 1:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba5;

                              switch(liczba5)

                              {

                              case 1:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   p=a*a;

                                   cout<<"Pole rowna jest: "<

                                   

                                 break;

                              case 2:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   ob=4*a;

                                   cout<<"Obwod rowna sie: "<

                              break;

                              }

                          break;

                         case 2:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba6;

                              switch(liczba6)

                              {

                              case 1:


                              cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              p=a*b;

                              cout<<"Pole rowna sie: "<

                              

                              break;

                              case 2:


                                   cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              ob=2*a+2*b;

                              cout<<"Obwod rowna sie: "<

                              break;

                              }

                         case 3:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba7;

                              switch(liczba7)

                              case 1:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                   p=a*h;

                                   cout<<"Pole rowna jest: "<

                                   

                                   break;

                               case 2:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   cout<<"Podaj wysokosc b: ";

                                   cin>>b;

                                   ob=2*a+2*b;

                                   cout<<"Obwod rowna sie: "<

                              break;

                              }

                           break;

                           }

                     case 2:

                         cout<<"Wybierz funkcja: 1-prostopoadloscian, 2-szescian, 3-ostroslup: ";

                        cin>>liczba8;

                        switch(liczba8)

                        {

                       case 1:  


                           cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba9;

                              switch(liczba9)

                              {

                              case 1:


                             cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                              p=(2*a*b)+(2*a*h)+(2*b*h);

                              cout<<"Pole rowna sie: "<

                              

                             break;

                             case 2:


                                  cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                              ob=a*b*h;

                              cout<<"Obwod rowna sie: "<

                              break;

                              }

                           break;  

                          case 2:


                               cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba10;

                              switch(liczba10)

                              {

                            case 1:


                                 cout<<"Podaj bok a: ";

                              cin>>a;

                              p=6*(a*a);

                              cout<<"Pole rowna sie: "<

                              

                              break;

                            case 2:


                                 cout<<"Podaj bok a: ";

                              cin>>a;

                              ob=a*a*a;

                            cout<<"Obwod rowna sie: "<

                            break;

                            }

                            break;

                          case 3:


                               cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba11;

                              switch(liczba11)

                              {

                            case 1: 


                                    cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj wysokosc boku: ";

                              cin>>b;


                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                   p=(a*a)+2*a*b;


                                   break;

                             case 2:


                                  cout<<"Podaj bok a: ";

                              cin>>a;


                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                 ob=((a*a)*h)/3;


                                 break;

                                 }

                                 break;

                                 }


                           system("PAUSE");

                           }

P.S Jak to zrobić za pomocą procedur?

Dalej masz bałagan w nawiasach klamrowych. Po switch(liczba7) otwórz nawias. Ostatni błąd na pewno już sam naprawisz :wink:

A i jeszcze brakuje Ci break przed instrukcja case 2: w linii 101. Do tego zmniejsz liczbę zmiennych zgodnie z radą @etam.

Dziękuje działa a da rade jakoś wprowadzić tam procedury?

Da rade.

A raczej jak to zrobić bo niestety nie było mnie na tej lekcji w szkole i nie wiem wogóle jak się za to zabrać. Wiem tyle że ma liczyć w procedurach a tylko na końcu w switchu pokazywać wyniki

Dodane 20.04.2012 (Pt) 11:18

Program teraz wygląda tak

#include

#include

int main()


{

    using namespace std;

    int a,b,x,c,del,del1,x1,x2,x0,p,h,ob,liczba;



    cout<<"Wybierz: 1-Figura, 2-Bryl: ";

    cin>>liczba;

    switch(liczba)

    {


                        case 1:


                        cout<<"Wybierz funkcja: 1-kwadrat, 2-prostokat, 3-rownoleglobok: ";

                        cin>>liczba;

                        switch(liczba)

                        {

                         case 1:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwod: ";

                              cin>>liczba;

                              switch(liczba)

                              {

                              case 1:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   p=a*a;

                                   cout<<"Pole rowna jest: "<

                                   

                                 break;

                              case 2:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   ob=4*a;

                                   cout<<"Obwod rowna sie: "<

                              break;

                              }

                          break;

                         case 2:


                              cout<<"CO chcesz liczyc 1-pole, 2-obwod: ";

                              cin>>liczba;

                              switch(liczba)

                              {

                              case 1:


                              cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              p=a*b;

                              cout<<"Pole rowna sie: "<

                              

                              break;

                              case 2:


                                   cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              ob=2*a+2*b;

                              cout<<"Obwod rowna sie: "<

                              break;

                              }

                         case 3:


                              cout<<"CO chcesz liczyć 1-pole, 2-obwod: ";

                              cin>>liczba;

                              switch(liczba)

                              {

                              case 1:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                   p=a*h;

                                   cout<<"Pole rowna jest: "<

                                   

                                   break;

                               case 2:


                                   cout<<"Podaj bok a: ";

                                   cin>>a;

                                   cout<<"Podaj wysokosc b: ";

                                   cin>>b;

                                   ob=2*a+2*b;

                                   cout<<"Obwod rowna sie: "<

                              break;

                              }

                           break;

                           }

                     case 2:

                         cout<<"Wybierz funkcja: 1-prostopoadloscian, 2-szescian, 3-ostroslup: ";

                        cin>>liczba;

                        switch(liczba)

                        {

                       case 1:  


                           cout<<"CO chcesz liczyć 1-pole, 2-obwód: ";

                              cin>>liczba;

                              switch(liczba)

                              {

                              case 1:


                             cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                              p=(2*a*b)+(2*a*h)+(2*b*h);

                              cout<<"Pole rowna sie: "<

                              

                             break;

                             case 2:


                                  cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj bok b: ";

                              cin>>b;

                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                              ob=a*b*h;

                              cout<<"Obwod rowna sie: "<

                              break;

                              }

                           break;  

                          case 2:


                               cout<<"CO chcesz liczyć 1-pole, 2-obwod: ";

                              cin>>liczba;

                              switch(liczba)

                              {

                            case 1:


                                 cout<<"Podaj bok a: ";

                              cin>>a;

                              p=6*(a*a);

                              cout<<"Pole rowna sie: "<

                              

                              break;

                            case 2:


                                 cout<<"Podaj bok a: ";

                              cin>>a;

                              ob=a*a*a;

                            cout<<"Obwod rowna sie: "<

                            break;

                            }

                            break;

                          case 3:


                               cout<<"CO chcesz liczyć 1-pole, 2-obwod: ";

                              cin>>liczba;

                              switch(liczba)

                              {

                            case 1: 


                                    cout<<"Podaj bok a: ";

                              cin>>a;

                              cout<<"Podaj wysokosc boku: ";

                              cin>>b;


                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                   p=(a*a)+2*a*b;


                                   break;

                             case 2:


                                  cout<<"Podaj bok a: ";

                              cin>>a;


                              cout<<"Podaj wysokosc h: ";

                                   cin>>h;

                                 ob=((a*a)*h)/3;


                                 break;

                                 }

                                 break;

                                 }


                           system("PAUSE");

                           }

                           }

Poczytaj sobie o procedurach/funkcjach c++ i na pewno szybko sam to napiszesz. To na prawdę w tym przypadku godzinka, może dwie żeby to ogarnąć. Jak coś zrobisz i pojawi się problem to wtedy napisz, a ktoś Ci na pewno pomoże.

Adams911 ,

Zapoznaj się z tematem i popraw tytuł tematu na konkretny, mówiący o problemie. W celu dokonania zaleconej korekty proszę użyć przycisku Edytuj przy poście otwierającym ten temat.

Zignorowanie zalecenia będzie skutkowało usunięciem tematu do Kosza.