Il y a actuellement 236 visiteurs
Dimanche 24 Novembre 2024
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: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... 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: 12516
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: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... 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: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... 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: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... 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: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Suivante


Sujets similaires

Message suprimer code pin
Bonjour,Je n'arrive pas a supprimer le code pin de l'écran de démarrage samsung M23.J'ai pourtant décocher la case mais rien ni fait.Cdt
Réponses: 0

Message Augmenter la puissance de calcul avec un algorithme
Salut, je voudrais savoir si il est possible d'augmenter considérablement la puissance de calcul de son ordinateur avec un algorithme ? J'ai lu par exemple que des physiciens français on fait surpasser la puissance de calcul d'un simple pc au point de lui faire dépasser celle d'un ordinateur quantiq ...
Réponses: 1

Message Création site web - Code ou CMS ?
Bonjour, Je suis ici car je cherche un avis vraiment honnête là dessus.J'entends beaucoup de critique sur Wordpress. Hors j'aimerai faire un petit site, type blog / site vitrine avec des articles mis en ligne de temps en temps. J'aimerai un truc assez beau et facile à prendre en main.Mais quand je d ...
Réponses: 6

Message [réglé] activer le code PIN et le lecteur d'empreinte.
Bonjour à tous,sur un ordinateur que je viens de recevoir, j'essaie d'activer le code pin (Windows Hello) et la reconnaissance d'empreinte (windows hello) dans les options de connexion. En effet, "cette option est actuellement indisponible" pour les deux.En cherchant un peu sur internet, ...
Réponses: 4

Message CODE D'ERREUR BAD SYSTEM CONFIG INFO
Bonjour,J'ai un problème sur mon PC y'a un écran bleu qui est affiché avec le code d'erreur BAD system config info j'ai appelle le commerçante ou je l'ai acheté il m'ont fais une réinitialisation de mon PC elle n'a pas fonctionné Ils m'ont parlé que l OS a planté et de registre rien compris PS : Ils ...
Réponses: 4

Message code wifi
Bonjour à tous,j'ai voulu changer le code de sécurité wifi de ma tablette samsung, et malheureusement je l ai perdu. Existe t il une solution pour le récupérer , ou une manip à faire sur la livebox ? ( livebox 2 sagem ) Merci
Réponses: 4

Message Traits rouges de partout + Code 43 CG + Crash si réinstallat
Titre complet : + Traits rouges (et bleus) de partout affichés sur l'écran + Code 43 sur la Carte graphique dans les périphériques.+ Crash si réinstallation des pilotes Nvidia en mode normal (sans échec ça marche mais dans ce cas, les options d'installation ne sont pas toutes disponibles).Bonjour, J ...
Réponses: 3


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités


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