Catégorie :
SupportForum :
TI-82 STATSVues : 1087
Réponses : 7
Type : discussion
Etat : réponses autorisées
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
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

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
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

). 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

)
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

)
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

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

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

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
Bon j'edite désolé x')
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.