sexta-feira, 17 de março de 2017

Algoritmo no VisualG: Equação do segundo grau

Bem vindo(a);
Vamos aprender na aula de hoje como fazer um algoritmo no visualg que calcula raízes de equações do segundo grau:

Primeiro vamos definir os terminais do algoritmo: inicio e fim:

Algoritmo "Calculadora de equações do segundo grau"

inicio


fimalgoritmo


Também devemos definir as variáveis do programa.
Como numa equação de segundo grau temos 2 coeficientes (a e b) e mais um termo independente (c), temos também
o delta (d) e por fim, as duas raízes da equação: x1 e x2, logo, teremos 6 variáveis.
Definindo-as com o comando 'var' e salientando que são variáveis que assumem valores reais, temos:

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio

fimalgoritmo

Vamos pedir pro usuário digitar o valor de 'a' através do comando 'escreval':

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")

fimalgoritmo

Nesse momento faremos o programa ler e armazenar na variável 'a' o valor digitado pelo usuário.

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)

fimalgoritmo

Vamos fazer o mesmo com as outras variáveis (b e c):

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)
escreval("Digite o valor do coeficiente B")
leia(b)
escreval("Digite o valor o termo C")
leia(c)

fimalgoritmo

Vamos fazer agora o programa calcular o delta da equação.
Lembra-se da fórmula? 
delta = b² - 4 * a * c

No visualg o comando para potência é: exp(base,expoente) - no caso, nossa base é 'b' e o expoente é 2, então fica assim:

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)
escreval("Digite o valor do coeficiente B")
leia(b)
escreval("Digite o valor o termo C")
leia(c)
d:= exp(b,2) - 4 * a * c

fimalgoritmo

Podemos exibir o valor de delta com o comando escreval:

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)
escreval("Digite o valor do coeficiente B")
leia(b)
escreval("Digite o valor o termo C")
leia(c)
d:= exp(b,2) - 4 * a * c
escreval("Delta é igual a", d)

fimalgoritmo

Vamos verificar agora se delta é igual ou maior que zero ou menor que zero.
Se for igual ou maior que 0, calcula-se as raízes da equação, do contrário, aparece uma mensagem. 
Utilizando o condicional 'se', temos:

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)
escreval("Digite o valor do coeficiente B")
leia(b)
escreval("Digite o valor o termo C")
leia(c)
d:= exp(b,2) - 4 * a * c
escreval("Delta é igual a", d)
se (d >= 0) entao

senao

escreva("Não possui raízes reais")
fimse

fimalgoritmo

Dentro do bloco do 'se' vamos calcular as duas raizes da equação, utilizando Bhaskara:
x = -b +- Vdelta /2*a

Só avisando que o comando de raiz quadrada no visualg é raizq(valor), ok?
Vamos utilizar a variável 'x1' para calcular o valor da soma da raiz e x2 da subtração, ficamos com:

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)
escreval("Digite o valor do coeficiente B")
leia(b)
escreval("Digite o valor o termo C")
leia(c)
d:= exp(b,2) - 4 * a * c
escreval("Delta é igual a", d)
se (d >= 0) entao
x1:= (-b+raizq(d))/2*a
x2:= (-b-raizq(d))/2*a
senao
escreva("Não possui raízes reais")
fimse

fimalgoritmo

Por fim, exibiremos o resultado das raízes:

Algoritmo "Calculadora de equações do segundo grau"
var
a, b, c, d, x1, x2: real
inicio
escreval("Digite o valor do coeficiente A")
leia(a)
escreval("Digite o valor do coeficiente B")
leia(b)
escreval("Digite o valor o termo C")
leia(c)
d:= exp(b,2) - 4 * a * c
escreval("Delta é igual a", d)
se (d >= 0) entao
x1:= (-b+raizq(d))/2*a
x2:= (-b-raizq(d))/2*a
escreva("As raízes da equação são:", x2," ", "e", " ", x1)
senao
escreva("Não possui raízes reais")
fimse
fimalgoritmo

Acabou, agora pode testar o algoritmo.
Pra testar, rode essa equação:

x² - 10x + 24 = 0

*Lembrando que na hora de digitar os coeficientes, você só deve colocar o número e não pode esquecer de colocar o sinal.

Pode conferir fazendo à mão com Bhaskara com o resultado que o algoritmo exibiu.

Teste também essa equação: x² + x + 1 = 0, para ver o resultado não tendo raízes reais.
Teste também com outros valores e veja a eficiência do código!

Gostaram? Então aguarde as próximas aulas, tchau, tchau!

4 comentários: