Помоги в Javascript с getElementById

Очень хорошие, я приношу ко всем некоторое время пробуя и совсем не... кто-то мог бы исправлять меня и говорить мне, какова моя ошибка? весь код функционирует хорошо, ошибка состоит в том, чтобы хотеть взять стоимость формуляра, это - то, что я не функционирует

<!DOCTYPE html>
<html>
<head>
<title>Metodo de bisecion</title>
</head>

<body>
<h2>La funcion a iterar es: 6x^3-2x^2-x-1 = 0 en [0.5, 1]</h2><br><br>

<script type="text/javascript">

var n, an, fan, bn, fbn, pn, fpn;
n = 1;
an = parseFloat(document.getElementById("an").value);
bn = parseFloat(document.getElementById("bn").value);



//Comienza la iteracion
function biseccion(){

    do {

        pn = (an+bn)/2;


        fpn =Math.abs((6*(Math.pow(pn, 3))) - (2*(Math.pow(pn, 2))) - pn - 1);

        document.write(" | " + n + " | " + an + " | " + bn + " | " + pn + " | " + fpn + " | " + "<br><br>");

        fpn =(6*(Math.pow(pn, 3))) - (2*(Math.pow(pn, 2))) - pn - 1;

        fan =(6*(Math.pow(an, 3))) - (2*(Math.pow(an, 2))) - an - 1;

        if (fpn*fan > 0) {
            an = pn;
            bn = bn;
        }
        else if (fpn*fan < 0) {
            bn = pn;
            an = an;
        }

        else{

            alert("No se pudo determinar");
        }

        fpn =Math.abs((6*(Math.pow(pn, 3))) - (2*(Math.pow(pn, 2))) - pn - 1);

        n++;

    } while (fpn > 0.0001);

};

</script>

<!-- Formulario para ingresar intervalo de valores -->

<form>

a:<input type="text" id="an"><br><br>
b:<input type="text" id="bn"><br><br>
<input type="button" value="Comenzar iteraciones" onclick="biseccion()">

</form>

</body>

</html>
2
задан 27.03.2016, 06:00
2 ответа

Ты берешь стоимость an и bn в начало, но он не становится отвечающим современным требованиям, если ты помещаешь две lГ-neas с getElementById внутри нее funciГіn, для того, чтобы они использовали стоимость во время нажимания клавиши, deberГ, - чтобы функционировать.

2
ответ дан 24.11.2019, 14:41
  • 1
    Большое спасибо друг! уже функционируй, но только для первого повторения! – Power_HR 26.03.2016, 23:49
  • 2
    Я отношусь во внутри funci и # 243; n, но перед циклом DO-WHILE, так как изменяется стоимость. – Arnau Castellví 26.03.2016, 23:51
  • 3
    Весь raz и # 243; n друг, уже est и # 225; исправленный и функционируй!! – Power_HR 26.03.2016, 23:55

Правильна форма, в которой ты получаешь стоимость:

valor = document.getElementById("an").value;

, но ты мог бы определять их внутри, когда ты выполняешь твою функцию, он взял бы стоимость, с этим это было бы достаточным:

<!DOCTYPE html>
<html>
<head>
<title>Metodo de bisecion</title>
<script>




var n, an, fan, bn, fbn, pn, fpn;
n = 1;


//Comienza la iteracion
function biseccion(){

an = parseFloat(document.getElementById("an").value);
bn = parseFloat(document.getElementById("bn").value);

alert(an);
alert(bn);

    do {

        pn = (an+bn)/2;


        fpn =Math.abs((6*(Math.pow(pn, 3))) - (2*(Math.pow(pn, 2))) - pn - 1);

        document.write(" | " + n + " | " + an + " | " + bn + " | " + pn + " | " + fpn + " | " + "<br><br>");

        fpn =(6*(Math.pow(pn, 3))) - (2*(Math.pow(pn, 2))) - pn - 1;

        fan =(6*(Math.pow(an, 3))) - (2*(Math.pow(an, 2))) - an - 1;

        if (fpn*fan > 0) {
            an = pn;
            bn = bn;
        }
        else if (fpn*fan < 0) {
            bn = pn;
            an = an;
        }

        else{

            alert("No se pudo determinar");
        }

        fpn =Math.abs((6*(Math.pow(pn, 3))) - (2*(Math.pow(pn, 2))) - pn - 1);

        n++;

    } while (fpn > 0.0001);

};

</script>
</head>

<body>
<h2>La funcion a iterar es: 6x^3-2x^2-x-1 = 0 en [0.5, 1]</h2><br><br>

<form>

a:<input type="text" id="an"><br><br>
b:<input type="text" id="bn"><br><br>
<input type="button" value="Comenzar iteraciones" onclick="biseccion()">

</form>

</body>

</html>
2
ответ дан 24.11.2019, 14:41
  • 1
    Сейчас s и # 237;!! я ему благодарен много!: D – Power_HR 26.03.2016, 23:55