Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Si les n premières décimales sont égales à m alors ...

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
anthony.canu



Inscrit le: 22 Avr 2011
Messages: 16

MessagePosté le: 26 Avr 2016 23:49    Sujet du message: Si les n premières décimales sont égales à m alors ... Répondre en citant

Bonjour,

Je bloque sur l'écriture de la condition suivante :
"Si les n premières décimales d'un réel sont égales à m alors ..."
Savez vous comment coder cette condition sous Maple ?

Pour ma part je sais afficher la partie décimale d'un réel avec la fonction frac() mais je ne vois pas comment me dépatouiller avec le reste ?

Cordialement
Anthony
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 27 Avr 2016 9:07    Sujet du message: Répondre en citant

Bonjour,
Voici la solution avec ces 2 petites procédures:

Code:

> DECIMALE:=proc(x,n)
> # donne la n-ième décimale du réel x
>  local n1,q;
>  n1:=floor(x*10^n);
>  q:=n1 mod 10:
>  end proc:
>
> DECIMALE(Pi,4);  # la 4ème décimale de Pi est 5

                                  5

> evalf(Pi);  # vérification

                             3.141592654



> CONDITION:=proc(x,n,m)
> # teste si les n premières décimales d'un réel sont égales à m
> local k;
> for k to n do
>   if DECIMALE(x,n)<>m then return false
>   # on sort de la procédure avec un résultat faux si l'une des n premières décimales est distincte de m
> fi
> od:
> true # test réussi, résultat vrai
> end proc:
>
> CONDITION(1/9,10,1);  # les 10 premières décimales de 1/9 valent 1

                                 true

> evalf(1/9);  # vérification

                             0.1111111111

> CONDITION(1.22227222,5,2);  # faux à cause de la décimale valant 7

                                false



Donc, une fois ces procédures écrites, il ne vous reste plus qu'à programmer votre condition ainsi :

if CONDITION(x,n,m) then .... end if

A plus tard.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
anthony.canu



Inscrit le: 22 Avr 2011
Messages: 16

MessagePosté le: 27 Avr 2016 9:18    Sujet du message: Répondre en citant

Citation:
Donc, une fois ces procédures écrites, il ne vous reste plus qu'à programmer votre condition ainsi :

if CONDITION(x,n,m) then .... end if

A plus tard.


Merci beaucoup pour toutes ces infos, je vais tacher d'en tirer le meilleur pour arriver à mes fins Wink
Mille merci encore !
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
anthony.canu



Inscrit le: 22 Avr 2011
Messages: 16

MessagePosté le: 27 Avr 2016 11:25    Sujet du message: Répondre en citant

Après essai, il apparait un bug sur cet exemple précis :

Je teste ici si les 12 premières décimales sont des "9"
> CONDITION(frac(exp(Pi*sqrt(10))),12,9);
>

true

Le programme retourne vraie alors que :

> evalf(frac(exp(Pi*sqrt(10))));

.787867713429380788435798360958980444627316933

>
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 27 Avr 2016 15:57    Sujet du message: Répondre en citant

Oui effectivement, la ligne à modifier est :
if DECIMALE(x,k)<>m then return false
J'avais mis DECIMALE(x,n).
Désolé !
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
anthony.canu



Inscrit le: 22 Avr 2011
Messages: 16

MessagePosté le: 27 Avr 2016 17:25    Sujet du message: Répondre en citant

Merci beaucoup, je vais modifier tout ça Wink
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.