#include <iostream>
#include <cmath>
#define _USE_MATH_DEFINES
using namespace std;
float CalRaio(float area) {
return sqrt((area/M_PI));
}
float CalDiam(float raio) {
return raio*2;
}
float CalCirc(float diametro) {
return M_PI*diametro;
}
float CalArea(float circuferencia) {
return ((circuferencia/M_PI/2)*(circuferencia/M_PI/2))*M_PI;
}
float calcularCirculo(float dadosCirculo){
int i;
int posicaoArray;
for(i=0; i<4; i++){
if (dadosCirculo[i]>>0){
posicaoArray=i;
break;
}
}
switch(posicaoArray){
case 0:
//Raio foi dado, calcular o resto
dadosCirculo[1]=CalDiam(dadosCirculo[0]);
dadosCirculo[2]=CalCirc(dadosCirculo[1]);
dadosCirculo[3]=CalArea(dadosCirculo[2]);
break;
case 1:
//Diametro foi dado
dadosCirculo[2]=CalCirc(dadosCirculo[1]);
dadosCirculo[3]=CalArea(dadosCirculo[2]);
dadosCirculo[0]=CalcRaio(dadosCirculo[3]);
break;
case 2:
//Circuferencia foi dado
dadosCirculo[3]=CalArea(dadosCirculo[2]);
dadosCirculo[0]=CalcRaio(dadosCirculo[3]);
dadosCirculo[1]=CalDiam(dadosCirculo[0]);
break;
case 3:
//Area foi dado
dadosCirculo[0]=CalcRaio(dadosCirculo[3]);
dadosCirculo[1]=CalDiam(dadosCirculo[0]);
dadosCirculo[2]=CalCirc(dadosCirculo[1]);
break;
}
return dadosCirculo;
}
int main() {
int opcao;
float valor;
float circulo[4];
cout << "Raio(1) Diâmetro(2) Circunferência(3) Área(4)" "\n";
cout << "Por favor, digite o valor correspondente á medida que você já possui: ";
cin >> opcao;
switch (opcao){
case 1:
cout << "Qual o valor do raio? ";
cin >> valor;
circulo=calcularCirculo([valor,0,0,0]);
break;
case 2:
cout << "Qual o valor do diametro? ";
cin >> valor;
circulo=calcularCirculo([0,valor,0,0]);
break;
case 3:
cout << "Qual o valor do circuferencia? ";
cin >> valor;
circulo=calcularCirculo([0,0,valor,0]);
break;
case 4:
cout << "Qual o valor do area? ";
cin >> valor;
circulo=calcularCirculo([0,0,0,valor]);
break;
}
cout >> circulo;
return 0;
}