Calcular longitud, area o volumen de circunferencia

Iniciado por Pa531no5, Marzo 16, 2010, 01:51:48 PM

Tema anterior - Siguiente tema

0 Miembros y 4 Visitantes están viendo este tema.

Marzo 16, 2010, 01:51:48 PM Ultima modificación: Febrero 08, 2014, 06:13:08 PM por Expermicid
Con este programa podreis calcular la longitud o area de la circunferencia o volumen de la esfera,
según la opción que elijais previamente del menu.


Código: c
//FICHEROS DE CABECERA
#include "stdio.h"
#include "math.h"
#include "ctype.h"

//DEFINICION DE CONSTANTES
#define PI 3.1416

//DECLARACION DE FUNCIONES
unsigned int fmenu();
void fopcion_longitud();
void fopcion_area();
void fopcion_volumen();
unsigned int fpedir_radio();
double fcalcular_longitud(unsigned int radio);
double fcalcular_area(unsigned int area);
double fcalcular_volumen(unsigned int volumen);

//FUNCION PRINCIPAL
void main()
{
//DECLARACION DE VARIABLES
unsigned int opcion;

//OPERACIONES
do
{
  opcion = fmenu();
  switch(opcion)
  {
   case 1:fopcion_longitud();
         break;
   case 2:fopcion_area();
         break;
   case 3:fopcion_volumen();
         break;
   case 4:puts("\nFinal del P1440502");
         break;
   default: printf("\nOpcion: %u erronea",opcion);
  }
}while(opcion !=4);
}



//ENVIA UN MENU A LA CONSOLA
unsigned int fmenu()
{
  //DECLARACIONES
  unsigned int opcion;
 
  //OPERACIONES
  puts("\n     CON ESTE PROGRAMA PUEDE");
  puts("\n     -----------------------");
  puts("\n1.CALCULAR LA LONGITUD DE LA CIRCUNFERENCIA");
  puts("\n2.CALCULAR EL AREA DE LA CIRCUNFERENCIA");
  puts("\n3.CALCULAR EL VOLUMEN DE LA ESFERA");
  puts("\n\n TECLEEE LA OPCION DESEADA");
  scanf("%u",&opcion);
  return(opcion);
  }
 
  //TRATA LA OPCION DE PROCESO DE TRATAR LONGITUDES
  void fopcion_longitud()
  {
  //DECLARACIONES
   unsigned int radio;
   char res;
   double longitud;
   
   //OPERACIONES
   do
   {
    radio = fpedir_radio();
    longitud = fcalcular_longitud(radio);
    printf("\nRadio: %u Longitud: %8.2lf",radio,longitud);
    puts("\nDesea calcular otra longitud?");
    fflush(stdin);
    res = getchar();
    res = tolower(res);
   }while(res == 's');
  }
 
  //TOMA DE CONSOLA EL RADIO
  unsigned int fpedir_radio()
  {
   //DECLARACIONES
   unsigned int radio;
   
   //OPERACIONES
   puts("\nTeclee Radio");
   scanf("%u",&radio);
   return(radio);
   }
   
   //CALCULA LA LONGITUD DE UNA CIRCUNFERENCIA
   double fcalcular_longitud(unsigned int radio)
   {
    //DECLARACIONES
     double longitud;
     
     //OPERACIONES
     longitud = 2 * PI * radio;
     return(longitud);
     }
     
  //TRATA LA OPCION DE PROCESO DE CALCULAR AREAS
   void fopcion_area()
   {
    //DECLARACIONES
     unsigned int radio;
     char res;
     double area;
     
     //OPERACIONES
     do
     {
      radio=fpedir_radio();
      area=fcalcular_area(radio);
      printf("\nRadio: %u Area: %8.2lf",radio,area);
      puts("\n¿Desea calcular otro area");
      fflush(stdin);
      res = getchar();
      res = tolower(res);
      }while(res == 's');
     }
     
   //CALCULA EL AREA DE UNA CIRCUNFERENCIA
   double fcalcular_area(unsigned int radio)
   {
    //DECLARACIONES
     double area;
     
     //OPERACIONES
     area = PI*pow(radio,2);
     return(area);
     }
     
     //TRATA LA OPCION DE PROCESO DE CALCULAR VOLUMENES
     void fopcion_volumen()
     {
      //DECLARACIONES
      unsigned int radio;
      char res;
      double volumen;
     
      //OPERACIONES
      do
      {
       radio = fpedir_radio();
       volumen = fcalcular_volumen(radio);
       printf("\nRadio: %u Area: %8.2lf",radio,volumen);
       puts("\n¿Desea calcular otro volumen?");
       fflush(stdin);
       res = getchar();
       res = tolower(res);
       }while(res=='s');
      }
     
      //CALCULA EL VOLUMEN DE UNA ESFERA
      double fcalcular_volumen(unsigned int radio)
      {
      //DECLARACIONES
      double volumen;
     
      //OPERACIONES
      volumen = (4/3)*PI*pow(radio,3);
      return(volumen);
      }       
                         


Muchas Gracias, aportando un pequeño granito.. xDD