Forum

Catégorie : Support
Forum : TI-82 STATS
Vues : 1087
Réponses : 7
Type : discussion
Etat : réponses autorisées

Bonjour j'ai un DM pour samedi c'est traduire l'algorithme

alizée le 21/03/2012 à 11:35
entrée: saisir deux nombres entiers naturels non nul m et n .
créer une liste vide L
initiation: affecter à i la valeur l
traitement:tant que i plus petit ou égale n+1
affecter à r le reste de la division de m par n
affecter à m la valeur de 10r
ajouter le quotien de la division de m par n à la fin de la liste L
affecter à i la valeeur i+l
sortie: afficher la liste L .
don voila je ne comprend vraiment rien et ca fais depuuis lundi que je cherche aidez moi s'il vous plai sad.gif merci d'avance
The K le 21/03/2012 à 14:01
Oh lala ... mon prof de maths ne nous donnerai jamais des algo' aussi compliqués ^^' (en même temps c'est des brelles en progra' dans ma classe : le seul programmeur en casio c'est le prof x') )

Bref : ça nous donne

Code
Prompt M,N
               
If partdec(M) ou partdec(N) ou M[inférieur ou égal]0 ou N[inférieur ou égal à 0]
   Then
   Stop
End

1->dim(L1
1->C
L->I

While I[inférieur ou égal à]N+1
    M-Nent(M/N)->R                     
    10R->M
    partEnt(M/N->L1(C
    I+L->I
    C+1->C
End

Disp L1


Bien ! donc maintenant, les explications happy.gif

Prompt M,N demande M & N

If partdec(M) ou partdec(N) ou M[inférieur ou égal]0 ou N[inférieur ou égal à 0] vérifie que M et N sont entiers et supérieurs à 0 ...

Then
Stop
End Ou sinon, on "stop" le programme.

1->dim(L1
1->C
L->I Affecte une "case", un emplacement à la liste 1, L1. Initialisation de C à 1 (c'est pour la liste, que ça mette bien dans la bonne case, pas dans une déjà remplie j’expliquerai ça après winkle.gif ). On met L dans I (la je vois pas bien à quoi ça sert ... mais why not ^^).

While I[inférieur ou égal à]N+1 While = tant que (j'te laisse deviner la suite bigmouth.gif)

M-NpartEnt(M/N)->R
10R->M On met le reste dans R, et 10*R dans M

partEnt(M/N->L1(C On met la partie entière de la division de M par N (le quotient en gros !) dans l'emplacement C de la liste1.

I+L->I
C+1->C On ajoute I à L dans I ... je comprends pas bien non plus l'utilité ^^'. On augmente C dans 1 (pour que au tour suivant de la boucle ça ne se superpose pas sur un emplacement de la liste 1 déja utilisé ... ça prendra le suivant winkle.gif )

End
Disp L1 Fin de la boucle TantQue, et affichage de la liste 1.



Si tu n'as pas bien compris mon charabia redemande j'essaierai de mieux l'expliquer winkle.gif
tapenad le 21/03/2012 à 14:03
...
le code est assez tordu je l'admet, il est sencé faire quoi comme résultat?
est ce que tu peut préciser les lignes
Citation
initiation: affecter à i la valeur l
alizée le 21/03/2012 à 20:07
oua bas merci beaucoup parce que celui la fallait le trouver en plus vous répndez superb vite vous etes trop fort encore merci et non je ne peut pas presiser les lignes c'est donner comme ça dans la sujet apres ça dit qu'il faut appliquer l'algorithme a m=13 et n =7 et on doit faire un tableau avec
initiation r liste L, première etapes 2èm étape et tout fin un vrais bazar happy.gif
linkakro le 21/03/2012 à 20:16
The K : Tu ne stockes pas le reste mais le quotient dans R.
Pas besoin de Then ni End pour le test de validité.
On peut même créer une boucle pour faire plus joli et redemander à l'utilisateur des valeurs valides.

La variable "l" qui sort de nul part est absurde.
En revanche le nombre 1 permet de donner une raison d'être à la boucle et à gestion de la liste.

Code
Prompt M,N
If fPart(M) or fPart(N) or N<0 or M<0
Stop
ClrList L1  //cela vide la liste L1, pas besoin de la définir sur TI, L1=2nde+1
1->I
While I<=N+1    // "<=" dans le menu 2nde+math
M-Nint(M/N)->R  // reste de M/N de façon précise // int se traduit par partEnt
10R->M
int(M/N->L1(I
I+1->I
End
Pause L1  // tu peux enlever la Pause si tu veux
On peut remplacer la boucle While par un For.
J'applique ici ma suggestion de boucle à l'entrée.
Code
Repeat not(fPart(M) or fPart(N) or N<0 or M<0
Prompt M,N
End
ClrList L1
For(I,1,N+1
M-Nint(M/N)->R
10R->M
int(M/N->L1(I
End
L1 // cela suffit si c'est la fin du programme
The K le 21/03/2012 à 21:26
Je sais bien qu'il n'y a pas besoin de Then ni End winkle.gif
j'ai voulu faire l'algo basique.

Mais en effet je me suis trompé sur la suite. J'modifie ça ^^
linkakro le 21/03/2012 à 21:47
Et moi je stocke le quotient réel au lieu du quotient euclidien.
A ce tarif là j'édite moi aussi ce détail.

Comme M et N sont positifs, utiliser ent/iPart ou bien partEnt/int ne change rien.
Autant utiliser la plus simple à énumérer en français comme en anglais donc ent et int.
J'édite aussi.
(l'inversion entre ent et int par rapport à iPart et partEnt dans mon message n'est pas une erreur)
The K le 22/03/2012 à 07:08
Et m***euh ! B'avais pourtant copié-collé ton truc pour pas réfléchir et en remplacent ça avec un partent cry.gif

Bon j'edite désolé x')