Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-11-2014, 15:58   #1
matteo11102009
Junior Member
 
Iscritto dal: May 2012
Messaggi: 22
[javascript] Calcolatrice con javascript non funzionante

ciao a tutti.. oggi ho provato a realizzare una calcolatrice con javascript solo che non esegue correttamente la somma e non esegue le operazioni di sottrazione, moltiplicazione e divisione; sapreste aiutarmi? vi allego il codice:
javascript:
Codice:
<script type="text/javascript">
            var temp = 0;
            function cancella() {
                    temp=0;
                    document.getElementById("in_text_result").value="0";
                    document.getElementById("hidden_accum").value="";
                    document.getElementById("hidden_result").value="";
            }
            function selezione(value){
                var sem = "0";
                if (document.getElementById("in_text_result").value=="0") {
                    document.getElementById("in_text_result").value="";
                }
                value = document.getElementById("in_text_result").value + value;
                if (sem=="0") {
                    var ottengo_valore_completo = parseFloat(value);
                    document.getElementById("in_text_result").value=value;
                    document.getElementById("hidden_accum").value=value;
                }

             }
             function operazione(operatore){
                /* value = 20 = .
                 * value = 21 = +
                 * value = 22 = -
                 * value = 23 = *
                 * value = 24 = /
                 * value = 25 = "="
                 */
                //verifico la presenza di operatori
                valore = document.getElementById("hidden_accum").value;
                switch(operatore){
                    case 20:
                        operatore=".";
                        break;
                    case 21:
                        temp = parseFloat(valore)+temp;
                        operatore="+";
                        document.getElementById("hidden_accum").value="";
                        document.getElementById("hidden_result").value=temp;
                        break;
                    case 22:
                        temp = parseFloat(valore)-temp;
                        operatore="-";
                        document.getElementById("hidden_accum").value="";
                        document.getElementById("hidden_result").value=temp;
                        break;
                    case 23:
                        temp = parseFloat(valore)*temp;
                        operatore="*";
                        document.getElementById("hidden_accum").value="";
                        document.getElementById("hidden_result").value=temp;
                        break;
                    case 24:
                        temp = parseFloat(valore)/temp;
                        operatore="/";
                        document.getElementById("hidden_accum").value="";
                        document.getElementById("hidden_result").value=temp;
                        break;
                    case 25:
                        document.getElementById("in_text_result").value = document.getElementById("hidden_result").value;
                        break;
                }
                if (operatore!="25") {
                    document.getElementById("in_text_result").value=operatore;
                    document.getElementById("hidden_accum").value=temp;

                }
             }
        </script>
HTML
Codice:
<table border="0" cellpadding="3" cellspacing="3">
            <tr>
                <td  colspan="4"><input disabled type="text" value="0" id="in_text_result" onchange=""></td>
             </tr>
            <tr>
                <td ><input type="reset" id="button_tipe" onclick="cancella();" value="CANC"></td>
                <td ><input type="button" id="button_tipe" value="*" onclick="operazione(23)"></td>
                <td ><input type="button" id="button_tipe" value="/" onclick="operazione(24)"></td>
                <td ><input type="button" id="button_tipe" value="-" onclick="operazione(22)"></td>
             </tr>
            <tr>
                <td ><input type="button" id="button_tipe" value="7" onclick="selezione(7);"></td>
                <td ><input type="button" id="button_tipe" value="8" onclick="selezione(8);"></td>
                <td ><input type="button" id="button_tipe" value="9" onclick="selezione(9);"></td>
                <td  rowspan="2"><input type="button" id="button_tipe" value="+" onclick="operazione(21)"></td>
             </tr>
            <tr>
                <td ><input type="button" id="button_tipe" value="4" onclick="selezione(4);"></td>
                <td ><input type="button" id="button_tipe" value="5" onclick="selezione(5);"></td>
                <td ><input type="button" id="button_tipe" value="6" onclick="selezione(6);"></td>
             </tr>
            <tr>
                <td ><input type="button" id="button_tipe" value="1" onclick="selezione(1);"></td>
                <td ><input type="button" id="button_tipe" value="2" onclick="selezione(2);"></td>
                <td ><input type="button" id="button_tipe" value="3" onclick="selezione(3);"></td>
                <td  rowspan="2"><input type="button" id="button_tipe" value="=" onclick="operazione(25)"></td>
             </tr>
            <tr>
                <td  colspan="2"><input type="button" id="button_tipe" value="0" onclick="selezione(0);"></td>
                <td ><input type="button" id="button_tipe" value="." onclick="operazione(20)"></td>
             </tr>
            <input type="hidden" value id="hidden_accum">
            <input type="hidden" value id="hidden_result">
        </table>
Grazie mille in anticipo per ogni eventuale risposta
matteo11102009 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2014, 16:41   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quote:
non esegue correttamente la somma e non esegue le operazioni di sottrazione, moltiplicazione e divisione
Praticamente non esegue nulla
Puoi inserirla in jsfiddle?
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2014, 20:56   #3
matteo11102009
Junior Member
 
Iscritto dal: May 2012
Messaggi: 22
non sono riuscito ad importare il file sul sito... ho condiviso il file su google drive.. il link per accedervi è il seguente: https://drive.google.com/file/d/0BxL...ew?usp=sharing
matteo11102009 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2014, 02:05   #4
Amsirak
Senior Member
 
L'Avatar di Amsirak
 
Iscritto dal: Feb 2009
Messaggi: 845
Ciao matteo, ci sono alcuni errori semantici: ti mostro uno stato della macchina dopo una semplice somma;

Codice:
temp = 0

---------------------

premo 9 (value = 9)
value = document.getElementById("in_text_result").value + value = "" + 9 = "9"
document.getElementById("in_text_result").value = value = "9"
document.getElementById("hidden_accum").value = value = "9"

---------------------

premo +

valore = document.getElementById("hidden_accum").value = "9"
temp = parseFloat(valore)+temp; = 9 + 0 = 9
operatore="+"
document.getElementById("hidden_accum").value = ""
document.getElementById("hidden_result").value = temp = 9
document.getElementById("in_text_result").value = operatore = "+"
document.getElementById("hidden_accum").value = temp = 9

--------------------

premo 7 (value = 7)

value = document.getElementById("in_text_result").value + value = "+" + 7 = "+7"
document.getElementById("in_text_result").value = value = "+7"
document.getElementById("hidden_accum").value = value = "+7"

--------------------

premo =

valore = document.getElementById("hidden_accum").value = "+7"
document.getElementById("in_text_result").value = document.getElementById("hidden_result").value = 9 //QUESTA SOMMA (9+7) VISUALIZZA 9

--------------------

premo +

valore = document.getElementById("hidden_accum").value = "+7"
temp = parseFloat(valore)+temp; = 7 + 9 = 16
operatore="+"
document.getElementById("hidden_accum").value = ""
document.getElementById("hidden_result").value = temp = 16
document.getElementById("in_text_result").value = operatore = "+"
document.getElementById("hidden_accum").value = temp = 16

---------------------

premo 1 (value = 1)

value = document.getElementById("in_text_result").value + value = "+" + 1 = "+1"
document.getElementById("in_text_result").value = value = "+1"
document.getElementById("hidden_accum").value = value = "+1"

--------------------

premo =

valore = document.getElementById("hidden_accum").value = "+1"
document.getElementById("in_text_result").value = document.getElementById("hidden_result").value = 16 //QUESTA SOMMA (9+7+1) VISUALIZZA 16
Come vedi, quando si preme = viene visualizzato il valore contenuto nella variabile
document.getElementById("hidden_result").value, che però viene incrementata solo quando si preme il tasto +, ignorando completamente il secondo operando!
Quindi premi "9, +" e in quel momento
document.getElementById("hidden_result").value diventa uguale a 9.
Poi premi 7 e
document.getElementById("hidden_result").value resta uguale a 9.
Poi premi = e
document.getElementById("in_text_result").value diventa uguale a document.getElementById("hidden_result").value, cioè a 9.
La seconda somma aggiunge anche il 7 alla variabile document.getElementById("hidden_result").value portanto il totale a 16 (qualunque numero sommi dopo, io ho sommato 1 ma il risultato sarebbe stato 16 a prescindere)

Per aggiustare addizione e sottrazione ti basta sostituire il case 25:
Codice:
case 25:
                        document.getElementById("in_text_result").value = parseFloat(document.getElementById("hidden_result").value) + parseFloat(document.getElementById("hidden_accum").value);
                        break;
Per la moltiplicazione invece è diverso: dopo che premi *, document.getElementById("hidden_accum").value = "". Quindi poi la variabile valore diventa "", e quando cerca di dare un valore a temp, fa temp = parseFloat(valore)*temp; parseFloat("") dà NaN.

Ultima modifica di Amsirak : 12-11-2014 alle 02:24.
Amsirak è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Hyundai: spunta un'elettrica estremament...
Una connessione diretta con AWS European...
La Toyota Yaris avrà una versione...
Minori sessualizzati da Grok: l'UE mette...
NIO stabilisce il nuovo record di scambi...
Dell Private Cloud sempre più ape...
Ennesimo incidente per la guida autonoma...
Dopo le maniglie, è il turno dei ...
Addio incendi incontrollati? Svolt dice ...
WINDTRE si mette in proprio: vender&agra...
The Mandalorian & Grogu: il trailer ...
OpenClaw sotto attacco: i malware infost...
Resident Evil Requiem: pre-load dal 25 f...
Vaticano, la Messa si traduce in 60 ling...
Kia prepara il facelift della Kia EV5: n...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v