Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    AIUTO!Trasformazione di stringhe in parseInt

    Volevo chiedere come fare a fermare il ciclo while in questo programma.
    Io ho messo degli alert per vedere se i risulati erano giusti...e fin lì non c'era problema, però vedo che gli alert dopo l'ultimo valore della media continuano all'infinito ovviamente mostrando nulla e quindi non ho risultati nei text.
    Questo programma chiede in ingresso numeri separati dalla virgola e poi ti fa vedere la somma, la media....

    Ho sbagliato qualcosa nel while, ma non capisco dove....
    Per il resto funziona.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <htm>
    <head><TITLE>Funzioni matematiche</TITLE>
    <script language="javascript" type="text/javascript">
    function x()
    {
    var dati=window.document.s;
    var a, number, c, k, somma, media,i;
    a= (dati.a.value);
    somma=0;
    min1=0;
    max1=0;
    i=0;


    while(a!=","){
    k=a.indexOf(",");
    number=a.substring(0,k);
    c=a.length;
    a=a.substring(k+1,c);
    alert(number);
    number=parseInt(number);
    somma=somma+number;
    alert(somma);
    i=i+1;
    media=somma/i;
    alert(media);



    }


    dati.somma.value=somma;
    dati.media.value=media;

    }
    </script>
    </head>
    <body>
    <h1>stringhe</h1>


    <form name="s">

    <input type="text" name="a" size="15">n




    <input type="button" name="controllo" onclick="x()" value="OK">



    <input type="text" name="somma">



    <input type="text" name="media">



    <input type="text" name="min1">



    <input type="text" name="max1">






    </form>


    </body>
    </html>

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    codice:
    function x() {
    
      var somma, media, min, max;
      somma=0; 
      min =0;
      max=0;
    
      var numeri = document.a.value.split(',');
      for (var i=0; i<numeri.length; i++) {
        num = parseInt(numeri[i], 10);
        max = (i==0)? num : Math.max(max, num);
        min = (i==0)? num : Math.min(min, num);
        somma += num
      }
      
      media = somma / (numeri.length); 
      alert(["\nsomma:", somma, "\nmedia:", media, "\nmax:", max, "\nmin:", min].join(" "));
    
      document.somma.value=somma;
      document.media.value=media;
      document.max1.value =max;
      document.min1.value =min;
    }
    Non l'ho testato ma dovrebbe funzionare
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.