Exercícios Resolvidos de Construtores

Ver Teoria

Enunciado

Crie uma classe chamada E q u a c a o onde se o construtor receber três parâmetros a , b , c deve-se calcular a solução de uma equação de segundo grau. Se receber dois parâmetros a , b deve encontrar a solução para uma equação de primeiro grau quando a curva cruza o eixo x .

Para fins de teste utilize a = 1 e b = - 3 para a equação de primeiro grau, e utilize a = 1 , b = - 3 e c = 2 para a equação de segundo grau.

Passo 1

Vamos nessa galerinha. O que essa questão está pedindo é pra criarmos uma classe com um construtor sobrecarregado, o primeiro caso considerando uma equação de primeiro grau e no segundo caso consideramos uma equação de segundo grau.

Vamos começar pelo cabeçalho. Para resolver equações de segundo grau vamos precisar incluir a < c m a t h >

Passo 2

Vamos começar a nossa classe chamada E q u a ç ã o . Pra começar vamos declarar os atributos da classe.

Todos os atributos estarão privados para garantir a integridade dos dados. Vamos precisar de três atributos a , b e c para receber os coeficientes das equações. Note que o atributo c só será utilizado quando a equação tiver grau 2.

Também vamos declarar dois atributos x 1 e x 2 que conterão os resultados da equação. Da mesma forma, o atributo x 2 só será usado nas equações de segundo grau

Passo 3

Vamos desenvolver um método c a l c _ g r a u 1 ( ) do tipo v o i d que calcula o valor de x quando a reta cruza o eixo das abscissas. Na linha 10 usamos um c o u t para exibir a equação para o usuário. Na linha 13 calculamos a raiz da equação e guardamos o resultado no atributo x 1 . Para concluir, na linha 14 usamos o c o u t para exibir o resultado pro usuário.

Vamos criar um segundo método c a l c _ g r a u 2 do tipo v o i d que calcula a equação de segundo grau. Na linha 19 utilizamos a instrução c o u t para exibir a equação para o usuário.

Na linha 22 calculamos o valor de Δ , note que declaramos uma nova variável dentro da função, pois ela só deve existir durante o cálculo.

Em seguida, usamos uma instrução i f - e l s e para determinar quando é impossível obter soluções reais ( Δ < 0 ) ou quando é possível obter soluções reais ( Δ ≥ 0 ) .

No primeiro caso, usamos o c o u t para informar o usuário. No segundo caso efetuamos os cálculos para encontrar as raízes, e exibimos os resultados.

Passo 4

Agora vamos pro coração da questão e desenvolver nossos métodos construtores.

Primeiro de tudo, precisamos mudar o contexto da classe de privado para público utilizando o p u b l i c

Precisamos definir um construtor para o caso de um objeto que recebe três valores no momento de sua criação. Começamos criando uma função sem tipo com o mesmo nome da classe, e que receba três parâmetros: A ,   B e C . Usaremos letras maiúsculas para não confundir com os atributos que definimos nos passos anteriores.

Em seguida, no corpo do construtor vamos utilizar os valores recebidos para setar os atributos da classe.

Com os valores dos atributos definidos, podemos chamar a função c a l c _ g r a u 2 para efetuar o calcula e exibir os resultados pro usuário.

Seguindo os mesmos princípios, vamos criar uma sobrecarga para o construtor. Vamos criar uma segunda função sem tipo chamada E q u a c a o mas que, desta vez, receba apenas dois parâmetros.

Da mesma forma, usaremos os valores recebidos para preencher os atributos da classe. Em seguida, vamos chamar o método c a l c _ g r a u 1 para efetuar os cálculos.

E isso conclui a nossa classe.

Passo 5

Antes de finalizar a questão, vamos executar os testes com os valores sugeridos pela questão:

Primeiro vamos criar um objeto chamado e q 1 que calcule uma equação de primeiro grau com os valores 1 e - 3 . E um segundo objeto chamado e q 2 que calcule uma equação de segundo grau com os valores 1 , - 3 e 2

O resultado é:

Resposta