Equação de segundo grau

Publicado por Adson Renato (última atualização em 06/04/2010)

[ Hits: 13.624 ]

Download equação de2 grau.txt




Código para resolver equações de segundo grau.

  



Esconder código-fonte

Program Eq2grau ;

Var a, b, c :integer;
delta, x1, x2 :real;

Begin
write('Insira o valor de A:');
readln(a);
write('Insira o valor de B:');
readln(b);
write('Insira o valor de C:');
readln(c);
if(a>0) then
begin
delta:=((sqr(b))-(4*a*c));
x1:=(-b+sqrt(delta)/(2*a));
x2:=((b-(2*b))-sqrt(delta)/(2*a));
writeln('A equacao possui duas raizes reais e distintas, são elas: X´:',x1 , 'e X´´:',x2);
end
else
begin
if(a=0) then
begin
delta:=((sqr(b))-(4*a*c));
x1:=(-b+sqrt(delta)/(2*a));
writeln('A equacao possui apenas uma raiz real, X:', x1);
end
else
writeln('A equacao naum possui raizes reais');
end;
End.

Scripts recomendados

Menor número, maior número, soma e multiplicação

Estrutura de dados - lista

Executar comando do DOS.

Funções de Manipulação de Arquivos Pascal

Joguinho Tetris


  

Comentários
[1] Comentário enviado por Hernandez281092 em 07/04/2010 - 01:01h

e aêw amigão, o algorítimo em pascal tá bacaninha só que vc esqueceu só um detalhe, na lógica do algorítimo, depois que vc encontra o valor de delta, vc deve usar uma condicional pra saber se ele é positivo ou nulo, pq se ele for negativo ele naum vai ter solução no conjunto dos número reais, só no complexos,e o mais importante é q pra ser uma equação do segundo grau o valor de a tem que ser diferente de "0", o seja (a<>0) e não (a>0), pq assim se o "a" não assumisse valores positivos ele não faria parte da equação do segundo grau, quando isso é aceitável numa expressão desse tipo, o "a" só não pode ser nulo,OUTRA COISA, SE O VALOR DE "A" FOR ZERO VOCÊ NÃO PODERIA CALCULAR DELTA PQ NÃO HAVEIRA UMA EQUAÇÃO DO SEGUNDO GRAU, JÁ QUE A CONDIÇ~]AO PRIMORDIAL É QUE EXISTA UM COEFICIENTE NÃO NULO PARA "A",aí ele fica assim depois das alterações:


program segundo_grau; {AS FRASES ESCRITAS ENTRE COLCHETES NÃO AFETAM O FUNCINAMENTO DO PROGRAMA, POIS SERVEM COMO NOTAS PRA FACILITAR O ENTENDIMENTO DO MESMO}
uses crt;
var a,b,c,delta,x1,x2:real;
begin;
clrscr; {TEM A FUNÇÃO DE LIMPAR A TELA CASO VOCÊ QUEIRA EXECUTAR O PROGRAMA MAIS DE UMA VEZ}
writeln('digite o valor de "a":');
readln(a);
writeln('digite o valor de "b":');
readln(b);
writeln('digite o valor de "c":');
readln(c);
if (a<>0) then
begin
delta:=(b*b)-(4*a*c);
if (delta>0) then
begin
x1:=(-(b)+sqrt(delta))/(2*a);
x2:=(-(b)-sqrt(delta))/(2*a);
writeln('o valor da primeira raiz ‚:');
DELAY(1005);{COMANDO OPICIONAL PARA DAR UM PEQUENO INTERVALO DE TEMPO AO RESULTADO}
writeln(x1:7:2,#7); { < #7 > FAZ COM QUE UM PEQUENO BEEP SEJA EMITIDO COM O RESULTADO}
writeln('o valor da segunda raiz ‚:');
DELAY(1005);
writeln(x2:7:2,#7); {O NÚMERO APÓS OS PRIMEIROS DOIS PONTOS DETERMINA O ESPAÇAMENTO DA MARGEM DA ESQUERDA, E O SEGUNDO NÚMERO TAMBPEM DEPOIS DE DOIS PONTOS, A QUANTIDADE DE CASAS DEPOIS DA VIRGULA CONSIDERADAS NO RESULTADO}
end
else
if (delta=0) then
begin
x1:=(-(b))/(2*a);
writeln('a única raiz da equação é:');
DELAY(1005);
writeln(x1:7:2,#7);
end
else
writeln('a equação não tem soluão nos reais');
end
else
writeln('a equação não é do segundo grau');
readkey;
end.



[2] Comentário enviado por adsonrenato em 07/04/2010 - 14:30h

valeu, entendi :D


Contribuir com comentário