Bonsoir a tous !
J'ai eu un exercice d'algorithme mais je ne sais pas vraiment si ce que j'ai fait est correct donc est ce que vous pourriez me corriger ou me donner des conseils pour mieux présenter ou autre ? Merci d'avance !
Tout d'abord voici le sujet :
Si n est un entier naturel non nul, on le divise par 2 s'il est pair, sinon on le multiplie par 3 puis on lui ajoute 1. On répéte l'opération jusqu'a l'obtention du nombre 1.
1 VARIABLE
2 n EST DU TYPE NOMBRE
3 DEBUT ALGORITHME
4 LIRE n
5 TANT QUE (n!=1) FAIRE
6 DEBUT TANT QUE
7 SI (n%2==0) ALORS
8 DEBUT SI
9 n PREND LA VALEUR n/2
10 FIN SI
11 SINON
12 DEBUT SINON
13 n PREND LA VALEUR 3*n+1
14 FIN SINON
15 AFFICHER "n="
16 AFFICHER n
17 FIN TANT QUE
18 FIN ALGORITHME
Question posée:
~> Ecrire l'algorithme en langage naturel dont est issu ce programme.
~> Modifier l'algorithme pour calculer la durée de vol dans le programme
Réponse proposée :
~> Entrée : Saisir n
Traitement : Afficher n
Tant que n1 faire
Si le nombre est pair, le diviser par 2
Si le nombre est impair, le multiplier par 3 puis ajouter 1
Fin si
Sortie : Afficher n=
Suis je complétement a coté ou ai je bon ? Je ne comprends pas trés bien la question mais j'ai essayé de faire de mon mieux par contre pour l'autre question je ne sais pas :/ J'ai fait plusieurs recherches mais rien ma prof m'a dit que la durée de vol était le nombre d'étape du vol et que le vol était la suite obtenue aprés les calculs et ca je ne sais pas l'introduire dans l'algorithme ... Comment faire aidez moi s'il vous plait :/
Merci d'avance !
Entrée : Saisir n non nul
Traitement :
Tant que n est différent de 1 faire
Si le nombre est pair, le diviser par 2
Sinon le multiplier par 3 puis ajouter 1
fin tant que
Sortie : Afficher la valeur de n
Bonjour ,
la 1° partie est correcte . En sortie , c'est afficher n au lieu de afficher n= . Ou alors afficher "n = " , n .
Comme tu as mis un fin si , je mettrais aussi un fin tant que .
Pour la durée de vol , c'est effectivement le nombre de fois qu'on passe dans la boucle tant que ... fin tant que .
Il faut donc introduire une variable supplémentaire (p pour passage par exemple) , l'initialiser à 0 et afficher sa valeur à la fin .
Cordialement
Merci pour vos réponses ca m'aide beaucoup !
Et donc j'ai juste a rajouter les deux lignes ?
En fait je cherchais compliquer alors que c'est tout simple ^^
>>> Et donc j'ai juste a rajouter les deux lignes ?
3 lignes : initialisation , incrémentation dans la boucle , affichage final
Cordialement
1 VARIABLE
2 n EST DU TYPE NOMBRE
... i est du type nombre
3 DEBUT ALGORITHME
4 LIRE n
... i prend la valeur 0
5 TANT QUE (n!=1) FAIRE
.... i prend la valeur i + 1
6 DEBUT TANT QUE
7 SI (n%2==0) ALORS
8 DEBUT SI
9 n PREND LA VALEUR n/2
10 FIN SI
11 SINON
12 DEBUT SINON
13 n PREND LA VALEUR 3*n+1
14 FIN SINON
15 AFFICHER "n="
16 AFFICHER n
17 FIN TANT QUE
..... AFFICHER "durée de vol = "
..... AFFICHER i
18 FIN ALGORITHME
Cela me parait correct sauf la ligne .... i prend la valeur i + 1 qui doit s'exécuter à chaque passage dans la boucle et qui doit donc être mise après la ligne 6 .
D'ailleurs moi , je ne met jamais DEBUT TANT QUE ou DEBUT SI
Je trouve plus lisible de soigner l'indentation :
TANT QUE ...
...
...
FIN TANT QUE
SI ...
...
...
...
SINON SI ...
...
...
...
SINON
...
...
FIN SI
Cordialement
fm_31 a raison.
Compte de la syntaxe du TANT QUE utilisé ici,
le i prend la valeur i + 1
doit trouver sa place entre le DEBUT TANT QUE et le FIN TANT QUE.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :