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
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;
}