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 

liste des chiffres d'un nombre

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux...
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
leyrassl



Inscrit le: 13 Jan 2007
Messages: 27

MessagePosté le: 15 Jan 2007 11:57    Sujet du message: liste des chiffres d'un nombre Répondre en citant

bonjour,

à partir d'un nombre,
je voudrais créer une procédure pour obtenir la liste de ses chiffres,
j'ai voulu faire op(nombre) mais ça en marche pas evidement
car on doit l'utiliser sur une séquence.
mais alors comment faire?
je voudrais seulement le raisonnement
j'essaierai pour le code
mais niveau raisonnement je ne sais pas comment procéder.
merci.
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: 15 Jan 2007 12:58    Sujet du message: Répondre en citant

Bonjour, voici une petite procédure qui devrait faire l'affaire: on copie n dans n1 et on créé une séquence L vide.
Pour k de 1 jusqu'à la longueur de n
On calcule le dernier chiffre q de n1
on remplace n1 par (n1-q)/10
on ajoute q à la séquence L
fin Pour
[L] est le résultat escompté

Code:

> chiffres:=proc(n::nonnegint)
> local L,n1,q,i,k;
> i:=floor(log10(n))+1: # longueur du nombre n
> n1:=n;  L:=NULL;
>
>       

>   
>   

> [L]
> end proc:

> chiffres(1234567890);

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


Je vous laisse compléter les lignes blanches.
A+
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
leyrassl



Inscrit le: 13 Jan 2007
Messages: 27

MessagePosté le: 15 Jan 2007 14:40    Sujet du message: Répondre en citant

alors j'ai complété mais j'obtiens la liste inversée

Code:
chiffres:=proc(n::nonnegint)

local L,n1,q,i,k;

i:=floor(log10(n))+1: # longueur du nombre n

n1:=n;  L:=NULL; q:=0;

for k from 1 to i do

q:=n1 mod 10;

n1:=(n1-q)/10;

L:=L,q;

end do;

return[L];

end proc;


merci.
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: 15 Jan 2007 14:47    Sujet du message: Répondre en citant

C'est très bien: pour avoir la liste dans le bon sens, il suffit de mettre q à gauche et non à droite dans L en faisant:
> L:=q,L;


Code:

chiffres:=proc(n::nonnegint)
> local L,n1,q,i,k;
> i:=floor(log10(n))+1: # longueur du nombre n
> L:=NULL;
> n1:=n:
> for k to i do     
>  q:=n1 mod 10:
>  n1:=(n1-q)/10:
>  L:=q,L:
>  end do:
> [L]
> end proc:
> chiffres(1234567890);

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

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



Inscrit le: 13 Jan 2007
Messages: 27

MessagePosté le: 15 Jan 2007 14:52    Sujet du message: Répondre en citant

merci beaucoup!!! Very Happy
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
leyrassl



Inscrit le: 13 Jan 2007
Messages: 27

MessagePosté le: 15 Jan 2007 14:56    Sujet du message: Répondre en citant

j'ai voulu me reservir de cette procédure pour inverser les chiffres du nombre c'est-à-dire trouver le résultat que je trouvais mais en créant une autre procédure mais elle ne marche pas.

Code:
nbinv:=proc(n)
local i,S,f;

S:=chiffres(n); # obtenir la liste des chiffres de ce nombre

for i to nops(S)-1 do
f:=S[i]; S[i]:=S[nops(S)-1-i]; S[nops(S)-1-i]:=f;
end do;

return S;
end proc;

nbinv(1254555);


seulement voici le message que je rencontre à l'exécution:
Error, (in nbinv) invalid subscript selector


merci.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
leyrassl



Inscrit le: 13 Jan 2007
Messages: 27

MessagePosté le: 15 Jan 2007 15:22    Sujet du message: Répondre en citant

j'ai modifié mon programme comme suit:

Code:
nbinv:=proc(n)

local i,S,f,j;

S:=chiffres(n); # obtenir la liste des chiffres de ce nombre

for j from 0 to nops(S)-1 do

i:=1;

while i<nops(L)-j do

f:=S[i]; S[i]:=S[nops(S)-1-i]; S[nops(S)-1-i]:=f;

i:=i+1;

end do;

end do;

return S;

end proc;

nbinv(1693563);


mais ça me retourne exactement le même nombrel!

merci.
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: 16 Jan 2007 16:58    Sujet du message: Répondre en citant

Code:

> listeinverse:= proc(L::list)
>   local i;
>   [seq(op(nops(L)-i,L),i=0..nops(L)-1)];     
> end proc:
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
leyrassl



Inscrit le: 13 Jan 2007
Messages: 27

MessagePosté le: 16 Jan 2007 17:19    Sujet du message: Répondre en citant

bonjour,
j'ai voulu le modifer comme suit
pour qu'il prenne en argument le nombre
sachant que chiffres(n) me donne la liste des chiffres.
mais ça ne marche pas. merci.

Code:
listeinverse:= proc(n)

local i,L;

L:=chiffres(n)

[seq(op(nops(L)-i,L),i=0..nops(L)-1)];     

end proc:

listeinverse(1693563);
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 -> Séquences, listes, ensembles, tables ou tableaux... 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.