22 résultats trouvés

par currybleu
05 mars 2013 12:00
Forum : Tous les Pockets
Sujet : [HP28] [HP48] [HP49] [HP50] Quelles quenottes !
Réponses : 37
Vues : 19830

Re: [HP28] [HP48] [HP49] [HP50] Quelles quenottes !

Que de bons souvenirs ce #11CAh SYSEVAL.
Pour ceux qui veulent un peu gratter cette fonction cachée de la 28S, j'ai toute une panoplie de programmes qui utilisent cette fonction dont la première est celle qui permet de donner l'heure:

Code : Tout sélectionner

<< #11CAh SYSEVAL >>
'TICK' STO

Code : Tout sélectionner

8191.86513813
'TOP' STO

Code : Tout sélectionner

<< #11CAh SYSEVAL TOP / B->R 3600 / ->HMS SWAP HMS- 24 MOD 'REF.TIME' STO >>
'->TIME' STO

Code : Tout sélectionner

<< TICK TOP / B->R 3600 / ->HMS REF.TIME HMS- 24 MOD >>
'TIME' STO
Utilisation:
1: enregistrer ces 4 programmes:
2: saisir l'heure sous ce format: hh.mm
3: lancer le programme ->TIME (qui va creer une variable de référence, propre à chaque calculatrice
4: lancer le programme TIME. La HP vous donne l'heure!!!

NB: l'heure de votre HP28S va progressivement se décaler, en avance ou en retard. il faudra donc modifier la valeur de TOP pour afiner le décalage.

A l'occasion, pour ceux que ca intéresse je posterai d'autres programmes se basant sur cette fonction, dont notamment, ceux qui indique la date, le jour, d'autres calculs de dates, etc.... mais peut etre dans un autre sujet..
par currybleu
21 févr. 2013 13:44
Forum : Tous les Pockets
Sujet : Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)
Réponses : 51
Vues : 29010

Re: Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)

A mon avis la taille mémoire occupée par la pile n'a pas a être prise en compte dans le calcul de la taille d'un programme.seul le programme et autres objets (listes, sous programmes, matrices, etc...) utilisés par le programme doit être comptabilisé.
Par exemple, si je fais un programme du style <<1 1000 for x x next >> ou je rempli la pile des 1000 premiers nombres, le programme a beau remplir la ram, le programme n'en fait pas moins que quelques octects non?
par currybleu
21 févr. 2013 12:28
Forum : Tous les Pockets
Sujet : Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)
Réponses : 51
Vues : 29010

Re: Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)

bernouilli92 a écrit :Par contre je ne sais pas trop comment compter les variables utilisées dans un programme en RPL, car les variables peuvent contenir n'importe quel objet qui peut avoir n'importe quelle taille. Pareil pour l'utilisation de la pile, les objets présents sur la pile peuvent être de différentes nature.
J'avais fais il y a quelques années, un programme justement pour mesurer la taille d'un programmes et de ses variables pour 28S. vu le code, il rest valable pour 48/49/50
Bon il a des fleurs un peu partout et donc optimisable, mais le principe est simple:
On met tous les programmes à mesurer dans une liste {} et on lance le programme
Le prog va tout simplement faire une boucle qui:
- mesure la quantité de RAM dispo,
- stocker le programme en mémoire
- mesurer la RAM
- Faire le delta
etc...

ci dessous le code:

Code : Tout sélectionner

«
<< CLLCD DUP
IF TYPE 6 SAME 
THEN 1 ->LIST
ELSE
	IF DUP TYPE 5 <>
	THEN
		IF DUP TYPE 8 SAME
		THEN EVAL
		ELSE KILL
		END
	END
END
"-- Taille des prog --
"
1 DISP DUP SIZE -> list tail
	<< 0 0 1 tail 
	FOR X list X GET
		IFERR DUP ->STR DUP SIZE 1 - 2 SWAP
		SUB "* '" SWAP + "' -> " + SWAP RCL 'programme' STO MEM
		'programme' PURGE MEM SWAP - DUP 4 ROLL + 3 ROLLD ->STR +
		THEN ERRM 3 DISP DROP2
		ELSE ROT DROP 10 CHR + "*** TOTAL : " 3 PICK ->STR + DUP 4 ROLLD + 3 DISP
		END
	NEXT DROP
	>>
>>
'SIZ' STO
!! Attention: remplacer le caractere <> par le caractère "différent"

Utilisation:
{PROG1 PROG2 PROG3} SIZ
par currybleu
18 févr. 2013 20:35
Forum : Tous les Pockets
Sujet : Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)
Réponses : 51
Vues : 29010

Re: Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)

Bon alors je n'ai pas compris l’énoncé car pour moi, une des solution pour chaque matrice peut etre:

[1 2 3 4 5 6 7 8 9]
[1 1 1 1 1 1 1 1 1]

[1 2 3 4 5 6 ]
[1 1 1 1 1 1 ]

[1 2 3 4 5]
[1 1 1 1 1]

[1 2 3 4]
[1 1 1 1]
par currybleu
18 févr. 2013 19:43
Forum : Tous les Pockets
Sujet : Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)
Réponses : 51
Vues : 29010

Re: Misez p'tit, Optimisez - N°38 (comptez les 1 2 3 4 5)

Hello,
Il semble que ton ennoncé prêt à interpretation.
est-ce que le programme doit trouver une solution? répondre par vrai ou faux? solution ou pas de solution), indiquer toutes les solutions, et sous quel format?
Le plus simple serait que tu prennes un exemple avec par exemple N=7 et que tu affiche le resultat souhaité.
par currybleu
16 févr. 2013 13:39
Forum : Tous les Pockets
Sujet : Misez P'tit, Optimisez - N°37 (Distance entre 2 points GPS)
Réponses : 9
Vues : 8147

Re: Misez P'tit, Optimisez - N°37 (Distance entre 2 points G

Petite astuce à propos des unités
Les COS et SIN doivent être fait en degrés alors que la fonction ACOS doit être utilisée en Radians :D
(Mettre en mode radian avant de calculer ACOS)
par currybleu
15 févr. 2013 15:33
Forum : Tous les Pockets
Sujet : Misez P'tit, Optimisez - N°37 (Distance entre 2 points GPS)
Réponses : 9
Vues : 8147

Misez P'tit, Optimisez - N°37 (Distance entre 2 points GPS)

Bonjour
Si vous le voulez-bien, un petit exercice sympa.. un peu la suite du MPO n°35 :lol:

- Google Earth donne les coordonnées du sommet du Mont-Blanc: Lat1: N4?.832891° Long1 E?.865074° (unités décimales)

- La formule pour calculer la distance entre 2 points est la suivante:

Code : Tout sélectionner

Distance=ACOS(SIN(RADIANS(lat1))*SIN(RADIANS(lat2))+COS(RADIANS(lat1))*COS(RADIANS(lat2))*COS(RADIANS(long1-long2)))*6371
Questions:
1 --> Retrouvez les valeurs des deux "?" pour la position GPS du sommet du mont Blanc
2 --> Saurez-vous faire un petit programme pour calculer la distance entre chez-vous (lat2/long2) et le mont-Blanc??
3 --> Question Subsidiaire: Quelle est la distance entre le Mont-Blanc et la tour-eiffel?

NB: Attention: il y a une petite subtilité à prendre en compte avec les unités d'angle

Source:
le site http://www.01net.com/editorial/555908/a ... -la-terre/

Pour moi, c'est 161Km :wink:
par currybleu
15 févr. 2013 11:04
Forum : Tous les Pockets
Sujet : Misez p'tit, Optimisez - N°12
Réponses : 32
Vues : 28376

Re: Misez p'tit, Optimisez - N°12

LOL.. bien vue cette fonction que je ne connaissais pas mais je ne suis pas certain qu'elle soit autorisée dans cet exercice..
Pirate! :pirat:
par currybleu
15 févr. 2013 09:41
Forum : Tous les Pockets
Sujet : Misez p'tit, Optimisez - N°12
Réponses : 32
Vues : 28376

Re: Misez p'tit, Optimisez - N°12

Hello,

Désolé de déterrer ce Thread aussi ancien, mais j'ai pas pu m’empêcher de faire ce petit programme pour ma HP.
Ci-joint donc le prog RPL pour HP28S/48/49/50

Code : Tout sélectionner

«
DUP IP SWAP FP 100 * DUP IP SWAP FP 100 * SWAP ROT
IF OVER 3 < THEN DUP 1 - ELSE DUP 2 - SWAP END
DUP 4 / IP OVER 100 / IP - SWAP 400 / IP + + 4 +
SWAP 23 * 9 / IP + + 7 MOD IP 1 +
{"Dimanche" "Lundi" "Mardi" "Mercredi"
"Jeudi" "Vendredi" "Samedi" } SWAP GET
»
Programme qui peut etre optimisé si on saisi directement la date dans la pile de cette manière:
3: 15
2: 2
1: 2013

Code : Tout sélectionner

IF OVER 3 < THEN DUP 1 - ELSE DUP 2 - SWAP END
DUP 4 / IP OVER 100 / IP - SWAP 400 / IP + + 4 +
SWAP 23 * 9 / IP + + 7 MOD IP 1 +
Le programme retourne uniquement le numéro du jour de la semaine
par currybleu
15 févr. 2013 09:21
Forum : Tous les Pockets
Sujet : [HP28S] Trouver la fraction de n'importe quel nombre...
Réponses : 12
Vues : 8405

Re: [HP28S] Trouver la fraction de n'importe quel nombre...

Gilles59 a écrit : 0.423892100192+0.255298651253i
->Q donne :'(377815125178001928503+227547745846008946169*i)/891300227123938488689'
en FIX5
'(440+265*i)/1038'
par contre, il n'y a pas de commande native pour les racines
la fonction ->Q m'a l'air intéressante à utiliser. il doit donc être possible d'optimiser mon programme avec.
en attendant, en lançant le programme RACINE pour les nombres suivants, on trouve;
0.423892100192+0.255298651253i -> 220/519 + 265/1038*i (faction réduite au maximum)
ainsi que
racine(0.423892100192) + racine(0.255298651253)*i soit 0.50527086919 + 0.651069965666*i -> racine(265/1038) + 2*racine(55/519)*i :D
par currybleu
14 févr. 2013 22:16
Forum : Tous les Pockets
Sujet : [HP28S] Trouver la fraction de n'importe quel nombre...
Réponses : 12
Vues : 8405

Re: [HP28S] Trouver la fraction de n'importe quel nombre...

Torlus a écrit :Ca remonte à loin, mais dès que t'as un pattern qui se répète, tu le divises par le même "nombre de 9" que la longueur du pattern, non ?
Genre 0, 235678 235678 235678 = 235678 / 999999.
22/7 = 3, 142857 142857 etc, on s'occupe pas du 3, et ça donne 142857 / 999999.
en fait mon algo ne fonctionne pas comme ca.
grosso modo, il fonctionne par approximation, c'est à dire qu'il considére qu'il y a une solution lorsque la valeur entiere d'une division, divisée par 10000000 est inférieure à zero. (je sais c'est un peu imbitable,mais en pratique ca fonctionne plutot bien)
Pour faire simple, mon programme fonctionne tres bien pour 1.123123123123123123123 (374/333)... mais pas pour 1.12341234123412341234 car le dénominateur est trop grand...
Pour ton exemple, ca fonctionne bien. il me donne effectivement 22/7 (petit dénominateur inférieur à 1000)
si tu as l'occasion de le tester sur une HP?
par currybleu
14 févr. 2013 14:00
Forum : Présentation
Sujet : Présentation: Utilisateur de HP28S et HP50G
Réponses : 21
Vues : 13210

Re: Présentation: Utilisateur de HP28S et HP50G

oli a écrit :BIENVENUE :D
J'ai commencé par une hp-35 en 1973, puis ont suivi une 15c, 28s, 48sx et 35s (que je n'ai jamais employée). Depuis lors, j'ai commencé à les collectionner et j'en suis actuellement à ma 59e
C'est vraiment cool de voir que je ne suis pas le seul amateur nostalgique des HP! et quand je pense que j'ai eu des scrupules à acheter une deuxieme HP28S le mois dernier..
Concernant la HP35S, j'ai voulu l'offrir à mon fils (peine perdue) pour l'entrainer dans le monde de la notation polonaise inversée.. j'avoue avoir été très déçu par son mode de programmation.. à des années lumières de la 28S ou des 49-50. Trop barbare pour moi car bien trop habitué à jongler avec la pile, (Pour moi la calculatrice idéeale devrait avoir les touches SWAP ROT OVER ROLL dédiées et surdimentionnées :-)

Sinon, pour les chanceux qui on un IPAD et qui sont des HP28S addicts, je leur conseille vivement un programme qui s'appelle HALCYON.. il s'agit tout simplement d'une HP28S revisitée. La version 2.0 a d'ailleurs récemment été adaptée à l'ecrand d'ipad, c'est à dire, que les deux claviers apparaissent en mode paysage!! il existe une version gratuite et une version payante..
Ce qui est étrange, c'est que nul part est mentionné HP28S et je n'ai jamais eu de réponde de la part des développeurs sur ce point..
par currybleu
14 févr. 2013 09:05
Forum : Tous les Pockets
Sujet : enigme ti 57
Réponses : 20
Vues : 13303

Re: enigme ti 57

.... des énigmes qui font tourner la tête :-)
par currybleu
14 févr. 2013 08:40
Forum : Tous les Pockets
Sujet : [HP28S] Trouver la fraction de n'importe quel nombre...
Réponses : 12
Vues : 8405

Re: [HP28S] Trouver la fraction de n'importe quel nombre...

Je suis en train de tester les programmes sur HP50G.
Pour l'instant je suis sur REDUC. qui est compatible.

ci-dessous le code pour la HP50G (j'imagine qu'il est également compatible avec les modèles 48 et 49? à confirmer:

Code : Tout sélectionner

%%HP: T(3)A(R)F(.);
\<< DUP \->NUM 1.E12 * 1.E12 \-> o n m
  \<< n ABS m
    DO SWAP OVER MOD
    UNTIL DUP 10000000. / IP NOT
    END DROP n OVER / IP DUP ABS m 4. ROLL / IP DUP
    IF 1. \=/
    THEN 10. SF R\->I \->STR "'" ROT R\->I \->STR + "/" + SWAP + STR\-> SWAP SIGN * DUP
      IF \->NUM o \->NUM - ABS .000000001 >
      THEN DROP o
      END
    ELSE DROP2
    END
  \>>
\>>

Le programme RACINE est également compatible HP50G
ci dessous le code correspondant pour la HP50G

Code : Tout sélectionner

%%HP: T(3)A(R)F(.);
\<< EVAL
  IF REDUC DUP DUP TYPE SWAP DUP IP SAME OR NOT
  THEN
    \<< DUP DUP
      IF 1 \=/
      THEN \v/ IP 1 + \-> a g
        \<< g 2
          FOR X
            IF a X SQ / DUP DUP IP ==
            THEN DUP a SWAP / \v/ SWAP 0 'X' STO
            ELSE DROP
              IF X 2 \<=
              THEN 1 a
              END
            END -1
          STEP
        \>>
      END
    \>> \-> raci
    \<< DUP SIGN SWAP DUP SQ REDUC DUP DUP R\->I \->STR
      IF "." POS SWAP \->NUM NOT OR NOT
      THEN SWAP DROP DUP
        IF TYPE NOT OVER DUP IP SAME OR
        THEN 1
        ELSE OBJ\-> DROP2
        END \-> s n d
        \<< n raci EVAL d raci EVAL 4 ROLL ROT / REDUC 3 ROLLD / REDUC DUP \->STR \-> p q
          \<< "'\v/"
            IF p TYPE
            THEN "(" q 2 q SIZE 1 - SUB + ")" +
            ELSE q
            END + STR\-> * s
          \>>
        \>>
      ELSE DROP
      END *
    \>>
  END
\>>
Pour tester, il suffit de rentrer votre nombre et de lancer RACINE. (bon le nom RACINE est super mal choisi.. je vais trouver autre chose ;-)

Sinon, pour répondre à ta question, le prohramme RACINE ne trouve pas de solution sous forme a+b*racine(c), mais uniquement a/b*racine(c/d).

Aller à la recherche avancée