Escreva uma rotina que determine as raízes reais da equação quadrática a x^2+ b x+c=0. Salve a função como raizquad. Quando o arquivo for executado, o usuário deverá entrar com os valores das constantes a, b e c. Para calcular as raízes da equação, o programa deve primeiro calcular o discriminante D dado por:
D=b^2-4 a c
Se D>0, o programa deve exibir a mensagem: A equação possui duas raízes reais., e as raízes devem ser mostradas na próxima linha.
Se o D=0, o programa deve exibir a mensagem: A equação possui duas raízes iguais., e a raiz deve ser mostrada na próxima linha.
Se D<0, o programa deve exibir a mensagem: A equação não possui raízes reais.

Passo 1

O enunciado pede para a gente escrever uma rotina (função) que calcule as raízes reais de uma equação quadrática
a x^2 + b x + c = 0
A gente vai usar o conteúdo de equações do 2º grau, em particular o discriminante
D = b^2 - 4ac
e as fórmulas de Bhaskara
x1,2 = -b pm raizD2a
Para resolver, você só precisa saber como ler dados do usuário, calcular o discriminante e usar estruturas condicionais (if/elseif/else).

Passo 2

Calcular o discriminante.
  1. Depois de ler D = b^2 - 4,a,c , e , você faz
  2. O discriminante diz se há duas raízes reais distintas ( ), uma raiz dupla ( ) ou nenhuma raiz real ( ).

Passo 3

Usar condicionais para tratar cada caso:
  • Se x1 = -b + raizD2a, x2 = -b - raizD2a :
    • Exibir “A equação possui duas raízes reais.”
    • Calcular x = -b2a
  • Se :
    • Exibir “A equação possui duas raízes iguais.”
    • Calcular
  • Se :
    • Exibir “A equação não possui raízes reais.”

Passo 4

Agora é só juntar tudo numa função chamada raizquad. A seguir está um exemplo em MATLAB/Octave (salve como raizquad.m):
function raizquad()
  % Pede os coeficientes
  a = input('Digite o valor de a: ');
  b = input('Digite o valor de b: ');
  c = input('Digite o valor de c: ');

  % Calcula o discriminante
  D = b^2 - 4*a*c;

  % Verifica cada caso
  if D > 0
    fprintf('A equação possui duas raízes reais.\n');
    x1 = (-b + sqrt(D))/(2*a);
    x2 = (-b - sqrt(D))/(2*a);
    fprintf('x1 = %.4f, x2 = %.4f\n', x1, x2);
  elseif D == 0
    fprintf('A equação possui duas raízes iguais.\n');
    x = -b/(2*a);
    fprintf('x = %.4f\n', x);
  else
    fprintf('A equação não possui raízes reais.\n');
  end
end

Resposta

A função raizquad acima lê , e , calcula o discriminante
, e usa condicionais para imprimir a mensagem adequada e as raízes reais quando existirem.

Exercícios relacionados