Lógica, perguntado por jhonrobsonroo, 1 ano atrás

L.1 – Ex.4: por meio dos exercícios realizados em sala de aula, resolva o cálculo de uma equação de 2o grau no modelo ax 2 + bx + c = 0 onde é solicitado ao usuário entrar com os valores de a, b e c. A presentar ao usuário as raízes da equação.

Soluções para a tarefa

Respondido por mauriciozaccaro
0

Resposta:

Vou partir do pressuposto que você fará esse exercício em linguagem C.

Para se calcular uma Equação de 2° Grau devemos observar algumas regras.

1° se o valor de "a" for igual a 0 (zero) então a função NÃO representa uma equação de 2° grau.

2° Se o valor de Delta for negativo não existe uma Raiz, pois não há raiz de números negativos. Logo, o programa deve terminar aqui.

3° Se o valor de Delta for igual a o (zero), então a fórmula só terá 1 raiz, pois não importa se vai somar ou subtrair por zero.

4° Se o valor de Delta for positivo, aí sim, teremos uma equação com 2 raízes (x' e x'')  e poderemos utilizar o famoso -b ± √Δ / 2*a

Vou postar abaixo o código completo em linguagem C:

(lembrando que esse código pode ser refinado para torná-lo menor e mais eficiente)

Explicação:

/*

   EXERCÍCIO 4  

   Disciplina:    ALP II

   Professor:    Max Roberto

   Descrição:   Esse programa faz o cálculo de uma equação de 2° grau

   Autor(s):       Maurício da Silva Zaccaro Neto

*/

#include <stdio.h>

#include <stdlib.h>

#include <math.h>  // essa biblioteca é para poder usar os recursos  e //comandos matemáticos, como o "sqtr" que serve para calcular a raiz //quadrada de um numero.

int main()

{

   int a, b, c, delta;   //variáveis inteiras

   float raiz1, raiz2;  // variaveis tipo float

   printf("Digite o primeiro termo da equação: \n");

   scanf("%d", &a);

   printf("\n");

   printf("Digite o segundo termo da equação: \n");

   scanf("%d", &b);

   printf("\n");

   printf("Digite o terceiro termo da equação: \n");

   scanf("%d", &c);

   printf("\n");

   if(a == 0){

       printf("Os valores digitados não representam uma equação de 2° Grau!");

//a condição acima testa se o valor da expressão "a" é igual a "zero".. se for ele para o programa, pois 0 x 0 = 0 e não representa uma função quadrática.    }

   else{

       delta = (b*b) - 4*a*c;

// sendo o valor de "a" diferente de zero, o programa faz o calculo do delta

       if(delta < 0){

               printf("Valor de Delta negativo - Não existe raiz! \n");

// se Delta for negativo programa também para,pois não existe raiz de numero negativo

       }

       else{

            if(delta == 0 ){

                   raiz1 = -b/(2*a) ;

                   printf("Equação com raiz unica: %.2f \n" , raiz1) ;

// se o valor de delta for igual a o (zero) então o resultado da equação terá apenas 1 raiz, pois "alguma coisa" + zero ou "alguma coisa" - zero continua sendo "alguma coisa"

            }

            else{

                   raiz1 = -b + sqrt(delta)/(2*a);

                   raiz2 = -b - sqrt(delta)/(2*a);

                   printf("Valor da Raiz 1: %.2f \n", raiz1);

                   printf("Valor da Raiz 2: %.2f \n", raiz2);

// por fim, se o valor de delta for positivo ( maior que zero), o sistema irá calcular as duas raizes, seguindo o x' e o x''.

            }

       }

   }

       return 0;

}

Perguntas interessantes