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

    Problema operazioni calcolatrice

    Ciao a tutti. Ho fatto la calcolatrice in javascript. Solo che non mi funzionano le operazioni apparte la somma. Eppure ho fatto giusto...Guardate per favore:
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script lan="javascript">
    var calcolo='';
    var temp='';

    function aggiungi(n) {
    document.wall.finestra1.value=document.wall.finest ra1.value+n}

    function cancella() {
    document.wall.finestra1.value=''
    document.wall.finestra2.value=''}

    function opposto(o) {
    num1=eval(o)
    num1=-num1
    document.wall.finestra1.value=num1}

    function inverso(i) {
    var c;
    c=1/(document.wall.finestra1.value);
    document.wall.finestra1.value=c}


    function radiceq(r) {
    var number=document.wall.finestra1.value;
    var sqrt=Math.sqrt(number);
    if (number < 0)
    {alert("impossibile");}
    document.wall.finestra2.value=number;
    document.wall.finestra1.value=sqrt;}

    function binario(){
    var c=1,x,r=0,y=0,p=1;
    x=document.wall.finestra1.value;
    while(x!=0)
    {r=x % 2;
    x=x-r;
    p=r*c;
    y=y+p;
    c=c*10;
    x=x/2;};
    document.wall.finestra2.value=y;
    }

    function somma(){
    temp=document.wall.finestra1.value;
    document.wall.finestra1.value='+';
    calcolo='somma';
    }

    function sottrazione(){
    temp=document.wall.finestra1.value;
    document.wall.finestra1.value='-';
    calcolo='sottrazione';
    }

    function divisione(){

    temp=document.wall.finestra1.value;
    document.wall.finestra1.value='/';
    calcolo='divisione';
    }

    function moltiplicazione(){
    temp=document.wall.finestra1.value;
    document.wall.finestra1.value='*';
    calcolo='moltiplicazione';
    }

    function totale() {
    var risultato=0;
    if (calcolo == 'somma') {
    risultato=temp + document.wall.finestra1.value;
    document.wall.finestra2.value=temp+document.wall.f inestra1.value+'='+risultato;
    document.wall.finestra1.value=0;
    calcolo = ''; }
    else if (calcolo == 'sottrazione') {
    risultato=temp - document.wall.finestra1.value;
    document.wall.finestra2.value=temp + document.wall.finestra1.value +'='+risultato;
    document.wall.finestra1.value=0;
    calcolo = '';}
    else if (calcolo == 'moltiplicazione') {
    risultato=temp * document.wall.finestra1.value;
    document.wall.finestra2.value=temp+document.wall.f inestra1.value+'='+risultato;
    document.wall.finestra1.value=0;
    calcolo = '';}
    else if (calcolo == 'divisione') {
    risultato=temp / document.wall.finestra1.value;
    document.wall.finestra2.value=temp+document.wall.f inestra1.value+'='+risultato;
    document.wall.finestra1.value=0;
    calcolo = '';}
    }


    function percentuale(p) {
    document.wall.finestra1.value=document.wall.finest ra1.value/100+'%'}
    </script>
    </head>
    <body onLoad="cancella()">
    <form name="wall">



    <table border="1" align="center">

    <tr><td colspan=5 align="center">
    <textarea id="styled1" cols=24 rows=2 value="" name="finestra1"></textarea></td></tr>
    <tr>
    <td id="titolo" align="center" colspan=4><div>NEXT KAISER</div></td>
    <td id="simboliA" align="center"><input id="simboliA1" type="button" value=" % " onClick="percentuale(wall.finestra1.value)"></td></tr>
    <tr>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 7 " onClick="aggiungi('7')"></td>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 8 " onClick="aggiungi('8')"></td>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 9 " onClick="aggiungi('9')"></td>
    <td align="center"><input type="button" value=" / " onClick="divisione()"></td>
    <td align="center"><input type="button" value=" +/- " onClick="opposto(wall.finestra1.value)"></td>
    </tr>
    <tr>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 4 " onClick="aggiungi('4')"></td>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 5 " onClick="aggiungi('5')"></td>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 6 " onClick="aggiungi('6')"></td>
    <td align="center"><input type="button" value=" * " onClick="moltiplicazione()"></td>
    <td align="center"><input type="button" value=" 1/x " onClick="inverso(wall.finestra1.value)"></td>
    </tr>
    <tr>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 1 " onClick="aggiungi('1')"></td>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 2 " onClick="aggiungi('2')"></td>
    <td id="numeri" align="center"><input id="numeri1" type="button" value=" 3 " onClick="aggiungi('3')"></td>
    <td align="center"><input type="button" value=" - " onClick="sottrazione();"></td>
    <td rowspan=2 align="center">
    <input type="button" value="= " onClick="totale()"></td>
    </tr>
    <tr>
    <td id="numeri" colspan=2 align="center">
    <input id="numeri1" type="button" value="0" onClick="aggiungi('0')"></td>
    <td align="center"><input type="button" value="." onClick="aggiungi('.')"></td>
    <td align="center"><input type="button" value=" + " onClick="somma();"></td>
    <tr><td></td><td></td><td></td>
    <td align="center"><input type="button" value="b2" onClick="binario()"></td>
    <td align="center"><input type="button" value="sqrt" onClick="radiceq()"></td>
    </tr>
    </tr>
    <tr><td align="center" colspan=5><input type="button" value=" CANC " onClick="cancella()"></td></tr>
    <tr><td colspan=5 align="center">
    <textarea style="text-align:center; background-color:black; border:0; color:#D9D919;" cols=24 rows=2 value="" name="finestra2"></textarea></td></tr>
    </table>
    </form>
    </body>
    </html>

  2. #2
    Ci credo che non funziona: quando clicci sull'operatore (+ - / *) non devi scriverlo nel campo di testo ma solo evidenziarlo ed azzerare il campo, altrimenti ti ritrovi ad eseguire:

    "44" * "*44" e dato che "*44" non è un numero la moltiplicazione non è un numero (per questo ti ritorna NaN: Not a Number)
    I DON'T Double Click!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.