Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    2

    Metodo dei rettangoli Javascript

    Ho un piccolo problema..
    Devo scrivere uno script che mi calcola un integrale con il metodo dei rettangoli => https://areeweb.polito.it/…/a…/APPUNTI/TESTI/Set_03/Cap1.htm

    Quando eseguo tutto però,la console di html da questo errore:"Uncaught TypeError: funzione is not a function"
    Sapete come aiutarmi?

    Vi lascio il codice:
    <script>
    function metodorettangolicalcolo(){
    var a= document.getElementById("datoa").value;
    var b= document.getElementById("datob").value;
    var c= document.getElementById("datoc").value;
    var d= document.getElementById("datod").value;
    var n= document.getElementById("daton").value;
    var intra= document.getElementById("integrazionea").value;
    var intrb= document.getElementById("integrazioneb").value;
    var i=0;
    var finale=0;
    var x;

    //controllo campi vuoti
    if(a==""){alert("Campo a non puo' essere vuoto");return};
    if(b==""){alert("Campo b non puo' essere vuoto");return};
    if(c==""){alert("Campo c non puo' essere vuoto");return};
    if(d==""){alert("Il termine noto non puo' essere vuoto");return};
    if(n==""){alert("Inserisci il numero di divisioni");return};
    if(intra==""){alert("Inserisci l'estremo di integrazione a");return};
    if(intrb==""){alert("Inserisci l'estremo di integrazione b");return};
    //conversione dei dati
    var a= parseInt(a);
    var b= parseInt(b);
    var c= parseInt(c);
    var d= parseInt(d);
    var n= parseInt(n);
    var intra= parseInt(intra);
    var intrb= parseInt(intrb); /*fine corversione*/
    var h= parseFloat((intra+intrb)/n);
    var funzione= a*Math.pow(x,3)+b*Math.pow(x,2)+c*x+d;
    for(i=intra; i<intrb; i=i+h){
    finale=finale+h*funzione(i+h/2);
    }
    alert(finale);
    }
    </script>

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Questo pezzo di codice è quello che ti da errore
    codice:
    finale=finale+h*funzione(i+h/2);


    "funzione" la dichiari una variabile, forse hai scordato un operatore matematico?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    2
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Questo pezzo di codice è quello che ti da errore
    codice:
    finale=finale+h*funzione(i+h/2);


    "funzione" la dichiari una variabile, forse hai scordato un operatore matematico?

    Si,avevo dimenticato un operatore matematico.. era funzione*(i+h/2)

    Grazie mille!

    Il problema è che ora come risultato mi da "NaN".. Sto impazzendo

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    fatti mostrare a schermo o nella console il valore delle variabili nei vari passaggi

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Postare nell'area corretta del forum aiuta ad avere maggiori aiuti.

    Sposto in JavaScript.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Quando recuperi i valori con getElementById, l'interprete javascript li considera stringhe anche se sono numerici.

    Correggi con:
    codice:
    var variabile=Number(document.getElementById("dato").value);

    Edit:
    mi erano sfuggiti i parseInt() successivi
    Ultima modifica di lucavizzi; 26-04-2017 a 11:56

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.