Il y a actuellement 62 visiteurs
Samedi 25 Novembre 2017
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 1 , 2 / 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: 63
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
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8876
Inscription: 13 Mai 2003 16:32
Localisation: A.H.P... 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: 63
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: 63
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
No hay camino. Se hace camino al andar. (A. Machado)
Avatar de l'utilisateur
diogene
Moderateur
Moderateur
 
Messages: 9573
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: 63
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.
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8876
Inscription: 13 Mai 2003 16:32
Localisation: A.H.P... 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: 63
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.
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8876
Inscription: 13 Mai 2003 16:32
Localisation: A.H.P... 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: 63
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: 63
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.
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8876
Inscription: 13 Mai 2003 16:32
Localisation: A.H.P... 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: 63
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: 63
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...
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8876
Inscription: 13 Mai 2003 16:32
Localisation: A.H.P... et jamais loin d'une Debian
 

Suivante


Sujets similaires

Message Adaptateur USB Wifi : Code 10
Bonjour,Suite à un loooooong parcours du combattant, j'ai monté mon propre PC fixe et y ai installé Windows 10 J'ai acheté aujourd'hui un adaptateur de la marque Spyker qui est donc selon mon gestionnaire de périphérique : 802.11n USB Wireless LAN CardJ'ai installé les pilotes mais Windows me dit ...
Réponses: 5

Message PC ne démarre pas : Error code : 0XC000000F
Bonjour, J'ai actuellement un PC sous W8.1 mais il ne démarre pas. Lors de sa mise en route j'ai le message d'erreur suivant : Your PC/DEVICE isn't connected or can't be accessedError code : 0XC000000FLors de la tentative de réparation avec un CD de W8 ou W10 en lançant l'outil de redémarrage systè ...
Réponses: 3

Message Je ne trouve pas comment Insérer code de suivi GOOGLE ANALYT
Bonjour,Je travaille dans une entreprise ayant un site Internet qui a été créé avec Orange.Je souhaite mesurer l'audience du site grâce à Google Analytics, mais je ne sais pas comment insérer le code de suivi.Je peux me connecter au compte perso orange qui me donne accès aux pages de mon site intern ...
Réponses: 1

Message [Pc]Apres lancement de jeu,ecran noir et code d'erreur windo
Bonjour,je viens ici pour trouver de l'aide car je suis venus il y a quelques jours pour un soucis de config de mon ordinateur portable... Le pc ramait(chute à 15 fps) pour des jeux comme Cs:go etc, ce qui ne devrait pas arriver.Cependant le probleme s'est amplifie, je ne peux demarrer aucun jeu sou ...
Réponses: 11

Message UNKNOW DEVICE Code 43 Probleme Peripherique
Bonjour a tous, J'explique : Mon PC ne reconnait pas mon HTC ONE M7. Quand je le branche, j'entends bien le son de la connexion, mais immédiatement le pc me dit : "Périphérique usb non-reconnu. L'un des périphérique de cet ordinateur a mal fonctionné et windows ne le reconnait pas". Dans l ...
Réponses: 2

Message Execution d'un algorithme sous Iphone / Projet App
Bonjour,Je viens de m'inscrire sur ce forum afin de poser des questions aux personnes ayant les capacités de me répondre.En effet, j'ai eu une idée d'application que je pense très bonne. En en parlant à la communauté concernée, tout le monde m'a dit " go vazy ca à l'air trop bien mais va falloi ...
Réponses: 2


Qui est en ligne

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


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