• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Guest tsenart

[C] Calculadora Geométrica

4 mensagens neste tópico

Olá pessoal... Fiz este programinha em C faz agora mais ou menos um mês no seguimento da leitura do capitulo de funções do livro do Damas... Ele corria bem mas agora dá-me zero em todas as funções....

Aqui está ele(sem acentos por causa do GeSHi...)

/*Calculadora de formulas geometricas*/
/*Nao usei acentos pois o Dev C++ nao os compila como deve ser...*/
/*By S&m0t 25/11/06/*/

#include <stdio.h>
#include <math.h>

const float pi= 3.14159265;/*O numero PI.*/

/*Declaracao dos cabecalhos das funcoes*/

float areacirculo(float r);                       /*Area do circulo*/
float perimetrocircunf(float r);                  /*Perimetro do circulo*/
float areaquadr(float compr, float larg);         /*Area do quadrilatero*/
float areatriangulo(float base, float altura);    /*Area do triangulo*/
float teoremapitagoras(float cateto, float cat2); /*Teorema de pitagoras*/ 
float volesfera(float r);                         /*Volume da esfera*/
float volcubo(float aresta);                      /*Volume do cubo*/
float volpiraoucone(float areabase, float altura);/*Volume da piramide ou cone*/


void menu() /*Procedimento que imprime o menu no ecran*/
{
     printf("\n\n\t\tCALCULADORA GEOMETRICA\n\n");

printf("  -Area do circulo- 1"); printf("\t\t-Perimetro do circulo-5\n");
printf("  -Area do triangulo- 2"); printf("\t\t-Area dum quadrilatero-6\n");
printf("  -Teorema de Pitagoras- 3"); printf("\t-Volume da esfera- 7\n");
printf("  -Volume do cubo- 4"); printf("\t\t-Volume da piramide ou cone- 8\n\n");
printf("\nIntroduza '0' para sair\n");

   return;
}

float areacirculo(float r)
{
      return (pi*(r*r));
}

float perimetrocircunf(float r)
{
      return(2.0*pi*r);
}


float areaquadr(float compr, float larg)
{
      return compr*larg;
}


float areatriangulo(float base, float altura)
{
      return (base*altura)/2.0;
}


float teoremapitagoras(float cateto, float cat2)
{
          return sqrt((cateto*cateto)+(cat2*cat2));
}


float volesfera(float r)
{
      return ((4.0/3.0)*pi*(r*r*r));
}


float volcubo(float aresta)
{
      return aresta*aresta*aresta;
}


float volpira(float areabase, float altura)
{
      return (1.0/3.0)*areabase*altura;
}

main() /*Funcao principal*/
{
int i, option; float data1=0, data2=0, data3=0; /*Variaveis que as funcoes usam*/
    
menu();/*Apresenta menu*/

do
{      /*Pede um numero que esteja no menu*/
printf("\nIntroduza o numero correspondente a funcao desejada( 9 para ver o menu):  "); scanf("%d",&option);

switch(option)
          {
           case 9:menu(); continue; /* Apresenta o menu e passa a proxima iteracao*/
           
           case 0:system("pause");continue; /* Termina o ciclo do while e apresenta uma pausa*/
           
           case 1:printf("\nIntroduza o raio da circunferencia:  ");scanf("%f",&data1); /*Area do circulo*/
                  printf("\nA area do circulo e %fcm2\n", areacirculo(data1));continue;
                  
           case 2:printf("\nIntroduza a base e a altura do triangulo(base altura):  ");scanf("%f %f",&data1,&data2); /*Area do triangulo*/
                  printf("\nA area do triangulo e %fcm2\n", areatriangulo(data1, data2)); continue;
                  
           case 3:printf("\nIntroduza o valor do primeiro e segundo cateto(cateto1 cateto2):  "); /*Teorema de pitagoras*/
                  scanf("%f %f",&data1,&data2);
                  printf("\nO valor da hipotenusa e %fcm\n",teoremapitagoras(data1,data2)); continue;
                  
           case 4:printf("\nIntroduza o valor da aresta do cubo:  ");scanf("%f",&data1); /*Volume do cubo*/
                  printf("\nO volume do cubo e %fcm2\n",volcubo(data1)); continue;
           
           case 5:printf("\nIntroduza o raio da circunferencia:  ");scanf("%f",&data1); /* Perimetro da circunferencia*/
                  printf("\nO perimetro da circunferencia mede %fcm\n", perimetrocircunf(data1));continue;
                  
           case 6:printf("\nIntroduza o comprimento e a largura do quadrilatero(comp larg):  ");scanf("%f %f",&data1,&data2);/* Area do quadrilatero*/
                  printf("\nA area do quadrilatero e %fcm2\n", areaquadr(data1, data2)); continue;
           
           case 7:printf("\nIntroduza o raio da esfera:  ");scanf("%f",&data1); /*Volume da esfera*/
                  printf("\nO volume da esfera e %fcm2\n", volesfera(data1)); continue;
                 
           case 8:printf("\nIntroduza a area da base e a altura(abase altura):  ");scanf("%f %f",&data1,&data2);/* Volume da piramide ou do cone*/
                  printf("\nO volume do cone ou piramide e %fcm2\n", volpira(data1, data2)); continue;
           
           default:printf("Numero invalido\n"); option=getchar();/* Caracter invalido. Recebe um valor e associa-o a variavel  'option'*/
           }

}
while(option!=0);
  
}

Any help? ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah pessoal.... Já descobri o que estava mal... No Dev C++ tinha o compilador configurado com tamanho de float = double... Tirei essa opção e já funciona!

Alguma opinião é só postar!

OFF-TOPIC ON

{

      Agora que já tenho bases em C vou-me atirar ao C#!!!

}

OFF-TOPIC OFF;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

      Agora que já tenho bases em C vou-me atirar ao C#!!!

Atençã que C pouco tem a ver com Java. Alguma sintaxe é igual mas C# é POO e C não.

Quem sabe Java é que tem a vida bastante facilitada para aprender C#. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado Hipnoted mas eu tenho noção disso. Realmente eu quero é C#. Já tenho bases de programação estruturada percebes... Se algum dia precisar outra vez( e vou precisar pelo menos na Universidade) deste tipo de programação vou ter facilidade em me adaptar. Já entendi a lógica da programação e dos algoritmos e já percebi o tipo de sintaxe que uma linguagem tem e seu poder. Agora quero passar a coisas mais sérias. Pensar no futuro e em aplicações para utilizadores comuns com grande poder. Actualmente programar em C é muito direccionado a programação de sistemas e necessidades de gerenciação de memória. Eu não preciso disso por enquanto. Vou-me atirar ao C#(já me atirei... agora falta devorar) pois já vi que é uma linguagem com grande futuro e poder( e falhas corrigidas de C).Já agora... podiam dar opiniões sobre o programa. Executem-no!

Thankz

S@m0t

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora