Połączenie trzech funkcji w jeden program.

0

Mam za zadanie napisać program zawierający następujące funkcje:
– pobierającą promień kuli i zwracającą (przez return) jej objętość,
– pobierającą promień kuli i zwracająca jej pole powierzchni przez parametr typu referencyjnego
– pobierającą promień kuli i zwracającą jej obwód (na równiku) przez parametr typu
wskaźnikowego,
Program ma pobierać od użytkownika wartość promienia kuli, a następnie obliczyć i wyświetlić jej
objętość, pole powierzchni i obwód przy pomocy wyżej wymienionych funkcji.

Udało mi się zrobić każde z tych poleceń osobno, ale nie potrafię ich połączyć w jedno. Moglibyście dać chociaż jakieś wskazówki?

 #include<iostream>
#include<math.h>
using namespace std;

float objetosc(double R)
{
    return (4*M_PI*R*R*R)/3;
}
int main()
{
    float a;
    cout << "Podaj promien: ";
    cin>>a;
    float obj = objetosc(a);
    cout << "Objetosc = " << obj <<endl;
    return 0;
}
 #include<iostream>
#include<math.h>
using namespace std;

void kula(float & pole)
{
    float R;
    cout <<  "Podaj promien" << endl;
    cin >> R;
    pole = 4 * M_PI *R*R;
}

int main()
{
    float P;
    kula(P);
    cout << "Pole wynosi " << P<<endl;
}
#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

void obwodk(double *obw)
{
    float R;
    cout <<  "Podaj promien" << endl;
    cin >> R;
    *obw = 2*M_PI*R;
}

int main()
{
    double obwod = 0;
    double *wsk_obwod = &obwod;
    obwodk(wsk_obwod);
    cout << obwod << endl;
    return 0;
}
 
1

Skopiuj wszystko oprócz main() do nowego pliku a potem zrób nowego maina który woła te 3 funkcje.

0

Zrobiłem tak jak powiedziałeś i program działa, ale jak zrobić tak, żeby o promień zapytał się tylko jednokrotnie i już go zapamiętał?

 #include<iostream>
#include<math.h>
using namespace std;

float objetosc(double R)
{
    return (4*M_PI*R*R*R)/3;
}
void kula(float & pole)
{
    float R;
    cout <<  "Podaj promien" << endl;
    cin >> R;
    pole = 4 * M_PI *R*R;
}
void obwodk(double *obw)
{
    float R;
    cout <<  "Podaj promien" << endl;
    cin >> R;
    *obw = 2*M_PI*R;
}
int main()
{
    float a;
    cout << "Podaj promien: ";
    cin>>a;
    float obj = objetosc(a);
    cout << "Objetosc = " << obj <<endl;
    float P;
    kula(P);
    cout << "Pole = " << P<<endl;
    double obwod = 0;
    double *wsk_obwod = &obwod;
    obwodk(wsk_obwod);
    cout <<"Obwod = "<<obwod << endl;
    return 0;
}
3

Zapytaj o promień w main() a do funkcji go po prostu przekaż? BTW nie bardzo rozumiem po co przekaujesz tam te argumenty jako & albo * ;]
Zalecałbym zwracać z funkcji wartości zamiast przekazywać parametr na wartość zwracaną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1