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

cibersoft

Formula resolvente

9 mensagens neste tópico

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

int main(int argc, char *argv[])
{
   int a,b,;
   float total,total1;

   printf("Calculo da raiz quadrada de uma equacao do segundo Grau");
   printf("\n\n");
   printf("Introduza tres valores para calcular");
   scanf("%d %d %d",&a,&b,&c);
   printf("Os numeros introduzidos sao %d %d %d\n",a,b,c);


 	   total=(-b+sqrt(b*b)-(4*a*c))/(2*a);/* Função matemática para a formula resolvente*/
 	   total1=(-b-sqrt(b*b)-(4*a*c))/(2*a);


 printf("total 1 %d\n",total);
 	 printf("total 2 %d\n",total1);
 	 system("PAUSE");	
 return 0;
}

Fiz este código mas não sei se está a 100%, podem me dar uma ajuda?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não está mesmo a 100%...

Da maneira que tens só aplicas a raíz ao b quadrado... falta-te uns parêntesis.

total=(-b+sqrt((b*b)-(4*a*c)))/(2*a)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, de facto faltava.

Vejam agora se está está melhor.

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

int main(int argc, char *argv[])
{
   int a,b,;
   float total,total1;

   printf("Calculo da raiz quadrada de uma equacao do segundo Grau");
   printf("\n\n");
   printf("Introduza tres valores para calcular");
   scanf("%d %d %d",&a,&b,&c);
   printf("Os numeros introduzidos sao %d %d %d\n",a,b,c);


 	   total=(-b+sqrt((b*b)-(4*a*c)))/(2*a);/* Função matemática para a formula resolvente*/
 	   total1=(-b-sqrt((b*b)-(4*a*c)))/(2*a);
if (total && total1 < 0)
{
printf("Impossivel");
}
else
{

 printf("total 1 %d\n",total);
 	 printf("total 2 %d\n",total1);
}
 	 system("PAUSE");	
 return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que agora borraste a pintura...

Em primeiro lugar o polinómio pode ter raízes negativas e segundo o teu programa não pode.

Em segundo esse if que tens é o mesmo que

if(total == 0 && total1<0)

portanto o teu programa só aceita soluções em que uma das raízes seja diferente de zero e a outra positiva...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exactamente.

A raiz é impossível se b² - 4ac for < 0.

E convém testares isso antes de fazer a raiz, porque raízes de números negativos não existem nos números Reais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado

Aqui têm a versão actualizada e a funcionar, agora vou tentar passar algumas linhas de código para Functions.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{   

    float total,total1,a,b,c,root; 

    printf("\t\tCalculo da raiz quadrada de uma equacao do segundo Grau");   
    printf("\n\n");   
    printf("Introduza tres valores para calcular__");                     
    scanf("%f %f %f",&a,&b,&c);   
    printf("Os numeros introduzidos sao %0.1f %0.1f %0.1f\n",a,b,c);
    printf("\n\n");

                       root=(b*b)-(4*a*c);       
                       total=((-b)+sqrt(root))/(2*a);
                       total1=((-b)-sqrt(root))/(2*a);

    if (root < 0)
    {
             printf("Impossivel >>> Raizes complexas!!!\n\n");

             }
             else{

    printf("total 1 %.2f\n",total);
    printf("total 2 %.2f\n",total1);
    }     
    system("PAUSE");     
    return 0;
   }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como disse, testa o root<0 antes de atribuires valores aos totais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas ando a pouco tempo a pouco tempo a ver tutorias e formas de programar em C, como ando meio a toa com isto não me podias explicar mais ou menos o funcionamento deste programa, ja que me deu bastante jeito a matematica :)

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