[ Foro de C++ ]

Estructuras en c++

19-Jan-2020 18:38
Invitado (E2)
2 Respuestas

Buen dia , soy novato en c++ y estoy aprendiendo estructuras en el capitulo de clases necesito solucionar un problema que plantearon pero nose como resolverlo .. no me explicaron casi nada de estructuras  y estuve viendo algunos tutoriales pero casi no entiendo talvez si alguien podria ayudarme con este problema le agradeceria de antemano ..
estuve intentando resolverlo aqui esta codigo pero no esta bien
#include <iostream>
using namespace std;
double const pi=3.1416;
struct circulo{
  double radio;
  double diametro;
  double area;

};

int main() {
   int opcion;
  struct circulo.val1;
  cout<< "Elija una opcion para crear el circulo"<< endl;
  cout<<"1. Radio " <<endl;
  cout<<"2. Area  " <<endl;
  cin>>opcion;
  if(opcion==1){
  cout<<"El circulo tiene"<< endl;
       resultado(val1.resultado);

  }
  return 0;
}
void resultado (val1.resultado){
       cout<< Ingrese el area<< endl;
       cin >>superficie;
       double resultado1=val1.resultado*pi;
       cout<<"Area: "<<resultado1<<endl;
}
el problema me dice que cree una estructura con area,radio y diametro de tipo double
presentar con cout "quiere crear un circulo con radio o area"
opcion 1 "ingrese el area"
opcion2"ingrese el radio"

resultado deberia ser asi
el circulo tiene
radio:..
area:..
diametro:...

deber existir funciones para colocar radio

area y dametro
porfavor ayuda


20-Jan-2020 18:51
Jorge d r (+1)

La estructura la has creado bien, y con ella podrás crear todos los "objetos" que quieras.
ejemplo
circulo cir;
circulo culo;
cir y culo son objetos y a través de ellos podrás acceder a los campos de la estructura.
ejemplo
cir.radio = 5.0;
culo. area = 12.5;
etc.
Creo que has empezado por un nivel que no te corresponde, deberías empezar con algún manual que corresponda mas a tu nivel, seguro que encuentras algo en la pestaña de tutoriales de la página.
Saludos


20-Jan-2020 20:38
Invitado (Thanatos)

#include <cmath>       // sqrt(), pow()
#include <iostream>  // cout, cin, fixed
#include <iomanip>   // setprecision()

using namespace std;

enum Opciones { kRadio = 1, kArea, kSalir };

struct Circulo {
double radio;
double diametro;
double area;
};

bool calcular(Circulo &, double = 0.0, double = 0.0);

int main() {
Circulo circulo = { };
bool existeResp = false;
double dato;
int opcion;

cout << "========================= \n"
<< " DIMENSIONES DEL CIRCULO  \n"
<< "========================= \n"
<< "  1. Se conoce el radio   \n"
<< "  2. Se conode el area    \n"
<< "  3. Salir del programa   \n"
<< "========================= \n"
<< " opcion: ";
cin >> opcion;
cout << '\n';

switch (opcion) {
case kRadio:
cout << "Ingrese el radio: ";
cin >> dato;
existeResp = calcular(circulo, dato);
break;
case kArea:
cout << "Ingrese el area: ";
cin >> dato;
existeResp = calcular(circulo, 0.0, dato);
break;
case kSalir:
cout << "\n* Fin del programa *\n";
break;
default:
cout << "\n* Opcion desconocida *\n";
}

if (existeResp) {
cout << fixed << setprecision(2)
<< "Radio -----> " << circulo.radio    << '\n'
<< "Diametro --> " << circulo.diametro << '\n'
<< "Area ------> " << circulo.area     << '\n';
}

return 0;
}

bool calcular(Circulo &circulo, double radio, double area) {
const double kPi = 3.1416;
double diametro = 0.0;

if (radio > 0.0) {
area = kPi * pow(radio, 2.0);
} else if (area > 0.0) {
radio = sqrt(area / kPi);
} else {
return false;
}

diametro = radio * 2.0;
circulo = { radio, diametro, area };

return true;
}






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)