123mamut Temat założony przez niniejszego użytkownika |
[kompilacja] switch/case » 2009-07-23 12:05:06 Witam pisze program z menu w switch i kiedy doszedłem do case 10 to program tego nie chce skomplikować z tego co wiem to nie chce ponieważ w 10 jest jeden a jeden jest już używane chodzi mi o to jaka zmienna jest potrzebna żeby szło dawać od 10 w zwysz |
|
DejaVu |
» 2009-07-23 12:07:43 skompilować, a nie skomplikować :) Wklej nam tego switch'a. |
|
123mamut Temat założony przez niniejszego użytkownika |
» 2009-07-23 12:46:51 switch( znak ) { case '1': cout << "Podaj pierwsza liczbe\n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; Dodawanie( a, b ); break; case '2': cout << "Podaj pierwsza liczbe\n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; Odejmowanie( a, b ); break; case '3': cout << "Podaj pierwsza liczbe \n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; Mnozenie( a, b ); break; case '4': cout << "Podaj pierwsza liczbe \n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; case '5': cout << "Podaj dlugosc boku kwadratu\n"; cin >> a; Kwadrat( a ); break; case '6': cout << "Podaj dlugosc boku rombu\n"; cin >> a; cout << "Podaj wysokość rombu\n"; cin >> h; Romb( a, h ); break; case '7': cout << "Podaj bok a (krotszy bok)\n"; cin >> a; cout << "Podaj bok b (dluszy bok)\n"; cin >> b; Prostokad( a, b ); break; case '8': cout << "Podaj bok a\n"; cin >> a; cout << "Podaj wysokosc\n"; cin >> h; Rownoleglobok( a, h ); break; case '9': cout << "Podaj bok a (krotszy)\n"; cin >> a; cout << "podaj bok b\n"; cin >> b; cout << "Podaj wysokosc\n"; cin >> h; Trapez( a, b, h ); break; case '10': cout << "Podaj dlugosc boku\n"; cin >> a; cout << "Podaj wysokosc\n"; cin >> h; Trojkat( a, h ); break;
|
|
DejaVu |
» 2009-07-23 12:54:58 Znak ma 1 bajt. Ty napisałeś, że znak ma mieć 2 bajty na co kompilator się oburzył. Musisz napisać: int liczba; cin >> liczba; switch( liczba ) { case 10: break; } Drugą opcją jest wczytywanie do string'a i konwertowanie go na liczbę. |
|
123mamut Temat założony przez niniejszego użytkownika |
» 2009-07-23 13:37:54 dodałem nad switch int liczba; cin >>liczba i przy switchu z znak zmieniłem na liczba tera mi niby działa ale jak z menu wybiorę 10 to program wskakuje na default i pisze że zrobiłem coś złego(nie wiem czy chodziło ci o to zmianę w programie ponieważ jestem początkującym xD) |
|
GoldWolf |
» 2009-07-23 13:56:13 Więc albo wkleisz cały kod byśmy zobaczyli co się dzieje. Możesz również rzucić okiem na kurs XII. Warunek wielokrotnego wyboru switch ... case -> i użyć enumeratora. Tak trudno coś określić. |
|
123mamut Temat założony przez niniejszego użytkownika |
» 2009-07-23 14:03:17 #include <iostream> #include <conio.h> #include <string> #define PI 3.14
using namespace std;
void Dodawanie( double, double ); void Odejmowanie( double, double );
void Mnozenie( double, double ); void Dzielenie( double, double ); void Potengowanie( double, double ); void Kwadrat( double ); void Romb( double, double ); void Prostokad( double, double ); void Rownoleglobok( double, double ); void Trapez( double, double, double ); void Kolo( double ); void Trojkat( double, double ); void Kolo( double, double );
int main() { bool TN = true; cout << "KALKULATOR\n"; cout << " (1) DODAWANIE\n"; cout << " (2) ODEJMOWANIE\n"; cout << " (3) MNOZENIE\n"; cout << " (4) DZIELENIE\n"; cout << " POLA FIGUR\n"; cout << " (5) POLE KWADRATU\n"; cout << " (6) ROMB\n"; cout << " (7) PROSTOKAD\n"; cout << " (8) ROWNOLEGŁOBOK\n"; cout << " (9) TRAPEZ\n"; cout << " (10) TROJKAT\n"; double a, b, h, r; char znak; cin >> znak; switch( znak ) { case '1': cout << "Podaj pierwsza liczbe\n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; Dodawanie( a, b ); break; case '2': cout << "Podaj pierwsza liczbe\n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; Odejmowanie( a, b ); break; case '3': cout << "Podaj pierwsza liczbe \n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; Mnozenie( a, b ); break; case '4': cout << "Podaj pierwsza liczbe \n"; cin >> a; cout << "Podaj drugom liczbe\n"; cin >> b; case '5': cout << "Podaj dlugosc boku kwadratu\n"; cin >> a; Kwadrat( a ); break; case '6': cout << "Podaj dlugosc boku rombu\n"; cin >> a; cout << "Podaj wysokość rombu\n"; cin >> h; Romb( a, h ); break; case '7': cout << "Podaj bok a (krotszy bok)\n"; cin >> a; cout << "Podaj bok b (dluszy bok)\n"; cin >> b; Prostokad( a, b ); break; case '8': cout << "Podaj bok a\n"; cin >> a; cout << "Podaj wysokosc\n"; cin >> h; Rownoleglobok( a, h ); break; case '9': cout << "Podaj bok a (krotszy)\n"; cin >> a; cout << "podaj bok b\n"; cin >> b; cout << "Podaj wysokosc\n"; cin >> h; Trapez( a, b, h ); break; case '10': cout << "Podaj dlugosc boku\n"; cin >> a; cout << "Podaj wysokosc\n"; cin >> h; Trojkat( a, h ); break; Dzielenie( a, b ); break; default: cout << "wpisales cos zlego"; } cin.clear(); znak >> znak; cout << "Czy chesz zakonczyć program (T/N)"; cin >> znak; znak = toupper( znak ); if( znak == 'T' ); { TN = false; } return 0; getch(); }
void Dodawanie( double a, double b ) { cout << "Wynik to:" << a + b << "\n";; } void Odejmowanie( double a, double b ) { cout << "Wynik to:" << a - b << "\n";; } void Mnozenie( double a, double b ) { cout << "Wynik to:" << a * b << "\n";; }
void Dzielenie( double a, double b ) { cout << "Wynik to:" << a / b << "\n";; }
void Kwadrat( double a ) { cout << "Wynik to:" << a * a << "\n";; } void Romb( double a, double h ) { cout << "Wynik to :" << a * h << "\n"; }
void Prostokad( double a, double b ) { cout << "wynik to :" << a * b << "\n"; } void Rownoleglobok( double a, double h ) { cout << "wynik to :" << a * h << "\n"; }
void Trapez( double a, double b, double h ) { cout << " Wynik to :" <<( a + b ) * h / 2 << "\n"; }
void Trojkat( double a, double h ) { cout << "wynik to :" <<( 0.5 ) * a * h << "\n"; } |
|
GoldWolf |
» 2009-07-23 14:15:37 Radzę ci przeczytać kurs VII. Ciągi znaków – łańcuchy - jest tam właśnie opisane jak rodzić sobie z strumieniem cin.double a, b, h, r; char znak; ( cin >> znak ).get(); Dodatkowo musisz użyć pętli, by ci program nie wychodził gdy naciskasz literkę "n". |
|
« 1 » 2 |