Poster un nouveau sujet Poster une réponse
Notation polonaise inverse
Auteur Message
nanoseb



Autorisation : Membre
Nb de messages : 19
Inscrit le : Sam 31 Mai 2008, 15:10
Posté le : Dim 04 Déc 2011, 22:26   Citer 

Salut à tous
je ne sais pas si certain d'entre vous on connu les premières HP, ce programme sera surtout utile a ces nostalgique de la notation polonaise inverse, donc voici le programme :
il fait 713o, mais à été concu plus dans une optique de vitesse d'execution que de place (je pense par exemple à l'utilisation de la liste 2 qui évite des testes superflus)
le fichier est ici
si le code s'affiche mal je l'ai aussi mis ici

Code
:ClrHome
:23→dim(L2
:7→L2(1
:8→L2(2
:9→L2(3
:4→L2(11
:5→L2(12
:6→L2(13
:1→L2(21
:2→L2(22
:3→L2(23
:0→Z
:0→D
:0→C
:1→N
:0→K
:0→V
:0→A
:1→I
:1→J
:20→L
:L→dim(L1
:Fill(0,L1
:While K≠105
:0→K
:While K=0
:0→K
:getKey→K
:End
:If K=62
:Then
:C+1→C
:A→L1(L
:L-1→L
:0→A
:0→V
:1→N
:0→K
:End
:If fPart(K/10)=.5 and K≠105
:Then
:If C=0
:Then
:L1(L+2→D
:L1(L+1→A
:Else
:L1(L+1→D
:End
:If K=55
:Then
:D^A→D
:Output(I,J,"^
:End
:If K=65
:Then
:D/A→D
:Output(I,J,"/
:End
:If K=75
:Then
:D*A→D
:Output(I,J,"*
:End
:If K=85
:Then
:D-A→D
:Output(I,J,"-
:End
:If K=95
:Then
:D+A→D
:Output(I,J,"+
:End
:0→A
:0→V
:1→N
:If C=0
:Then
:D→L1(L+2
:L+1→L
:Else
:D→L1(L+1
:End
:0→L1(L
:0→C
:0→K
:End
:0→X
:If K≠0
:Then
:If K=102
:1→Z
:If K≥71 and K≤94
:L2(K-71)→X
:If K=103
:1→V
:If K=104
:Then
:‾1→N
:Output(I,J,"‾
:End
:If V=0
:Then
:N(abs(10A)+X)→A
:Else
:N(abs(A)+X*10^(‾V+1))→A
:V+1→V
:End
:If A≠0 or Z=1
:Then
:Output(I,J,X
:C+1→C
:End
:0→Z
:If V=2
:Output(I,J,".
:End
:J+1→J
:If J=17
:Then
:1→J
:I+1→I
:End
:Output(8,1,"               
:Output(8,1,D
:End
:ClrList L1
:ClrList L2
:Output(5,2,"CREATED BY SEB



 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Lun 05 Déc 2011, 8:58   Citer 

Humhum...

Tu m'excuses, mais je n'ai pas compris a quoi ça sert...

Je lance le programme, il n'affiche rien...

j'appuie sur une touche, il m'affiche zéro.
J'appuie sur plein de touches, il me fait une erreur dim (ça concerne la liste L1...)

Tu peux expliquer ?

 Adresse email Haut de page Bas de page 
 
nanoseb



Autorisation : Membre
Nb de messages : 19
Inscrit le : Sam 31 Mai 2008, 15:10
Posté le : Lun 05 Déc 2011, 15:28   Citer 

si tu ne connais pas déjà la notation ce programme ne va pas t'être très utile, je te renvoie quand même ici :http://fr.wikipedia.org/wiki/Notation_polonaise_inverse
J'ai implémenté les fonction de base (+ * / -) ainsi que les puissances. L'opérateur de séparation est la virgule
ainsi en tapant : 5,6+9,8*+ tu obtient (5+6)+(9*glasses.gif

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink