Skocz do zawartości
kolor23

Kolejny Problem Tym Razem C++

Rekomendowane odpowiedzi

Witam. Znowu mam problem i licze że może ktoś mi pomoże :).

Mam kod pewnego programu i potrzebuje go tak zmodernizowac aby :

" obliczał pole i obwód prostokąta, kwadratu i koła" Za pomoc z góry dziekuję.

Ps. dodam że do kompilacji używam dev c++

 

#include <cstdlib>

#include <iostream>

 

using namespace std;

 

void oblicz_pole(char figura);

float pobierz_wartosc();

float pole_prostokata(float x, float y);

float pole_kola(float x);

float pole_trojkata(float x, float y);

 

int main(int argc, char *argv[])

{

char decyzja;

while(1)

{

cout << "Wybierz figure: " << endl;

cout << "p - prostokat, k - kolo, t - trojkat, 0 - koniec " << endl;

cin >> decyzja;

 

if ((decyzja=='p')||(decyzja=='k')||(decyzja=='t')) oblicz_pole(decyzja);

else if (decyzja=='0') break;

else cout << "Zly wybor" << endl;

}

 

cout << endl << endl;

 

system("PAUSE");

return EXIT_SUCCESS;

}

 

void oblicz_pole(char figura)

{

float a,b;

cout << "Podaj dlugosc";

switch (figura){

case 'p': cout << "i bokow prostokata: "; a=pobierz_wartosc(); b=pobierz_wartosc();

cout << "Pole prostokata wynosi: " << pole_prostokata (a, B) << endl; break;

case 'k': cout << " promienia kola: "; a=pobierz_wartosc();

cout << "Pole kola wynosi: " << pole_kola (a) << endl; break;

case 't': cout << " podstawy i wysokosci trojkata: "; a=pobierz_wartosc(); b=pobierz_wartosc();

cout << "Pole trojkata wynosi: " << pole_trojkata (a, B) << endl; break;

}

}

 

float pobierz_wartosc()

{

while (1)

{

float a;

cin >> a;

if (a > 0) return a;

}

}

 

float pole_prostokata(float x, float y)

{

return x*y;

}

 

float pole_kola(float x)

{

return 3.1415*x*x;

}

 

float pole_trojkata(float x, float y)

{

return x*y/2;

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja proponuje cos takiego:

 

#include <iostream>#include <conio.h>using namespace std;float pobierz_wartosc(){while (1){float a;cin >> a;if (a > 0) return a;}}float pole_prostokata(float x, float y){return x*y;}float obwod_prostokata(float x, float y){return x*2+y*2;}float pole_kola(float x){return 3.1415*x*x;}float obwod_kola(float x){return 3.1415*2*x;}void oblicz_pole(char figura){float a,b;cout << "Podaj dlugosc";switch (figura){case 1: cout << "i bokow prostokata: "; a=pobierz_wartosc(); b=pobierz_wartosc();cout << "Pole prostokata wynosi: " << pole_prostokata (a,b)  << endl; break;case 2: cout << "i bokow prostokata: "; a=pobierz_wartosc(); b=pobierz_wartosc();cout << "Obwod prostokata wynosi: " << obwod_prostokata (a,b)  << endl; break;case 3: cout << "boku kwadratu: "; a=pobierz_wartosc();cout << "Pole kwadratu wynosi: " << pole_prostokata (a,a)  << endl; break;case 4: cout << "boku kwadratu: "; a=pobierz_wartosc();cout << "Obwod kwadratu wynosi: " << obwod_prostokata (a,a)  << endl; break;case 5: cout << " promienia kola: "; a=pobierz_wartosc();cout << "Pole kola wynosi: " << pole_kola (a) << endl; break;case 6: cout << " promienia kola: "; a=pobierz_wartosc();cout << "Obwod kola wynosi: " << obwod_kola (a) << endl; break;}}void main(){int decyzja; while(1){cout << "Wybieraj: " << endl;cout << "1 pole prostokatu, 2 obwod prostokatu, 3 pole kwadratu, 4 obwod kwadratu" << endl;cout << "5 pole kola, 6 dlugosc kola, 0 - koniec " << endl;cin >> decyzja;if (decyzja > 0 && decyzja < 7) oblicz_pole(decyzja);else {	if (decyzja==0) break;	else cout << "Zly wybor" << endl;} cout << endl << endl; getch();}}

 

Nie było calkiem testowane, wiec sam musisz wyprobowac.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mozna np. tak

 

#include <cstdlib>#include <iostream.h>using namespace std;void oblicz_pole(char figura);float pobierz_wartosc(void);float pole_prostokata(float x, float y);float pole_kola(float x);int main(int argc, char *argv[]){char decyzja;while(1){cout << "Wybierz figure: " << endl;cout << "p - prostokat, k - kolo, s - kwadrat, 0 - koniec " << endl;cin >> decyzja;if ((decyzja=='p')||(decyzja=='k')||(decyzja=='s')) oblicz_pole(decyzja);else if (decyzja=='0') break;else cout << "Zly wybor" << endl;}cout << endl << endl;system("PAUSE");return EXIT_SUCCESS;}void oblicz_pole(char figura){float a=-1.0, b=-1.0;cout << "Podaj dlugosc";switch (figura){case 'p': cout << "i bokow prostokata: ";		  a=pobierz_wartosc(); b=pobierz_wartosc();		  cout << "Pole prostokata wynosi: " << pole_prostokata(a,b)		  << " a obwod L=" << 2*a+2*b <<endl;		  break;case 'k': cout << " promienia kola: "; a=pobierz_wartosc();		  cout << "Pole kola wynosi: " << pole_kola (a)		  << " a obwod L=" << 2*3.1415*a << endl; // L=2*(pi)*r		  break;case 's': cout << " bok kwadratu a=";		  a=pobierz_wartosc();		  cout << "Pole kwadratu wynosi: " << pole_prostokata (a, a)		  << " obwod L=" << 4*a << endl;break;}}float pobierz_wartosc(void){float x=-1.0;while(x<0) {cin >> x;}   //tak chyba lepie bo nie ma warunku if w petlireturn x;}float pole_prostokata(float x, float y){return x*y;}float pole_kola(float x){return 3.1415*x*x;}

P.S jak wklejasz kod programu to wez go w tagi code, jak byk pisze podczas pisania postu......:)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...