Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

DM algorithme

Posté par
PremiereES
30-12-12 à 15:59

Bonjour, je bloque un peu sur mon dm.

On considère un nombre entier naturel n
En partant de n , on construit une chaine de nombres de la facon suivante :
- si un nombre k de la chaine est pair, le suivant s'obtient en divisant k par 2
- si un nombre k de la chaine est impair, le suivant s'obtient en multipliant k par 3 et en ajoutant 1
La longueur de la chaine est le nombre d'entiers necessaires pour atteindre le nombre 1
EXEMPLE EN PRENANT n=20
20 10 5 16 8 4 2 1 est une chaine de longueur 8

1. Ecrire un algorithme en langage naturel qui demande à l'utilisateur un entier et qui affiche la chaine de ce nombre entier et sa longueur éventuelle
2. Implanter votre algorithme sur Algobox

Je ne comprend déjà pas comment faire l'algorithme en langage naturel etant donné qu'on en a jamais fait..

Si vous pouviez m'aider svp !

Posté par
Glapion Moderateur
re : DM algorithme 30-12-12 à 16:05

Bonjour, ça n'est pas très dur d'imaginer les instructions nécessaires pour calculer et afficher les nombres en question.

il te faut déclarer les variables dont tu as besoin (dont n le nombre de départ)
Demande la valeur de n à l'utilisateur (Lire n en Algobox)
Puis tu écris des tests : Si n est pair alors ... (pour tester si un nombre est pair, tester si la partie entière de n/2 vaut n/2)
Si oui Mettre n/2 dans n
Sinon mettre 3n+1 dans n
Afficher n
Et on doit continuer comme ça jusqu'à que n soit égal à 1 (donc englober toutes ces instruction dans une boucle Tant Que n<>1)

Posté par
PremiereES
re : DM algorithme 30-12-12 à 16:14

Donc ca donnerais :
Choisir un nombre n entier naturel
Si n est pair alors n/2
si n est impair alors 3n+1
Afficher n =1

Je ne comprend pas si c'est comme ca qu'il faut ecrire en " langage naturel "

Posté par
Glapion Moderateur
re : DM algorithme 30-12-12 à 16:23

Si n est pair alors n=n/2
si n est impair alors n=3n+1 sinon ça ne veut rien dire
Afficher n =1 n'a aucun interêt. On te demande d'afficher la suite des n et tu n'affiches rien.

Choisir un nombre n entier naturel
Tant que n <> 1 Faire
Si n est pair alors n=n/2
si n est impair alors n=3n+1
Afficher n
Fin TantQue

Posté par
PremiereES
re : DM algorithme 30-12-12 à 16:26

Daccord Merci
donc ca c'est mon algorithme en langage naturel . ensuite dans algobox je rentre juste n dans les variable et je met a peu pres la meme chose dans " debut de l'algorithme" ?

Posté par
Glapion Moderateur
re : DM algorithme 30-12-12 à 16:28

Oui et il faut trouver un moyen de traduire "n est pair" en langage Algobox
sinon, oui ça va être assez simple à transcrire à priori. Lance toi.

Posté par
PremiereES
re : DM algorithme 30-12-12 à 16:33

D'accord Merci je vais essayer sur algobox

Posté par
PremiereES
re : DM algorithme 30-12-12 à 16:51

Je dois vraiment etre idiote mais je n'arrive pas a faire mon algorithme sur algobox, entre les SI , les ALORS , les DEBUT_SI  , Les FIN_SI ect , je ne comprend rien. . .

Posté par
Glapion Moderateur
re : DM algorithme 30-12-12 à 16:54

Ha ben oui il faut connaître la syntaxe. Algobox est assez précis et il faut vraiment respecter les instructions sinon ça ne marche pas. Pour progresser il faut se battre et faire des essais, debugger en mode pas à pas; etc...

Bon c'est Noël alors je te fais cadeau de la solution :
(que tu peux copier/coller en mode éditeur de texte dans algobox) :

VARIABLES
n EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE n
AFFICHER n
AFFICHER " "
TANT_QUE (n != 1) FAIRE
DEBUT_TANT_QUE
SI (floor(n/2) == n/2) ALORS
DEBUT_SI
n PREND_LA_VALEUR n/2
FIN_SI
SINON
DEBUT_SINON
n PREND_LA_VALEUR 3*n+1
FIN_SINON
AFFICHER n
AFFICHER " "
FIN_TANT_QUE
FIN_ALGORITHME

Posté par
PremiereES
re : DM algorithme 30-12-12 à 17:01

ha Merci beaucoup!! , je n'aurais jamais pu faire ca toute seule..  



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1741 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !