Il y a actuellement 904 visiteurs
Dimanche 03 Mai 2026
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Algorithme : Pseudo Code

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Algorithme : Pseudo Code

Message le 23 Déc 2016 12:34

Salut à tous ;)

Je souhaite apprendre l'algorithme de base en utilisant du "pseudo code "
Je souhaite comprendre l'utilisation de la boucle : " Pour "... 'Faire"

Un exemple d'exercice, je souhaite cacluler la somme des N premiers nombres entiers, avec cette boucle

Pourriez-vous m'expliquer cela :

Programme PremiersNombresEntiers
// Ce programme calcule la somme des N premiers nombres entiers avec la structure itérative POUR Variables

N : entier
resultat : entier
cpt : entier // cpt = compteur

Début
N := lireEntier()

pour (resultat :=0, cpt := 1; cpt <= N ; cpt := cpt + 1) faire
resultat := resultat + cpt
finpour

écrire (« Le résultat avec pour est : », resultat)
Fin

Merci :)
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 


Re: Algorithme : Pseudo Code

Message le 23 Déc 2016 13:32

killzone a écrit:
Code: Tout sélectionner
pour (resultat :=0, cpt := 1; cpt <= N ; cpt := cpt + 1) faire
    resultat := resultat + cpt
finpour


Sur le principe cela signifie :
* j'initialise la variable resultat à 0
* j'initialise la variable cpt à 1
* ma boucle agira tant que cpt <= au nombre N et à chaque itération j'ajoute 1 à cpt
* a chaque passage de boucle j'ajoute à resultat la valeur de cpt

Personnellement, je trouve la syntaxe un peu bizarre et j'aurais écris cela plutôt comme ça :
Code: Tout sélectionner
resultat :=0
pour (cpt := 1; cpt <= N) faire
    resultat := resultat + cpt
    cpt := cpt + 1
finpour

.. mais ça reste du pseudo code, on écrit un peu ce qu'on veut
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9083
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron, perle de Provence... et jamais loin d'une Debian
 

Re: Algorithme : Pseudo Code

Message le 23 Déc 2016 14:23

Merci pour tes explications ;) Traduis en français c'est tout de suite plus clair ^^
Je préfère également ta façon de présenter les choses. En termes d'optimisation, est-ce le même rendu ? ( ton algorithme contient plus de lignes ).

J'ai du mal néanmoins à saisir l'utilisé de la variable compteur.

Sans un compteur, une boucle itérative ne peut pas fonctionner ?
Peut-elle se placer en dehors de la structure pour ?
Si par exemple, ici, on avait définit que l'on devait connaître la somme des 10 premiers nombres entiers, comment l'algorithme serait présenté ?

Merci pour ton aide :D
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 27 Déc 2016 12:23

Un petit coup de main ? :)
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 27 Déc 2016 14:21

killzone a écrit:J'ai du mal néanmoins à saisir l'utilisé de la variable compteur.

La variable compteur (for(i....)) sert à exécuter un sous-programme un certain nombre de fois ou à répéter ce sous-programme avec une valeur qui augmente ou décroît.

killzone a écrit:Sans un compteur, une boucle itérative ne peut pas fonctionner ?

Si. Il existe un autre type de condition (while(...)) qui indique que le sous-programme doit s'exécuter indéfiniment, sauf si la condition définie est remplie. Par exemple, je veux que l'utilisateur saisisse une date dans un format donné. Tant que le format n'est pas respecté et la date valide, la saisie reprend au début.

killzone a écrit:Peut-elle se placer en dehors de la structure pour ?

Si tu places ton compteur en-dehors de la boucle, il ne pourra pas varier en fonction de son exécution et la boucle, soit ne s'exécutera qu'une fois, soit elle s'exécutera indéfiniment. Il est impératif que chaque "tour" de boucle incrémente ton compteur.

killzone a écrit:Si par exemple, ici, on avait définit que l'on devait connaître la somme des 10 premiers nombres entiers, comment l'algorithme serait présenté ?

Quelque chose de ce genre :

Code: Tout sélectionner
total=0
n=10
    pour(i=1, i<=n) faire
    total=total+i
    i=i+1
    finpour
ecrire total
Avatar de l'utilisateur
diogene
Moderateur
Moderateur
 
Messages: 12707
Inscription: 24 Avr 2009 22:41
Localisation: Dordogne
 

Re: Algorithme : Pseudo Code

Message le 28 Déc 2016 12:16

Merci pour ces précisions Diogene.
Je dois avouer que chaque fois que je suis venu sur ce site, que ce soit pour un problème ou un conseil, j'y ai toujours trouvé satisfaction :D

J'ai effectivement vu les boucles itératives avec " Tant que " et " Répéter ". La structure "' Pour " me semble la plus claire à l'heure actuelle.

J'ai mieux compris l'utilisation de la variable cpt :) Cela dit quelque chose m'interroge. Je ne vois pas comment on peut s'en passer dans une structure " Tant que "

Pour ce que j'avais vu de la structure Tant que, j'avais cru comprendre qu'il était obligatoire de déclarer une variable compteur(cpt) et de l'inclure dans son formule, pour qu'une procédure fonctionne :-? ( ou alors je suis complètement paumé ^^ )

Par exemple, si on souhaite calculer la somme des x premiers nombres entiers, on doit déclarer en variable : x, résultat et cpt.
J'ai du mal à l'écrire sous forme de programme mais l'idée est celle-ci.

Pour lancer la procédure, on donne la valeur 0 à résultat, et la valeur de 1 au cpt // Les variables ont été définies comme entières.

Ainsi, tant que le cpt <= (inférieur ou égal) à x, on fait résultat +cpt.
Au tour suivant, le cpt est incrémenté de +1.

Comment peut-on se passer d'une valeur cpt ici ?

Merci pour l'exemple avec la structure pour :wink:

Une question en apparté, lorqu'on code, moins on a de ligne et plus on gagne en optimisation ?

Merci :D
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 28 Déc 2016 16:26

Par exemple, si on souhaite calculer la somme des x premiers nombres entiers, on doit déclarer en variable : x,
résultat et cpt.

Tu n'as pas besoin de trois variables, deux suffisent.
ex :
Code: Tout sélectionner
cpt := 0
resultat := 0
tantque (cpt <= 10)
  cpt := cpt + 1
  resultat := resultat + cpt
fintantque


Une question en apparté, lorqu'on code, moins on a de ligne et plus on gagne en optimisation ?

Moins on a d'instructions plus on gagne.. ou plutôt moins on a d'instructions couteuses (en temps CPU) plus on gagne en temps d'exécution.
Mais vu la puissance des processeurs et des composants, avant de se soucier du temps d'exécution il faut beaucoup d'expérience et de pratique.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9083
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron, perle de Provence... et jamais loin d'une Debian
 

Re: Algorithme : Pseudo Code

Message le 28 Déc 2016 18:27

Merci pour tes indications, ça me sera utile :D
J'ai sans doute des questions de débutant, alors merci pour ta patience :lol:

Dans ton exemple, tu attribues au début 0 à deux variables différentes ( cpt et résultat ).
Etant donné que l'action est effectué ligne après ligne, je n'obtiendrai pas d'erreur après les deux premières lignes de code ?

cpt := 0
resultat := 0

Comment l'ordinateur peut-il différencier cpt de résultat :-?

Ps : Je précise que je me renseigne pas mal au sujet des algorithmes, que ce soit dans des forum, dans des pages web de cours ou des tuto sur youtube. J'insiste peut-être un peu avec mes questions, mais je me dis que " tant que " ( :lol: ) je ne comprendrai pas les mécaniques des algorithmes de bases, c'est pas la peine que je me lance dans l'apprentissage de langage web.

Merci encore :wink:
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 28 Déc 2016 18:43

killzone a écrit:Dans ton exemple, tu attribues au début 0 à deux variables différentes ( cpt et résultat ).
Etant donné que l'action est effectué ligne après ligne, je n'obtiendrai pas d'erreur après les deux premières lignes de code ?
cpt := 0
resultat := 0

Je ne comprend pas ta question... pourquoi veux-tu obtenir une erreur en initialisant une variable ? Tu peux le faire autant de fois que tu veux et avec autant de variables que tu veux.
killzone a écrit:Comment l'ordinateur peut-il différencier cpt de résultat :-?

Parce que justement ce sont deux variables "différentes", de par leur nom.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9083
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron, perle de Provence... et jamais loin d'une Debian
 

Re: Algorithme : Pseudo Code

Message le 29 Déc 2016 13:35

Je n'étais peut-être pas assez clair. :oops:
Malgré tout, je pense que j'ai compris avec ta réponse. :wink:

Au final, peu importe la valeur que l'on attribue à nos variables.
A partir du moment où elles ne portent pas le même nom, deux variables différentes peuvent avoir la même valeur.

Merci :D
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 03 Jan 2017 10:42

Saut à tous ;)

Après avoir vu les bases de l'algorithme, je me lance dans l'apprentissage de C.

Pour en rester sur l'exercice précédent (cacluler la somme des N premiers nombres entiers, avec la boucle pour)

Je souhaiterai savoir si c'est bon (il y aura sans doute pas mal d'erreurs ^)

#include <stdio.h>

int main()
{

int N;
int resultat;

resultat=0;
N=10;

printf("Insérer un nombre : \N");
scanf("%i", &N);

for (i=1, 1<= N) faire
resultat := resultat + 1
i=1+1

}

printf ("La somme des N premiers nombres est: %i");

return 0;

Pourriez-vous m'indiquer toutes mes erreurs, y compris celle de syntaxe ?

Merci à vous :)
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 03 Jan 2017 12:54

Déjà il faut systématiquement mettre ton code entre les balises "code" sur le forum, sinon on ne peut pas toujours le voir affiché correctement.
Ensuite, avant de te corriger quoi que ce soit, perso je vais t'inviter à simplement te relire car il y a beaucoup de fautes inutiles : du code qui ne fait rien, des manques de ";", du pseudo-code dans du code, du code hors parenthèses, etc...
Donc par principe je ne corrigerai pas cela : je pense qu'une simple relecture accompagnée d'une petite analyse + réflexion suffiront pour corriger les 3/4 des erreurs.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9083
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron, perle de Provence... et jamais loin d'une Debian
 

Re: Algorithme : Pseudo Code

Message le 03 Jan 2017 14:24

Merci Casa. :wink:

C'est pas évident quand on débute de se rendre compte des erreurs que l'on fait :-? J'avoue que je ne connais pas tous les termes du langage C, que je remplace pour le moment par du pseudo-code. :oops:

Code: Tout sélectionner
#include <stdio.h>

int main()
{

int N;
int resultat;
int i

/* Initalisation des variables */

            resultat=1;
            i=N;

         printf("Insérer un nombre : \N");
         scanf("%i", &N);

                 for ("i=1", "1<= N", "i=i++") faire
         resultat := resultat + 1
         i=1+1;

    }

}

return 0;


Est-ce que c'est mieux ?
Merci à vous :wink:
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 03 Jan 2017 14:27

Merci à vous :wink:
killzone
Sous Expert(e)
Sous Expert(e)
 
Messages: 68
Inscription: 05 Jan 2015 11:33
 

Re: Algorithme : Pseudo Code

Message le 03 Jan 2017 18:12

killzone a écrit:J'avoue que je ne connais pas tous les termes du langage C, que je remplace pour le moment par du pseudo-code. :oops:

Une simple recherche sur les syntaxes sur le net te donnent des réponses.
Ex :
Code: Tout sélectionner
for ("i=1", "1<= N", "i=i++") faire

Tu as les syntaxes ici => https://openclassrooms.com/courses/appr ... -boucles-1
.. et donc tu vois que ta syntaxe est complètement fausse, la bonne est :
Code: Tout sélectionner
for (i=1; i <= N; i++)
{
    .. ton code...
}


Code: Tout sélectionner
int i

Erreur d'inattention... en C il faut un ";" à la fin de chaque instruction

Code: Tout sélectionner
printf("Insérer un nombre : \N");

Je ne crois pas que \N soit un saut de ligne... mais \n oui => respect des maj/min

Code: Tout sélectionner
resultat := resultat + 1
i=1+1;

2 erreurs bêtes et/ou d'inattention en deux lignes...
- une affectation c'est "=" en C, et non pas ":=" comme en Pascal ou en ADA (sans compter l'absence du ";")
- i=1+1 ne te feras jamais un incrément de i... ca mettra seulement 2 dans i à chaque boucle, et ceci indéfiniment car le i++ fait dans la boucle for() sera systématiquement remplacé par 2 (c'est un code qui aurait surement bien plu à Sisyphe).

Code: Tout sélectionner
return 0;

Cette instruction est en dehors de la boucle Main () {}... donc pas à la bonne place.

Mais plutôt que de chercher un peu de manière empirique, je te conseille sincèrement de suivre un tuto sur le C, à la base comme dans chaque langage : mots-clef, variables, initialisations, instructions, affectations, boucles, etc...
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9083
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron, perle de Provence... et jamais loin d'une Debian
 

Suivante


Sujets similaires

Message Kraken Referral Code: [bqbhddw3] Free $200 Crypto Bonus
"Ready to start your crypto journey with one of the most trusted names in the industry? Kraken is offering an exclusive opportunity for new traders to kickstart their portfolio. By using the Kraken Coupon Code: [bqbhddw3], you can qualify for a trading credit and rewards worth up to $200.Whethe ...
Réponses: 0

Message Kraken Referral Code: [thd9d5yg] Get Up to $200 Reward on Si
"If you are looking to dive into the world of cryptocurrency, there is no better time than now. Kraken, one of the world?s oldest and most secure cryptocurrency exchanges, is currently offering a fantastic promotional opportunity. New users who sign up using the Kraken Referral Code: [thd9d5yg] ...
Réponses: 0

Message Moomoo Referral Code: 7K6APMM [Get 8% Apy + Up to 15 free St
"Earn Up to 15 Free Stocks + 8% APY with Moomoo Referral Code 7K6APMMIf you?ve been looking for a way to start investing smarter and get rewarded instantly, Moomoo has one of the best promotions available right now. By signing up with the Moomoo referral code 7K6APMM, you can unlock up to 15 fr ...
Réponses: 0

Message Moomoo Referral Code: 4T8VF3HM [Get 8% Apy + Up to 15 free S
"Earn Up to 15 Free Stocks + 8% APY with Moomoo Referral Code 4T8VF3HMIf you?ve been looking for a way to start investing smarter and get rewarded instantly, Moomoo has one of the best promotions available right now. By signing up with the Moomoo referral code 4T8VF3HM, you can unlock up to 15 ...
Réponses: 0

Message Moomoo Referral Code: FLR35EXM [Get 8% Apy + Up to 15 free S
"Earn Up to 15 Free Stocks + 8% APY with Moomoo Referral Code FLR35EXMIf you?ve been looking for a way to start investing smarter and get rewarded instantly, Moomoo has one of the best promotions available right now. By signing up with the Moomoo referral code FLR35EXM, you can unlock up to 15 ...
Réponses: 0

Message Moomoo Referral Code: NQUFSF9M [Get 8% Apy + Up to 15 free S
"Earn Up to 15 Free Stocks + 8% APY with Moomoo Referral Code NQUFSF9MIf you?ve been looking for a way to start investing smarter and get rewarded instantly, Moomoo has one of the best promotions available right now. By signing up with the Moomoo referral code NQUFSF9M, you can unlock up to 15 ...
Réponses: 0

Message Moomoo Referral Code: 7J6AP9MM [Get 8% Apy + Up to 15 free S
"Earn Up to 15 Free Stocks + 8% APY with Moomoo Referral Code 7J6AP9MMIf you?ve been looking for a way to start investing smarter and get rewarded instantly, Moomoo has one of the best promotions available right now. By signing up with the Moomoo referral code 7J6AP9MM, you can unlock up to 15 ...
Réponses: 0


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


.: Nous contacter :: Flux RSS :: Données personnelles :.