Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

error: jump to case label

Ostatnio zmodyfikowano 2008-07-13 20:53
Autor Wiadomość
StrusDoggyDogg
Temat założony przez niniejszego użytkownika
error: jump to case label
» 2008-07-12 19:54:02
Witam! Jestem nowy, programowania w C++ ucze sie od 3-4dni. Chcialem zrobic jakis maly program jako podsumowanie tego co dotychczas sie nauczylem. Niestety podczas kompilacji wyskakuje mi blad ktorego wogole nie rozumiem:

http://www.fotosik.pl/pokaz_obrazek/7e169e5fa2db1e93.html

Prosze o pomoc bo naprawde zalezy mi by ten program zadzialal!
P-962
lynx
» 2008-07-12 20:57:23
A czy mógłbyś zamieścić cały kod programu, bo tak to nie zabardzo co widać.

Aha spytam jeszcze czy masz tam gdzieś funkcję switch(),  i czy zadeklarowałeś zmeinną esc (  esc=getch();  )
P-965
StrusDoggyDogg
Temat założony przez niniejszego użytkownika
» 2008-07-12 21:01:39
Oto caly kod programu:


C/C++
#include <iostream>
#include <conio.h>
#include "console.ddt"
using namespace ddt::console;
using namespace std;
int main()
{
    unsigned char esc;
   
    do
    {
        cout << "Co chcesz zrobic:" << endl;
        cout << "[1]Policzyc srednia" << endl;
        cout << "[2]Wykonac jakies dzialanie na dwoch liczbach" << endl;
        cout << "[3]Policzyc ilosc znakow w danym wyrazie/zdaniu" << endl;
        int wybor;
        cout << "Wybieram: ";
        cin >> wybor;
        clrscr();
        switch( wybor )
        {
        case 1:
            cout << "OK" << endl;
            cout << "Aby zakonczyc wprowadzanie liczb i obliczyc srednia w miejscu liczby wpisz 0." << endl;
            int ilosc = 0;
            float ocena;
            float srednia = 0;
            do
            {
                cout << "Podaj liczbe nr. " << ilosc + 1 << " (lub 0 by zakonczyc wprowadzanie): ";
                cin >> ocena;
                if( ocena > 0 )
                {
                    ilosc += 1;
                    srednia += ocena;
                }
            } while( ocena != 0 );
           
            if( ilosc > 0 ) srednia /= ilosc;
           
            cout << "Srednia tych " << ilosc << " liczb to: " << srednia << endl;
            getch();
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
            break;
        case 2:
            cout << "OK" << endl;
            float a;
            float b;
            cout << "Wprowadz pierwsza liczbe: ";
            cin >> a;
            cout << "Wprowadz druga liczbe: ";
            cin >> b;
            cout << "Co chcesz zrobic:" << endl
            cout << "[1]Dodac liczby do siebie" << endl;
            cout << "[2]Odjac liczby od siebie" << endl;
            cout << "[3]Pomnozyc te liczby" << endl;
            cout << "[4]Podzielic te liczby" << endl;
            cout << "[5]Dodac do siebie liczby podniesione do kwadratu" << endl;
            int wyb;
            cout << "Wybieram: ";
            cin >> wyb;
            switch( wyb )
            {
            case 1:
                cout << "Wynik: " << a + b << endl;
                getch();
                break;
            case 2:
                cout << "Wynik: " << a - b << endl;
                getch();
                break;
            case 3:
                cout << "Wynik: " << a * b << endl;
                getch();
                break;
            case 4:
                cout << "Wynik: " << a / b << endl;
                getch();
                break;
            case 5:
                cout << "Wynik: " <<( a * a ) +( b * b ) << endl;
                getch();
                break;
            }
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
            break;
        case 3:
            cout << "OK" << endl;
            cout << "Aby zakonczyc wprowadzanie wyrazow wpisz 'koniec'." << endl;
            char wyraz[ 200 ];
            do
            {
                cout << "Wprowadz wyraz lub zdanie: ";
                cin >> wyraz;
                int dlugosc = strlen( wyraz )
                cout << "Wprowadzony wyraz/zdanie ma " << dlugosc << " znakow" << endl;
            } while( wyraz != koniec )
                 cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
           
            getch();
            esc = getch();
            break;
            default: cout << "Mozliwosc nie istnieje." << endl;
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
        } while( esc != 27 );
       
        return( 0 );
    }
P-966
lynx
xD
» 2008-07-12 21:13:16
Liczby(litery też) w case musisz podać w ''. Czyli, np.
C/C++
//...
switch( znak ) {
   
case '1':
    //funkcje
    break;
   
case '2':
    //funkcje
    break;
}
//...



Zamień i powiedz czy jest już ok.
P-967
StrusDoggyDogg
Temat założony przez niniejszego użytkownika
» 2008-07-13 19:32:35
C/C++
#include <iostream>
#include <conio.h>
#include "console.ddt"
using namespace ddt::console;
using namespace std;
int main()
{
    unsigned char esc;
   
    do
    {
        cout << "Co chcesz zrobic:" << endl;
        cout << "[1]Policzyc srednia" << endl;
        cout << "[2]Wykonac jakies dzialanie na dwoch liczbach" << endl;
        cout << "[3]Policzyc ilosc znakow w danym wyrazie/zdaniu" << endl;
        int wybor;
        cout << "Wybieram: ";
        cin >> wybor;
        clrscr();
        switch( wybor )
        {
        case '1':
            cout << "OK" << endl;
            cout << "Aby zakonczyc wprowadzanie liczb i obliczyc srednia w miejscu liczby wpisz 0." << endl;
            int ilosc = 0;
            float ocena;
            float srednia = 0;
            do
            {
                cout << "Podaj liczbe nr. " << ilosc + 1 << " (lub 0 by zakonczyc wprowadzanie): ";
                cin >> ocena;
                if( ocena > 0 )
                {
                    ilosc += 1;
                    srednia += ocena;
                }
            } while( ocena != 0 );
           
            if( ilosc > 0 ) srednia /= ilosc;
           
            cout << "Srednia tych " << ilosc << " liczb to: " << srednia << endl;
            getch();
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
            break;
        case '2':
            cout << "OK" << endl;
            float a;
            float b;
            cout << "Wprowadz pierwsza liczbe: ";
            cin >> a;
            cout << "Wprowadz druga liczbe: ";
            cin >> b;
            cout << "Co chcesz zrobic:" << endl
            cout << "[1]Dodac liczby do siebie" << endl;
            cout << "[2]Odjac liczby od siebie" << endl;
            cout << "[3]Pomnozyc te liczby" << endl;
            cout << "[4]Podzielic te liczby" << endl;
            cout << "[5]Dodac do siebie liczby podniesione do kwadratu" << endl;
            int wyb;
            cout << "Wybieram: ";
            cin >> wyb;
            switch( wyb )
            {
            case '1':
                cout << "Wynik: " << a + b << endl;
                getch();
                break;
            case '2':
                cout << "Wynik: " << a - b << endl;
                getch();
                break;
            case '3':
                cout << "Wynik: " << a * b << endl;
                getch();
                break;
            case '4':
                cout << "Wynik: " << a / b << endl;
                getch();
                break;
            case '5':
                cout << "Wynik: " <<( a * a ) +( b * b ) << endl;
                getch();
                break;
            }
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
            break;
        case 3:
            cout << "OK" << endl;
            cout << "Aby zakonczyc wprowadzanie wyrazow wpisz 'koniec'." << endl;
            char wyraz[ 200 ];
            do
            {
                cout << "Wprowadz wyraz lub zdanie: ";
                cin >> wyraz;
                int dlugosc = strlen( wyraz )
                cout << "Wprowadzony wyraz/zdanie ma " << dlugosc << " znakow" << endl;
            } while( wyraz != koniec )
                 cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
           
            getch();
            esc = getch();
            break;
            default: cout << "Mozliwosc nie istnieje." << endl;
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
        } while( esc != 27 );
       
        return( 0 );
    }
   
   
Nadal przy case 2 pojawia sie problem: jump to case label
P-972
DejaVu
» 2008-07-13 20:21:06
Jeśli chcesz deklarować zmienne w case, musisz opakowywać je w bloki - poniżej masz sprawny Twój przykład

C/C++
#include <iostream>
#include <conio.h>
#include "console.ddt"
using namespace ddt::console;
using namespace std;
int main()
{
    unsigned char esc;
   
    do
    {
        cout << "Co chcesz zrobic:" << endl;
        cout << "[1]Policzyc srednia" << endl;
        cout << "[2]Wykonac jakies dzialanie na dwoch liczbach" << endl;
        cout << "[3]Policzyc ilosc znakow w danym wyrazie/zdaniu" << endl;
        int wybor;
        cout << "Wybieram: ";
        cin >> wybor;
        clrscr();
        switch( wybor )
        {
        case '1':
            {
                cout << "OK" << endl;
                cout << "Aby zakonczyc wprowadzanie liczb i obliczyc srednia w miejscu liczby wpisz 0." << endl;
                int ilosc = 0;
                float ocena;
                float srednia = 0;
                do
                {
                    cout << "Podaj liczbe nr. " << ilosc + 1 << " (lub 0 by zakonczyc wprowadzanie): ";
                    cin >> ocena;
                    if( ocena > 0 )
                    {
                        ilosc += 1;
                        srednia += ocena;
                    }
                } while( ocena != 0 );
               
                if( ilosc > 0 ) srednia /= ilosc;
               
                cout << "Srednia tych " << ilosc << " liczb to: " << srednia << endl;
                getch();
                cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
                getch();
                esc = getch();
            }
            break;
        case '2':
            {
                cout << "OK" << endl;
                float a;
                float b;
                cout << "Wprowadz pierwsza liczbe: ";
                cin >> a;
                cout << "Wprowadz druga liczbe: ";
                cin >> b;
                cout << "Co chcesz zrobic:" << endl;
                cout << "[1]Dodac liczby do siebie" << endl;
                cout << "[2]Odjac liczby od siebie" << endl;
                cout << "[3]Pomnozyc te liczby" << endl;
                cout << "[4]Podzielic te liczby" << endl;
                cout << "[5]Dodac do siebie liczby podniesione do kwadratu" << endl;
                int wyb;
                cout << "Wybieram: ";
                cin >> wyb;
                switch( wyb )
                {
                case '1':
                    cout << "Wynik: " << a + b << endl;
                    getch();
                    break;
                case '2':
                    cout << "Wynik: " << a - b << endl;
                    getch();
                    break;
                case '3':
                    cout << "Wynik: " << a * b << endl;
                    getch();
                    break;
                case '4':
                    cout << "Wynik: " << a / b << endl;
                    getch();
                    break;
                case '5':
                    cout << "Wynik: " <<( a * a ) +( b * b ) << endl;
                    getch();
                    break;
                }
                cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
                getch();
                esc = getch();
            }
            break;
        case 3:
            {
                cout << "OK" << endl;
                cout << "Aby zakonczyc wprowadzanie wyrazow wpisz 'koniec'." << endl;
                char wyraz[ 200 ];
                do
                {
                    cout << "Wprowadz wyraz lub zdanie: ";
                    cin >> wyraz;
                    int dlugosc = strlen( wyraz );
                    cout << "Wprowadzony wyraz/zdanie ma " << dlugosc << " znakow" << endl;
                } while( strcmp( wyraz, "koniec" ) != 0 );
               
                cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
                getch();
                esc = getch();
            }
            break;
            default: cout << "Mozliwosc nie istnieje." << endl;
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            getch();
            esc = getch();
        }
    } while( esc != 27 );
   
    return( 0 );
}
P-974
StrusDoggyDogg
Temat założony przez niniejszego użytkownika
» 2008-07-13 20:53:21
Dzieki wszystkim! Poprawilem jeszcze kilka rzeczy i program dziala. Moze nie jest to jakies dzielo sztuki ale w koncu ucze sie programowania dopiero od kilku dni ;-)
Oto program:

C/C++
#include <iostream>
#include <conio.h>
#include "console.ddt"
using namespace ddt::console;
using namespace std;
int main()
{
    unsigned char esc;
   
    do
    {
        clrscr();
        cout << "Co chcesz zrobic:" << endl;
        cout << "[1]Policzyc srednia" << endl;
        cout << "[2]Wykonac jakies dzialanie na dwoch liczbach" << endl;
        cout << "[3]Policzyc ilosc znakow w danym wyrazie,ciagu liczb lub liter" << endl;
        int wybor;
        cout << "Wybieram: ";
        cin >> wybor;
        clrscr();
        switch( wybor )
        {
        case 1:
            {
                int kolorTla = 4; //min wartosc=0; max wartosc=15;
                int kolorTekstu = 10; //min wartosc=0; max wartosc=15;
                ddt::console::textattr( kolorTla * 16 + kolorTekstu );
                cout << "OK" << endl;
                cout << "Aby zakonczyc wprowadzanie liczb i obliczyc srednia w miejscu liczby wpisz 0." << endl;
                int ilosc = 0;
                float ocena;
                float srednia = 0;
                do
                {
                    cout << "Podaj liczbe nr. " << ilosc + 1 << " (lub 0 by zakonczyc wprowadzanie): ";
                    cin >> ocena;
                    if( ocena > 0 )
                    {
                        ilosc += 1;
                        srednia += ocena;
                    }
                } while( ocena != 0 );
               
                if( ilosc > 0 ) srednia /= ilosc;
               
                cout << "Srednia tych " << ilosc << " liczb to: " << srednia << endl;
                getch();
                cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
                esc = getch();
            }
            break;
        case 2:
            {
                int kolorTla = 2; //min wartosc=0; max wartosc=15;
                int kolorTekstu = 11; //min wartosc=0; max wartosc=15;
                ddt::console::textattr( kolorTla * 16 + kolorTekstu );
                cout << "OK" << endl;
                float a;
                float b;
                cout << "Wprowadz pierwsza liczbe: ";
                cin >> a;
                cout << "Wprowadz druga liczbe: ";
                cin >> b;
                cout << "Co chcesz zrobic:" << endl;
                cout << "[1]Dodac liczby do siebie" << endl;
                cout << "[2]Odjac liczby od siebie" << endl;
                cout << "[3]Pomnozyc te liczby" << endl;
                cout << "[4]Podzielic te liczby" << endl;
                cout << "[5]Dodac do siebie liczby podniesione do kwadratu" << endl;
                int wyb;
                cout << "Wybieram: ";
                cin >> wyb;
                switch( wyb )
                {
                case 1:
                    cout << "Wynik: " << a + b << endl;
                    getch();
                    break;
                case 2:
                    cout << "Wynik: " << a - b << endl;
                    getch();
                    break;
                case 3:
                    cout << "Wynik: " << a * b << endl;
                    getch();
                    break;
                case 4:
                    cout << "Wynik: " << a / b << endl;
                    getch();
                    break;
                case 5:
                    cout << "Wynik: " <<( a * a ) +( b * b ) << endl;
                    getch();
                    break;
                }
                cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
                esc = getch();
            }
            break;
        case 3:
            {
                int kolorTla = 6; //min wartosc=0; max wartosc=15;
                int kolorTekstu = 15; //min wartosc=0; max wartosc=15;
                ddt::console::textattr( kolorTla * 16 + kolorTekstu );
                cout << "OK" << endl;
                char wyraz[ 200 ];
                cout << "Wprowadz znaki: ";
                cin >> wyraz;
                int dlugosc = strlen( wyraz );
                cout << "Wprowadzono " << dlugosc << " znakow" << endl;
                cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
                esc = getch();
            }
            break;
            default: cout << "Mozliwosc nie istnieje." << endl;
            cout << "Aby wyjsc z programu nacisnij [ESC], aby powtorzyc dowolna operacje nacisnij inny klawisz." << endl;
            esc = getch();
        }
    } while( esc != 27 );
   
    return( 0 );
}
P-976
« 1 »
  Strona 1 z 1