Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: henkel en 6 Noviembre 2012, 04:33 am



Título: funciones wxdevc++
Publicado por: henkel en 6 Noviembre 2012, 04:33 am
que tal tengo un taller de funciones y no e lo grado hacerlo
capture los datos de las formas
que saque el área y el perímetro
que lo imprima con una función aparte
lo que esta en el código es el algoritmo para cada uno pero me toca hacerlo con funciones  :huh:
que alguien me ayude con esto por favor
Código:
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char *argv[])

    int op;
    cout<<"\t ______________________\n";
    cout<<"\t* 1:triangulo          *         \n";
    cout<<"\t* 2:rectangulo         *         \n";
    cout<<"\t* 3:cuadrado           *         \n";
    cout<<"\t* 4:circunferencia     *         \n";
    cout<<"\t* digite 5 para salir  *         \n";
    cout<<"\t*______________________*\n";
    cout<<"______________________\n";
    cout<<"digite la opcion que desee: ";
    cin>>op;
    cout<<"_______________________________\n";
   
    switch (op)
   
    {
        case 1:
            int a,b,c,area;
            double p;
            cout<<"digite el lado A\n";
            cin>>a;
            cout<<"digite el lado B\n";
            cin>>b;
            cout<<"digite el lado C\n\n";
            cin>>c;
               
            area=(b*c)/2;
            cout<<"esta es la area del triangulo: ";
            cout<<area<<"\n";
            p=(a+b+c)/2;
            cout<<"este es el perimetro de el triangulo: ";
            cout<<p<<"\n";

            break;
        case 2:
            int d,i,ar,pe;
            cout<<"digite el lado derecho: \n";
            cin>>d;
            cout<<"digite lado inferior: \n";
            cin>>i;
               
            ar=i*d;
            cout<<"esta es el area de el rectangulo: ";
            cout<<ar<<"\n";
            pe=(i*2)+(d*2);
            cout<<"este es el perimetro de el rectangulo: ";
            cout<<pe<<"\n";
            break;
       
        case 3:
            int cua,are,per;
            cout<<"digite un lado del cuadrado: ";
            cin>>cua;
               
            are=cua*cua*cua;
            cout<<"esta es la area de el cuadrado: ";
            cout<<are<<"\n";
            per=4*cua;
            cout<<"este es el perimetro de el cuadrado: ";
            cout<<per<<"\n";                           
            break;
               
        case 4:
            int radio;
            float pi,perime,area1;
            cout<<"digite el radio dela circunferencia: ";
            cin>>radio;
            pi=3.14159;
            area1=pi*radio*radio*radio;
            perime=2*pi*radio;
            cout<<"esta es el area de la circunferencia: ";
            cout<<area1<<"\n";
            cout<<"este es el perimetro dela circunferencia: ";
            cout<<perime<<"\n";
            break;
           
           
           
       
       
               
           
               
               
               
         
default: cout<<"no existe esa opcion digite de nuevo\n";
    }
   
    system ("pause");
   
}





 ;D


Título: Re: funciones wxdevc++
Publicado por: HRSLASH en 6 Noviembre 2012, 16:50 pm
Hola henkel! Bueno, lo que haria es crear una clase geometria por ej, y dentro de esta crear los metodos que resuelvan cada una de las formas, pasando a cada funcion los lados correspondientes a la figura, el radio en el caso del circulo. En los case solo llamaria al metodo correspondiente al elegido por el usuario. Las variables no se declaran en los case, lo que se puede hacer es declarar las tres variables al principio y pedir el ingreso del dato en los case de una, dos o las tres, dependiendo el caso y por ultimo pondria el switch dentro de un while si lo que quieres es que el programa finalice cuando el usuario ingrese 5 (while(op != 5))

PD: no usaria el system("pause"), se podria usar getchar() por ej.

Saludos!