-1
I am developing a simple program to help in the calculation of bhaskara formula (the one we learned in school) I already have a code made in C that works perfectly, but when I was "port" to Javascript, it just doesn’t work, I have tested some functions separately ( if function and Math.sqrt() work perfectly in isolation) but I cannot make it work.
I will be making available the code in Javascript (that does not work) and the code in C (that works), I thank in advance those who help me.
Javascript code (does not work)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> Cálculo de Bhaskara </title>
<script LANGUAGE="JavaScript" type="text/javascript">
// Abaixo recebemos do usuário o valor do A, B e C.
var valora = parseInt(prompt("Digite o valor de A: "));
var valorb = parseInt(prompt("Digite o valor de B: "));
var valorc = parseInt(prompt("Digite o valor de C: "));
// Abaixo calculamos a fórmula propriamente dita.
var quadradodeb = valorb * valorb;
var delta = quadradodeb - 4 * (valora * valorc);
// Abaixo verificamos se o Delta é = 0 ou <0 e se é possível continuar a calcular.
if(delta < 0){
document.write("Não é possível calcular pois o Delta é menor que zero.");
}
if(delta == 0){
document.write("O Delta é zero, portando os valores de X1 e X2 serão iguais.<br>");
}
var valordebneg = valordeb * (-1); /* INVERTE O SINAL DO B */
var raizdedelta = Math.sqrt(delta); /* CALCULA A RAIZ DO DELTA, NO CASO, FEITO PELA FUNÇÃO Math.sqrt(variável) */
var divisor = 2 * valordea; /* CALCULA O DIVISOR, NO CASO QUE DIVIDIRÁ B + RAIZ DE DELTA */
var resultadox1 = (valordebneg + raizdedelta) / divisor; /* CALCULA O X1 */
var resultadox2 = (valordebneg - raizdedelta) / divisor; /* CALCULA O X2 */
document.write("∆ = B² - 4 X A X C<br>");
document.write("∆ = " + quadradodeb + " - 4 X " + valora + " X " + valorb);
document.write("<br>∆ = " + delta);
document.write("<br>X = -B +ou- √∆ <br>__________________<br> 2 X A");
document.write("<br> X = " + valordebneg + " +ou- " + raizdedelta + "<br>____________________<br> 2 X " + valora);
document.write("<br><br>X1 = " + quadradodeb + " + " + raizdedelta + " / " + divisor);
document.write("<br>X1 = " +resultadox1);
document.write("<br><br>X2 = " + quadradodeb + " - " + raizdedelta + " / " + divisor);
document.write("<br>X2 = " +resultadox2);
</script>
</head>
<body>
</body>
</html>
Code in C (works)
#include<stdio.h>
#include<stdlib.h>
#include <math.h> /* função sqrt(); */
int main()
{
float valordea, valordeb, valordec, resultadox1, resultadox2, quadradodeb, delta, valordex, raizdedelta, valordebneg, divisor;
/* AQUI SE INPUTAM OS VALORES DE A B e C. */
printf("Este programa faz e demonstra o processo da formula de Bhaskara.\n Siga o exemplo para inserir os Valores:\n (A)*X2 (B)*X (C) = 0\n\n");
printf("Digite o valor de A:\n");
scanf("%f",&valordea);
printf("\nDigite o valor de B:\n");
scanf("%f",&valordeb);
printf("\nDigite o valor de C:\n");
scanf("%f",&valordec);
/* AQUI SE APLICA A FÓRMULA DE BHASKARA EM VARIÁVEIS QUE SERÃO MOSTRADAS DEPOIS */
quadradodeb=valordeb*valordeb; /* CALCULA O QUADRADO DE B */
delta=quadradodeb-4*valordea*valordec; /* CALCULA O DELTA */
/* ---------------------------------------------------------------------------------------*/
/* CALCULA SE É POSSÍVEL PROSSEGUIR COM A CONTA */
if(delta<0) /* ESCREVE NA TELA CASO O DELTA SEJA MENOR QUE ZERO. */
{
system("cls");
printf("\n Nao e possivel calcular, o delta e menor que zero. \n\n");
system("pause");
return 0;
}
if(delta==0) /* ESCREVA NA TELA SE O X1 E X2 SERÃO IGUAIS */
{
system("cls");
printf("\n\nO valor de delta e zero, portanto as duas raizes (X1 e X2) sao iguais.\n\n");
}
/* ---------------------------------------------------------------------------------------*/
valordebneg=valordeb*(-1); /* INVERTE O SINAL DO B */
raizdedelta=sqrt(delta); /* CALCULA A RAIZ DO DELTA */
divisor=2*valordea; /* CALCULA O DIVISOR, NO CASO QUE DIVIDIRÁ B + RAIZ DE DELTA */
resultadox1=(valordebneg+raizdedelta)/divisor; /* CALCULA O X1 */
resultadox2=(valordebneg-raizdedelta)/divisor; /* CALCULA O X2 */
system("cls");
printf("Delta=B2-4*A*C \n"); /* MOSTRA A FÓRMULA */
printf("\nDelta = %.2f - 4 * %.2f * %.2f\n",quadradodeb, valordea, valordeb); /*MOSTRA O RESULTANDO NA FÓRMULA */
printf("\nDelta = %.2f\n\n\n",delta);
printf("X = -B +ou- Raiz de Delta \n _________________________\n 2*A \n\n"); /* MOSTRA A FÓRMULA */
printf("\nX1 = %.2f + %.2f Dividido por %.2f\n", quadradodeb, raizdedelta, divisor); /*MOSTRA O RESULTANDO NA FÓRMULA */
printf("\nX1 = %.2f\n\n\n",resultadox1);
printf("\nX2 = %.2f - %.2f Dividido por %.2f\n", quadradodeb, raizdedelta, divisor);/*MOSTRA O RESULTANDO NA FÓRMULA */
printf("\nX2 = %.2f\n\n\n",resultadox2);
system ("pause");
}
Thank you very much! I spent a lot of time looking for problems but it was something so simple, thank you for your answer! Soon this code will be part of an educational project, I will remember your help until the end of the conclusion.
– Luis Fernando Consulo Martins