• User

    Aiuto per programmino in javascript

    Ciao a tutti, mi serve aiuto per un programma in javascript con l'uso di vettori array ecc...
    Ecc il programma che devo fare:
    Programma html/javascript che lavora su un vettore di 10 numeri e svolge le seguenti funzioni

    funzioni(un bottone per ognuna):
    -Inserire 10 numeri nel vettore
    -calcolo della media dei numeri
    -per ogni numero, calcolare la differenza dalla media
    -somma dei numeri positivi e negativi separatamente

    Ad ogni funzione deve appartenere un bottone

    Non importa se i risultati di output appaiono in alert box o caselle testo, basta che mi aiutiate per favore...


  • ModSenior

    Non l'ho testato benissimo ma potrebbe essere uno spunto...
    L'ho fatto però non ho ben capito la differenza dalla media.

    [php]
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Array</title>
    <style type="text/css">
    html,body
    {
    margin:0px;
    padding:0px;
    background:#AAD4FF;
    }
    #tabella
    {
    margin:50px auto 0px auto;
    padding:0px;
    border-collapse:collapse;
    background:#fff;

        }
        td
        {
            border:4px solid #000000;
            vertical-align:middle;
            text-align:center;
            margin:0px;
            padding:10px;            
        }
        #led
        {
            background:#7FFF55;
            height:50px;
            font-size:20px;
            font-weight:bold;
        }
        .numero
        {
            background:#C3C3C3;
            height:50px;
            width:50px;
            text-align:center;
            margin:auto;
            font-size:20px;
            font-weight:bold;
        }
        .pulsante
        {
            background:#D4FFFF;
            font-weight:bold;
            margin:10px;
            font-size:20px;
        }
        </style>
        <script type="text/javascript">
            function ottieniArrayValori()
            {
                var numeri = new Array();
                for(indice=1;indice<=10;indice++)
                {
                    var elemento=document.getElementById("num"+indice);
                    valore=elemento.value;
                    if(valore=="")
                    {
                        elemento.value=0;
                        valore=0;
                    }                    
                    numeri[indice]=valore;
                }
                return numeri;
            }
            function calcolaMedia()
            {
                var somma=0;
                var media=0;
                var myNumeri=ottieniArrayValori();    
                var lunghezza=myNumeri.length;
                for(indice=1;indice<lunghezza;indice++)
                {
                    valore=myNumeri[indice];
                    somma+=parseInt(valore);
                }
                media=somma/10;
                return media;
            }
            
            function scriviMedia()
            {
                var myDivLed=document.getElementById("divled");
                myDivLed.innerHTML="Media dei 10 numeri è : " + calcolaMedia();
            }
            
            function calcolaDifferenzaMedia()
            {
                var myNumeri=ottieniArrayValori();    
                var media=calcolaMedia();
                var stringa="";    
                var lunghezza=myNumeri.length;                
                for(indice=1;indice<lunghezza;indice++)
                {
                    valore=myNumeri[indice];
                    if(stringa=="")
                    {
                        stringa="Numero "+indice+" = " + valore + "("+ parseInt(parseInt(valore)-parseInt(media))+")";
                    }
                    else
                    {
                        stringa+="<br />Numero "+indice+" = " + valore + "("+ parseInt(parseInt(valore)-parseInt(media))+")";
                    }                    
                }
                var myDivLed=document.getElementById("divled");
                myDivLed.innerHTML=stringa;
            }
            function calcolaSommaValori()
            {
                var sommaPositiva=0;
                var sommaNegativa=0;
                var myNumeri=ottieniArrayValori();    
                var lunghezza=myNumeri.length;
                for(indice=1;indice<lunghezza;indice++)
                {
                    valore=myNumeri[indice];
                    if(valore>0)
                    {
                        sommaPositiva+=parseInt(valore);
                    }
                    else
                    {
                        sommaNegativa+=parseInt(valore);
                    }                    
                }        
                var myDivLed=document.getElementById("divled");
                myDivLed.innerHTML="Somma numeri! Positivi = "+sommaPositiva+", Negativi = "+sommaNegativa;
            }
            function azzera()
            {
                for(indice=1;indice<=10;indice++)
                {
                    var elemento=document.getElementById("num"+indice);
                    elemento.value=0;    
                }
                var myDivLed=document.getElementById("divled");
                myDivLed.innerHTML="";
            }
        </script>
    </head>
    <body onload="azzera()">
        <table id="tabella">
            <tr>
                <td><input class="numero" type="text" id="num1" /></td>
                <td><input class="numero" type="text" id="num2" /></td>
                <td><input class="numero" type="text" id="num3" /></td>
                <td><input class="numero" type="text" id="num4" /></td>
                <td><input class="numero" type="text" id="num5" /></td>
                <td><input class="numero" type="text" id="num6" /></td>
                <td><input class="numero" type="text" id="num7" /></td>
                <td><input class="numero" type="text" id="num8" /></td>
                <td><input class="numero" type="text" id="num9" /></td>
                <td><input class="numero" type="text" id="num10" /></td>
            </tr>
            <tr>
                <td id="pulsanti" colspan="10">
                    <input class="pulsante" type="button" value="Media" onclick="scriviMedia()" />
                    <input class="pulsante" type="button" value="Differenza Media" onclick="calcolaDifferenzaMedia()" />
                    <input class="pulsante" type="button" value="Somma" onclick="calcolaSommaValori()" />
                    <input class="pulsante" type="button" value="Azzera" onclick="azzera()" />
                </td>
            </tr>
            <tr>
                <td id="led" colspan="10"><div id="divled" /></td>
            </tr>
        </table>
    </body>
    

    </html>
    [/php]Se ci sono errori dimmelo.
    Il sonno avanza! 😄


  • User

    Oddio... funziona alla grande... Grazie ** Grazie grazie davvero!! Per differenza dalla media si intende sottrarre dalla media ogni numero inserito singolarmente. Cioè, se la media totale è 20 e i numeri sono 2, 3, 7, 6, ecc... si fa 20-2=18, 20-3=17


  • ModSenior

    Quindi avevo invertito la differenza? Facevo numero - media io eh eh vero?
    Lo hai corretto te vero?


  • User

    Sisi! Grazie infinite! E' che non capivo proprio come farlo! Grazie! 😄


  • ModSenior

    Di nulla! 🙂
    Alla prossima! 🙂