Jak przerobić mój kod, aby wykorzystywał funkcje?
Ostatnio zmodyfikowano 2012-04-20 14:57
Adams911 Temat założony przez niniejszego użytkownika |
Jak przerobić mój kod, aby wykorzystywał funkcje? » 2012-04-20 10:36:14 Jak przerobić ten program na program wykorzystujący funkcje. #include<iostream> #include<cmath> int main()
{ using namespace std; int a, b, x, c, del, del1, x1, x2, x0, p, h, ob, liczba; cout << "Wybierz: 1-Figura, 2-Bryla: "; 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: " << p; break; case 2: cout << "Podaj bok a: "; cin >> a; ob = 4 * a; cout << "Obwod rowna sie: " << ob; 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: " << p; break; case 2: cout << "Podaj bok a: "; cin >> a; cout << "Podaj bok b: "; cin >> b; ob = 2 * a + 2 * b; cout << "Obwod rowna sie: " << ob; 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: " << p; break; case 2: cout << "Podaj bok a: "; cin >> a; cout << "Podaj wysokosc b: "; cin >> b; ob = 2 * a + 2 * b; cout << "Obwod rowna sie: " << ob; 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: " << p; 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: " << ob; 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: " << p; break; case 2: cout << "Podaj bok a: "; cin >> a; ob = a * a * a; cout << "Obwod rowna sie: " << ob; 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" ); } } |
|
jsc |
» 2012-04-20 11:36:47 |
|
Admixior |
» 2012-04-20 14:57:22 Sorry że poprawiam ci kod choć nie ma błędów, ale mógłbyś to zrobić trochę mnie pisząc, bo dużo jest kodu kopiowanego. Np. case 1:
cout << "CO chcesz liczyć 1-pole, 2-obwód: "; cin >> liczba; cout << "Podaj bok a: "; cin >> a; cout << "Podaj bok b: "; cin >> b; cout << "Podaj wysokosc h: "; cin >> h; switch( liczba ) { case 1: p =( 2 * a * b ) +( 2 * a * h ) +( 2 * b * h ); cout << "Pole rowna sie: " << p; break; case 2: ob = a * b * h; cout << "Obwod rowna sie: " << ob; break; }
Przerabiając na funkcję (jak przeczytasz i zrozumiesz co to są funkcje) wystarczy że w głównym switch-u w każdym z 3-ech przypadków dasz wywołanie 3-ech różnych funkcji. A do ciała tych funkcji skopiujesz to co masz w case (i nie zapomnij usunąć z main definicje: int a,b,h i wstawić te potrzebne na początku każdej funkcji). |
|
« 1 » |