[hp39gII] Simplificateur de racines carrées

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1424
Inscription : 27 oct. 2010 20:46

Re: [hp39gII] Simplificateur de racines carrées

Message par Gilles59 » 20 mars 2013 22:28

C.Ret a écrit :...
Mais je préfère cette version, qui traite aussi les racines de nombres négatifs !

Code : Tout sélectionner

EXPORT RAC(X)
BEGIN
 LOCAL F:=SIGN(X), R:=ABS(X);
 LOCAL I:=1,Txt:="√("+X+")=";

 REPEAT
   IF R MOD I*I 
  THEN I:=I-1;
   ELSE F:=F*I; R:=R/I/I; I:=FLOOR(√R);
   END;
 UNTIL I<2;

 IF (ABS(F)<>1) OR (R=F) THEN Txt:=Txt+ABS(F) END;
 IF F<0 THEN Txt:=Txt+" i " END;
 IF R≠1 THEN Txt:=Txt+"√"+R END;
 RETURN Txt;
END;
C.ret, Eddie W. Shore souhaiterait publier ton prog sur son blog (en citant la source bien sur ...).
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49G+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+

Avatar de l’utilisateur
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2491
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: [hp39gII] Simplificateur de racines carrées

Message par C.Ret » 20 mars 2013 23:52

OK, pas de souci, tout ce que je poste sur un forum est public.

Mias, ce n'est pas la version ultime:

Code : Tout sélectionner

EXPORT RAC(X)
BEGIN
 LOCAL F:=SIGN(X), R:=ABS(X);
 LOCAL I:=1,Txt:="√("+X+")=";

 REPEAT
   IF R MOD Q*Q 
  THEN I:=prevprime(I);
   ELSE F:=F*I; R:=R/I/I; I:=FLOOR(√R);
   END;
 UNTIL I<2;

 IF (ABS(F)<>1) OR (R=F) THEN Txt:=Txt+ABS(F) END;
 IF F<0 THEN Txt:=Txt+" i " END;
 IF R≠1 THEN Txt:=Txt+"√"+R END;
 RETURN Txt;
END;
ou encore plus 'compilé':

Code : Tout sélectionner

EXPORT RAC( X )
BEGIN
  LOCAL F:=SIGN(X),R:=ABS(X);
  LOCAL p,Q,T:="√("+X+")=";

  LOCAL LF:=ifactors(R);
  FOR p FROM 2 TO SIZE(LF) STEP 2 DO
    I:=LF(p-1)^FLOOR(LF(p)/2);
    F:=F*I; R:=R/I/I;
  END;

IF (ABS(F)<>1) OR (R=F) THEN T:=T+ABS(F) END;
IF F<0 THEN T:=T+" i " END;
IF R≠1 THEN T:=T+"√"+R END;
RETURN T;    
END;
Dernière édition par C.Ret le 23 mars 2013 10:02, édité 1 fois.
SHARP PC-1211+CE-121+CE-122 | Commodore 128D+Printer P-803+SD2iec | TI-57 LCD | HP-28S+HP82240A | TI-74 BASICalc | HP-41C+2mem+stat+IR | HP-15C | SHARP PC-1360+64Ko+CE-126 | HP Prime | TI-92 II | CASIO fx-602p+FA-1 | HP-71B 64K+JPC-ROM+HPIL+card reader | Sommaire des M.P.O. | Ma...dov'il sapone !.

"All science is either physics or stamp collecting. That which is not measurable is not science." - E. R.

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: [hp39gII] Simplificateur de racines carrées

Message par Paul Tergeist » 21 mars 2013 11:41

C.Ret a écrit :OK, pas de souci, tout ce que je poste sur un forum est public.
C'est pas tombé dans l'oreille d'un sourd... parce que quand je créerai ma rubrique HP39Gii
sur mon petit site je risque de mettre également tes sources (en te citant ainsi que le forum bien sur).

Pour ta citation, elle me fait penser à celle d'un juge de New York a propos d'un dossier concernant Twitter:
"Ce qui est exprimé sur la place publique appartient à tout le monde". (traduction)

Répondre

Revenir vers « Tous les Pockets »