Algorithme
Bonjour et merci d'avance
J'ai un document pdf trouvé sur internet pour apprendre à faire des algorithmes
jusqu'à présent je n'avais pas besoin de savoir écrire des algorithmes et en fait je m'en foutais complètement
je les faisais sans respecter les normes et même très souvent je les écrivais directement dans le code
mais depuis quarante ans j'essaye de progresser tout seul dans les maths
(sans raison particulière et tant bien que mal évidemment car chez moi les maths sont une drogue dure
qui sont en concurrence avec l'alcool -bière uniquement- et le punk-ultra uniquement-et préservent mon foie et ma raison à défaut du reste)
et pour ce faire j'ai besoin d'en écrire un de façon conventionnelle
je vous remercie de me dire si celui ci-dessous est conventionnellement correctement écrit
_______________________
Algorithme : Gray-b
// algorithme qui calcule à partir du code Gray-b optimal d'un entier naturel ,
le code Gray-b optimal de cet entier ajouté de 1 //
Variables :
chaine de caractères
Réserver la mémoire des variables de noms
ces variables sont définies par : pour tout
Début:
Écrire ("saisir la base du code Gray-b");
saisie();
Écrire ("saisir le poids du codage optimal de u");
saisie();
Écrire ("En partant du rang 1, saisir les chiffres du code optimal de u");
Pour allant de
à
faire
saisie();
FinPour
Pour allant de
à
faire
Si et
est pair faire
;
"
...
";
Écrire ("Le code Gray_b optimal de u+1 est :",u);
Fin
FinSi
Si et
est impair faire
;
"
...
";
Écrire ("Le code Gray_b optimal de u+1 est :",u);
Fin
FinSi
FinPour
"
...
";
Écrire ("Le code Gray_b optimal de u+1 est :",u);
Fin
Bon eh bien merci
À défaut de réponse je suppose donc que mon algorithme est conventionnellement correctement écrit
j'avais un doute car j'ai placé des Fin entre deux Si et FinSi
NB : dans mon document pdf on ne rencontre pas ce cas où on est en quelque sorte obligé de finir et ordonner l'instruction Fin entre deux Si et FinSi
Bonjour,
en effet, attendre un peu peut être une bonne idée : tous les intervenants ne sont pas forcément disponibles à l'heure où tu le souhaiterais..
J'ai hésité à te répondre, car ta demande me laisse un peu perplexe :
les conventions d'écriture : elles dépendent du contexte, et tu donnes un algorithme qui est écrit en langage naturel pour moitié.. il y aussi des instructions, mais en quel langage ?
Les conventions d'écriture en langage informatique sont regroupées dans la syntaxe du langage..
En tous cas, habituellement, on respecte l'intendation pour les conditions et les boucles, même en langage naturel, ne serait-ce que pour la lisibilité..
L'instruction "FIN" : que veux tu dire ? si c'est la fin d'une condition, le FIN SI suffit,
si c'est la fin d'une boucle, on mettra FIN POUR ou FIN TQ..
Si tu essaies de faire tourner ton algorithme, les erreurs de syntaxe te diront si tu as respecté les conditions d'écriture..
Je ne suis pas sûre d'avoir répondu à ton attente..
Merci pour votre réponse Leile
dans mon doc pdf l'instruction Fin est différente de FinSi (associée à un Si) ou FinPour(associée à un Pour)
l'instruction Fin est associée à l'instruction Début
avec l'instruction Fin le programme s'arrête
j'ai été obligé ici d'obliger le programme à s'arrêter si la condition du Si est respectée et donc obligé à placer l'instruction Fin entre un Si et un FinSi
ah pardon quand vous posez la question : en quel langage?
en fait mon doc pdf dit ceci
l'écriture d'un programme dans un langage de programmation n'est que l'étape finale d'un développement qui se déroule en trois phases
l'analyse, l'algorithme, et la programmation
ce que j'ai écrit n'est pas écrit dans un langage de programmation c'est l'étape qui la précède
mais mon doc pdf dit que cette étape possède une convention d'écriture (ce n'est pas un truc qu'on fait à sa sauce)
en fait dans mon algo j'ai fait autre chose que dans les exemples donnés dans mon pdf en obligeant le programme à s'arrêter entre une instruction Si et l'instruction associée FinSi
en effet , il y a 3 phases dans le développement d'un programme.
Ici, tu en es à la phase 2.
Pour éviter d'avoir des instructions FIN en nombre (on ne devrait n'en avoir qu'une à la fin du prog), on utilise le SINON
toi tu écris :
SI A pair alors faire
blabla bla
FIN
FIN SI
Si B impair alors faire
truc
FIN
FIN SI
on pourrait écrire :
SI A pair alors faire
blabla bla
SINON
Si B impair alors faire
truc
FIN SI
FIN SI
on pourrait aussi disposer les conditions autrement (par exemple à l'inverse).. tout dépend du sujet..
NB : l'indentation en python fait office de borne FIN SI, FIN POUR, FIN TQ.
mais en langage naturel, faire els deux, c'est plus clair..
Je quitte
bonne journée
Merci pour votre réponse Leile
mais justement dans mon analyse si la condition du Si est remplie il doit effectuer des instructions puis s'arrêter(il va afficher une chaine de caractères juste avant des s'arrêter)
il ne doit pas continuer à la suite de FinSi
je pourrais certes lui dire d'aller à une ligne donnée n (n sera aussi une variable à déclarer dans la partie déclaration) située juste avant l'instruction Fin placée à la fin de l'algorithme mais dans mon document pdf il n'y a pas d'instructions aller à la ligne n
en fait dans mon algorithme si en allant de Pour à Fin Pour il n'est jamais allé entre un Si et un FinSi il devra à la suite du FinPour effectuer des instructions puis après avoir effectué l'avant dernière instruction (qui est d'afficher une chaine de caractère ) s'arrêter par l'instruction Fin
Bonjour
plutôt que des fin avant les finsi, tu ferais mieux de continuer avec des sinon (si le langage a une instruction genre "case of" qui permet de distinguer directement trois cas, parfait, sinon tu remets un si dans le sinon)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :