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.htmlProsze o pomoc bo naprawde zalezy mi by ten program zadzialal! |
|
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(); )
|
|
StrusDoggyDogg Temat założony przez niniejszego użytkownika |
» 2008-07-12 21:01:39 Oto caly kod programu: #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 ); } |
|
lynx |
xD » 2008-07-12 21:13:16 Liczby(litery też) w case musisz podać w ''. Czyli, np. switch( znak ) { case '1': break; case '2': break; }
Zamień i powiedz czy jest już ok. |
|
StrusDoggyDogg Temat założony przez niniejszego użytkownika |
» 2008-07-13 19:32:35 #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 |
|
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 #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 ); }
|
|
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: #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; int kolorTekstu = 10; 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; int kolorTekstu = 11; 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; int kolorTekstu = 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 ); } |
|
« 1 » |