Bonjour! Je suis en seconde et j'ai un exercice à rendre pour vendredi prochain. J'ai commencé à réfléchir mais ai du mal...
voici l'énoncé:
"On choisit deux entiers non nuls P et n. Écrire l'algorithme permettant d'afficher la liste n de nombres construits de la manière suivante:
- la liste commence par le nombre P
- on passe d'un nombre de la liste au suivant en le divisant par 2 s'il est pair; sinon on lui ajoute 3"
j'ai essayé, comme mon prof nous l'a expliqué de remplacer P et n par 2 nombres au hasard et d'appliquer:
si n=6 et P=500
500 - 250 - 125 - 128 - 64 - 32
Voila donc mon brouillon pour l'algorithme... pouvez vous me corrigez?
soit Z les nombres suivants P
Entrée: saisir n et P
Traitement: si P est pair, alors Z prend la valeur P/2
si P est impair, alors Z prend la valeur P+3
Fin de si
Sortie: afficher la liste
Merci
Alors, n'ayant pas fait les algorithmes en seconde (pas au programme il y a 3 ans), je les ait néanmoins utilisé en informatique.
Connait-tu la boucle "tantque" ?
oui, ça doit être la réforme
et non je ne connais pas... on a fait la boucle et les conditions enfin je crois mais c'est tout... mais je crois que mon prof a dit que mercredi (prochain) on ferait ça (le "tantque"...)
mais je pense que c'est possible qu'il nous est donné un truc comme ça pour "découvrir"
Ok, mais ça me semble donc bizarre, car on répète l'action de calcul de Z, n fois (n étant entré par l'utilisateur) ... Donc logiquement il faudrait une boucle "tantque" ...
on a vu un exercice avec une boucle où le traitement commençait avec "pou" et finissais avec "fin de pour" mais je crois que c'est tout! et dans la leçon qu'on a, il n' y a pas de nom à la boucle que l'on a fait... désolée...
Ah oui, on peut en effet faire avec "pour".
Du coup, tu veux que je te donne ma solution avec "tantque" ou avec "pour" ?
ben si on peut faire avec "pour" plutôt avec "pou" alors vu que tantque on l'a pas vu... donc ce que j'ai fais c'est faux (je me disais aussi ^^ )
Non, en fait je demande la syntaxe, c'est-à-dire l'utilisation que l'on fait de "pour" ...
Par exemple pour le "si", on fait :
si (condition) alors
actions
fin si;
Mais le pour en math, ça s'écrit comment ?
Bon alors tant pis, je met comment j'aurais fait :
Variables P,n ;
afficher (P) ;
pour n > 1 faire
si P est pair alors
P <- P/2 ;
afficher (P) ;
n <- n - 1 ;
sinon
P <- P + 3 ;
afficher (P) ;
n <- n - 1 ;
fin si;
fin pour;
merci c'est gentil de m'aider
bon j'avoue que j'ai pas trop compris... d'abord les "-" c'est des moins? et comment avez vous trouvez le 3? et pourquoi P< -P/2 ?
Oui, par exemple :
n <- n - 1 est l'équivalent de "A la variable n, j'affecte la variable n moins 1.
Ensuite, tu parles de quel 3 ?
Et pour P <- P/2, ça permet de ne pas utiliser une autre variable, dans la mesure où après le calcul, on l'affiche et on calcule la nouvelle valeur. Mais tu peut aussi une nouvelle variable Z qui enregistre la valeur calculée et qui ensuite l'affiche, c'est la même chose
Voilà, n'hésite pas à me demander si tu n'as pas compris un truc
car pour P <- P/2 justement, P est plus grand que P/2 non?
par exemple si P=500, P/2=250 donc P> P/2 non?
Ah ! Je comprend ce que tu me dis !
En fait, c'est pas "<" mais "<-" et cette flèche veut dire "j'affecte/je donne".
Donc P <- P/2, ce n'est pas "P est inférieur à P/2" mais "la variable P prend comme valeur P/2"
C'est plus clair ?
aaah ok!! on avait pas vu ce signe en cours ! donc oui j'ai mieux compris mais ça "n <- n - 1" non, j'ai pas compris...?
Donc la c'est pareil, à n, j'affecte n - 1.
C'est en fait cette condition qui me permet de n'afficher que les n termes. Je m'explique.
Au début, tu saisis n avec la valeur 6, c'est-à-dire que tu veux afficher les 6 termes de la liste.
Et à chaque fois, tu effectues les mêmes calculs (si P est pair ... sinon si P est impair alors ...) d'où la nécessité d'utiliser une boucle "pour". Cependant, il ne faut pas faire une boucle infini, car on ne veut afficher que les n premiers termes de la liste ! La condition est donc : "on effectue les calculs pour n > 1 et afin d'arrêter cette boucle, on diminue progressivement la valeur de n" et si tu essayes le petit algorithme, tu veras, ça fonctionnera, tu auras bien les 6 termes ! Afin de mieux comprendre, essaye de faire la trace pour P = 500 et n = 6, tu verras, tu comprendras, même moi je me suis aidé d'un exemple !
Voilà, j'espère avoir été le plus clair, dis-moi si un truc te gêne !
donc, si je comprend bien on met "n <- n - 1" pour dire que on avance d'un nombre: si n=6, on met ça pour dire que on passe au suivant, au 5ème? c'est ça?
et donc, tout ça c'était le traitement, pour la sortie, c'est "afficher la liste"?
en tout cas, merci beaucoup c'est très gentil de m'aider! (j'ai toujours un peu de mal en maths... )
C'est ça oui, "à n j'affecte la valeur n - 1"
J'espère que le fait de diminuer n de 1 a chaque fois ne te dérange pas trop.
On aurait pu aussi prendre une variable que l'on nomme A
Et on aurait fait : pour A différent de n faire
...
A <- A + 1
On initialise A à 1 et tant que A est inférieur (ou égal) à n, on effectue le processus, sans oublier d'ajouter 1 à A pour sortir à un moment de la boucle !
Voilà, si tu as des questions
merci beaucoup j'ai compris!!!!!! je pense que je vais opter pour le "n prend la valeur de n-1".
en tout cas c'est super gentil de m'avoir aidée
normalement j'ai plus de questions (je pense mais on sait jamais )
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :