Accueil du site > Les articles > Calculatrice en REXX
Version à imprimer Enregistrer au format PDF

Calculatrice en REXX

lundi 31 mai 2004, par Didier Encinas Visites  1399 Première mise en ligne le mardi 20 janvier 2004.

Pour illustrer les possibilités du REXX, un exemple bien pratique.

Calculatrice pouvant être appelée depuis une ligne de commande


Dans un CL :

STRREXPRC REXXCALC

Source de REXXCALC

ARG RES                                
NUMERIC DIGITS 20                      
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                
say ' '                                                                
say ' '                                                                
say ' '                                                                
say ' '                                                                
say 'Opérations:+=addition, -=soustraction, *=multiplication, /=division, **=exponentiation
say 'les résultat restent en mémoire Rn, que vous pouvez utiliser pour les calculs suivant.'
say 'les parenthèses sont possibles.'          
say ' '                                                                
IF RES='' THEN SAY 'Entrez vos operations, pour sortir ENTREE'      
I=0;R=0                                                                
/* Procédure calcul : à vous de l'enrichir */
DO FOREVER                                                            
  I=I+1                                                              
  IF RES='' THEN PULL RES                                            
  IF RES='' THEN LEAVE                                                
  A=1                                                                
  DO FOREVER                                                          
     A=POS('X',RES,A)                                                
     IF A=0 THEN LEAVE                                        
        ELSE RES=OVERLAY('*',RES,A)                            
        END                                                    
        A=1                                                    
        DO FOREVER                                            
           A=POS('R',RES,A)                                    
           IF A=0 THEN LEAVE                                  
           A=A+1                                              
           IF SUBSTR(RES,A,I)<>',' THEN RES=INSERT('.',RES,A-1)
        END                                                    
        INTERPRET 'R.'I'='RES                                  
        SAY 'R'I' = 'R.I                                      
        RES=''                                                
     END                                                      
EXIT

 [1]