Notation classique vers notation npi

Contenu du snippet

ce programme transforme une equation de la forme :
1 + 2 * 3 - 4
en :
1 2 3 * 4 - +

c'est la notation polonaise inverse.
cf : http://82.127.116.43:8180/ouaib/index.html?snippet=1
(ce lien ne fonctionne que quand mon pc est allume.)

Source / Exemple :


<!-- 
    Document   : editor.html
    Created on : 26 sept. 2008, 23:37:52
    Author     : max
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>RPN editor</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type="text/javascript">
    function fr2npi(txt){
        var operateurs = ["+","-","*","/"];
        var l = txt.length;
        var t = -1;
        /* -1 not reading number
            0 reading number */
        var ops = new Array();
        var nbr = 0;
        var out = "";
        for (var i = 0; i<l; i++){
            if (txt.charCodeAt(i) >= 48 && txt.charCodeAt(i) < 58){
                nbr = nbr * 10 + txt.charCodeAt(i) - 48;
                t = 0;
            }else if (t == 0){
                t = -1;
                out += nbr + " ";
                nbr = 0;
            }
            if (operateurs.indexOf(txt.charAt(i)) != -1 ){
                var thisop = txt.charAt(i);
                if (ops.length != 0){
                    var peek = ops.pop();
                    ops.push(peek);
                    if (operateurs.indexOf(peek) > operateurs.indexOf(thisop)){
                        out += ops.pop()+" ";
                    }
                }
                ops.push(thisop);
            }
        }
        if (t == 0) out+=nbr+" "
        while(ops.length != 0){ out += ops.pop() + " "; }
        return out;
    }
    function affiche(editeur, img){
        var output = "";
        var input = document.getElementById(editeur).value;
        document.getElementById(editeur).value = fr2npi(input);
    }
    </script>
    <style type="text/css">
        textarea{ width:100%; height:50%;}
    </style>
  </head>
  <body>
  <textarea id="editeur"></textarea>
  <input type="button" onclick="affiche('editeur', 'image');" value="process"/>
  <img id="image" />
  </body>
</html>

Conclusion :


bonne prog

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.