CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Confirmation Algorithme

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 18:07:13

Salut à tous^^

Voilà j'ai un algorithme à faire pour demain dont voilà l'énoncer:

"Choisir un entier P non nul et choisir un entier n non nul. 2crire l'algorithme permettant d'afficher la liste des nombres n construit de la manière suivante:
.Le premier nombre de la liste est P
.On passe d'un nombre de la liste au suivant en le divisant par deux si il est pair,sinon on lui ajoute 3"

J'ai donc construit l'algorithme mais ce qui m'embête c'est n, je ne sais pas pourquoi on doit le saisir. Enfaite, je ne sais pas si il faut faire une initialisation. Voilà ce que j'ai écris:

Entrée: Saisir P non nul
Saisir n non nul

Traitement: Pour i allant de 1 jusqu'à n
Si P est pair, alors R prend la valeur P/2
Sinon R prend la valeur P+3
Fin de si
Fin de pour

Sortie: Afficher R

Donc là l'ennui c'est que si j'ai bien capté, avec la boucle jusqu'à n, l'algorithme s'arrête lorsque le nombre P devient le nombre n (Genre si P=100 et que n=50 il faut juste diviser). Mais si n est un nombre que l'on ne peut pas rencontrer en utilisant l'algorithme sur P, alords mon algorithme n'est plus valable. Mais si je fais une initialisation et que je rentre la valeure n, alors P sera forcément entre 1 et n, non? Désoler si je suis pas clair je sais que j'explique mal. Bref je veux juste savoir si mon algorithme et juste et un petit indice sur ce qu'il faut faire si il est faux.

Merci d'avance^^

dunadan63
dunadan63
Niveau 10
27 janvier 2011 à 18:19:17

Non, la boucle sera faite n fois (50 dans ton exemple) et te donnera donc n (50) nombres.

Maintenant, les modifs à apporter :
- il ne faut pas la variable R, mais remplacer directement P (ou alors, à la fin de ta boucle, il faut que P prenne la valeur de R)
- comme P est censé être le premier nombre de la liste, il faut l'afficher avant tout traitement, donc il faut mettre un "afficher P" avant ta boucle "pour"
- comme on veut n nombres et que P est le premier, il n'y a en fait que n-1 nombres à calculer (donc il faut modifier la boucle "pour")
- ton algorithme, comme il est écrit, ne t'affichera qu'une valeur, la dernière. Il faut que l'affichage se trouve dans la boucle "pour"

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 18:28:16

Je suis pas sûr qu'on ai appris tout ça xD. Là je dois admettre que je suis largue. En classe on 'a jamais afficher P.

Donc ça veut dire:

Entrée: Saisir n
Saisir P

Traitement: Afficher P
Pour i allant de 1 jusqu'à n
Si P pair, alors R prend la valeur P/2
Sinon, R prend la valeur P+3
P prend la valeur de R
Afficher P
Fin de Si
Fin de pour

Sortie: Afficher P

Je pense que c'est faux mais je n'ai pas bien compris ce que tu m'as dit. En classe on n'a pas fait tous ces trucs. Que veux tu dire par "modifier la boucle"? En fait j'ai juste compris qu'il fallait que j'affiche P en dehors et dans la boucle.

dunadan63
dunadan63
Niveau 10
27 janvier 2011 à 18:53:48

Quand je disais "modifier la boucle", c'était en fait "modifier le compteur de la boucle". Parce que vu comment il est pour l'instant, la boucle va se faire n fois, alors que tu n'as besoin que de calculer n-1 valeurs (vu que la 1ère valeur est P, qu'on connaît à la base).

Pour essayer de te faire comprendre, je vais te montrer ce que ferait ton algo de ton 1er message :
n=4
P=10

R=5
R=5
R=5
R=5

"5" (là, c'est ce qu'il t'affiche à l'écran)

Alors, pourquoi on a 4 fois la même ligne ? Parce qu'on fait 4 fois la boucle avec à chaque fois les mêmes valeurs : au début de chacune des boucles, P valait 10, et donc à chaque fois on obtient R = 5.
Pourquoi on a qu'une valeur d'affichée ? Comme je l'ai dit dans l'autre message, tu ne demande l'affichage qu'après la boucle, donc il ne t'affiche que la dernière valeur de R qu'il a calculée.

Sadran
Sadran
Niveau 8
27 janvier 2011 à 18:54:55

putin c'est plus facile que chez moi vos algos :(

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 19:21:54

Bah ouais mais moi j'ai toujours été entrainer à faire des boucles juste avec n indiquant le nombre de fois où l'on répère l'opération. Donc là je dois faire comment? je n'ai pas appris et je vois pas trop comment faire. Il faut que j'écrive: "Pour i de 1 jusqu'à n-1"

parkas_1
parkas_1
Niveau 19
27 janvier 2011 à 19:26:34

Il faut aussi ajouter le pas. Pour i de 1 à n+1 par pas de 1 :) .

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 19:30:55

Je comporends rien. Pourquoi +1? Donc en fait je met:

Entrée: Saisir P
Saisir n

Traitement: Afficher P
Pour i de 1 jusqu'à n+1
Si P est pair, alors R prend la valeur P/2
Sinon R prend la valeur P+3
Fin de si
P prend la valeur R (Ou alors au lieu de dire R je dis P depuis le début?)
Fin de pour

Sortie: Afficher P

??

dunadan63
dunadan63
Niveau 10
27 janvier 2011 à 19:45:03

Non, c'est bien n-1.
Et le "Afficher P" que tu as mis à la fin doit en fait se trouver à la fin de la boucle "pour" pour qu'il t'affiche à chaque fois le nombre qu'il a calculé. Si tu le laisses à la toute fin, il ne t'affichera que le dernier nombre.

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 19:48:36

Ok alors je retente une dernière fois:

Entrée: Saisir P
Saisir n

Traitement: Afficher P
Pour i de 1 jusqu'à n-1
Si P est pair, alors R prend la valeur P/2
Sinon, R prend la valeur P+3
Fin de si
P prend la valeur de R
Afficher P
Fin de pour

Sortie: Afficher P

Et cette fois c'est bon?

parkas_1
parkas_1
Niveau 19
27 janvier 2011 à 19:51:39

Début
P,N,i,R entiers
Saisir P non nul
Lire P
Saisir N non nul
Lire N
Afficher P
Pour i allant de P+1 à N faire
R prends la valeur i
si R est pair alors R = R/2
sinon R=R+3
Afficher R
Fin pour
Fin

parkas_1
parkas_1
Niveau 19
27 janvier 2011 à 19:52:55

Pour i allant de P+1 à N par pas de 1 faire *

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 19:55:11

Tu mets les saisis et les lecture dans la partie "Entrée"?

Parce que tu mets Saisir P non nul, Lire P non nul et tu enchaines par Saisir N...

Alors que dans les entrées normalement c'est juste les saisis non?

dunadan63
dunadan63
Niveau 10
27 janvier 2011 à 19:57:18

Rokusu :d) Enlève le "Afficher P" à la toute fin.

parkas_1 :d) Je ne comprends pas ta boucle "for" : qu'est-ce que P vient faire dans le compteur alors qu'on veut n nombres ?

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 19:59:16

Bah oui mais le prof il nous a dit que un algorithme c'était Entrée, traitement et sortie, et nous on a toujours afficher le résultat dans sortie, pas dans le traitement.

parkas_1
parkas_1
Niveau 19
27 janvier 2011 à 20:00:20

Ah ouai j'ai mal compris l'énoncé je crois.
J'essayais tous les nombres de P+1 à N :honte:

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 20:02:09

Donc je mets quoi au final xD

dunadan63
dunadan63
Niveau 10
27 janvier 2011 à 20:17:55

En fait, ta sortie est dans la boucle : tu entres P et n (entrées), il t'affiche P (sortie), il calcule le nombre suivant (traitement), te l'affiche (sortie), calcule le nombre suivant (traitement),...

Rokusu
Rokusu
Niveau 16
27 janvier 2011 à 20:46:05

Ok bah merci beaucoup pour votre aide^^

Sous forums
  • Cours et Devoirs
  • Histoire
  • Métiers & Orientation
  • Environnement & Nature
  • Politique
  • Philosophie
La vidéo du moment