pb with mathematica

Elishac

pb with mathematica

Message par Elishac » 23 sept. 2006 18:10

1/qu'est-ce qui ne va pas dans ce programme (sous mathematica) (but:retourner un nombre n) Et surtout : comment corriger l'erreur (ça semble évident, mais bon...)

n=123456
p=Ceiling[N[Log[10,n]]] (note:ceiling:partie entiere+1)
a=0
c=0
Do[ b=Floor[(n-a)/10^(p-k)], a=a+10^(p-k), c=c+10^(k-1), {k,1,p}]

2/ comment faire en sorte que le programme demande le nombre à retourner, de telle sorte qu'il n'y ait pas besoin d'écrire n= ?

Elishac

Message par Elishac » 28 sept. 2006 07:29

help? c'est pour demain :'(

Site Admin

Messages : 553

Inscription : 29 oct. 2002 19:58

Profil de l'utilisateur : Élève de lycée

Message par David » 28 sept. 2006 09:54

si tu veux utiliser ta méthode :

-> dans le Do : pour séparer les arguments, c'est bien une "," mais pour enchainer des instructions, il faut mettre des ";"

-> c'est bien de calculer le chiffre "b", mais il faut penser à l'utiliser

Do[b = Floor[(n - a)/10^(p - k)]; a = a + b*10^(p - k);
c = c + b*10^(k - 1), {k, 1, p}]

-> pour faire une fonction qui fait ca : et bien tu definis une fonction sous la forme

f[n_]:=(toutes tes instructions; c)

le dernier c sert pour donner la valeur de retour

* tu peux ensuite ameliorer ca avec Block/With/Module mais ce n'est pas necessaire dans un premier temps
* ta methode par inverser n'est pas optimale : plutot que d'utiliser des 10^(p-k) ou dans le genre, pense a la methode de Horner pour les polynomes


Bonjour/merci/de rien.
David Rupprecht
Professeur de mathématiques en MPI/MPI* (Lycée Fermat - Toulouse)

Répondre