cours algorithme de base
I. Quelques définitions
Programmation
« La programmation, appelée aussi codage1, est l'ensemble des activités qui permettent l'écriture
des programmes informatiques »
« La programmation informatique est l'écriture de programmes servant à créer un logiciel »
Algorithme
« Ensemble de règles opératoires dont l'application permet de résoudre un problème énoncé au
moyen d'un nombre fini d'opérations. Un algorithme peut être traduit, grâce à un langage de
programmation, en un programme exécutable par un ordinateur. »
« Un algorithme est composé d'instructions et d'opérations réalisées, dans un ordre précis, sur
des données afin de produire un résultat, et souvent résoudre un problème plus ou moins
complexe »
II. Notion d’algorithmique
1. Approche Générale
Comme nous l’avons défini plus haut dans le code, définir une suite d’instruction qui nous
permet de résoudre un problème précis s’appelle algorithme. La vie courante est une succession
d’algorithme que nous réalisation sans même le savoir.
- Lorsque vous indiquer son chemin a quelqu’un vous êtes en train d’algorithmer
- Lorsque vous faite une recette de cuisine pour un proche de manière particulière ou de
manière générale a l’intention dune personne autre que vous on dit que vous êtes en
train d’algorithmer.
- Diriger la Construire la maison
- Etc…
On est a même de se rendre compte que nous somme tous des informaticiens développeur dans
l’âme. Lol !!!
Toutefois il convient de noter ici que quelque soit la situation algorithmique dans
laquelle nous nous trouvons, l’algorithme est d’abord écrit à l’intention d’une personne autre
que nous.
- On indique son chemin a quelqu’un
- On fait une recette de cuisine pour quelqu’un
- On dirige des personnes dans la construction de la maison …
- Etc…
De cette remarque il en découle de manière évidente que pour que l’intéressé puisse mener
a bien la mission que l’algorithme est sensé résoudre, ce dernier doit être assez claire, assez
précis, sans risque d’ambiguïté et de problème d’incompréhension lié au sens.
Dans une recette de cuisine lorsque vous écrivez à titre d’exemple : « mettre du riz dans
la marmite » on est à même de vous demander
o Quelle quantité de riz ?
o Dans quelle marmite ?
o Pour faire quoi ?
Lorsque vous dire a quelqu’un : « arriver sur la route N° 16 u va voir une maison en
barrière, c’est la mienne (notre) » dès lors il a envie de vous demander
o Es ce la seule maison en barrière ?
o De quel coté de la route sera cette maison ?
o N’y a-t-il pas un signe distinctif pour reconnaitre la maison ?
On vient de citer ici les cas d’algorithme non précis, pas claire et ambigüe qu’on retrouve
éventuellement dans la vie courante. Alors dès que votre algorithme suscite des questions pour
une compréhension meilleur, alors vous avez un problème dans la résolution de celui-ci.
2. Approche Développeur : Je suis développeur
Lorsque nous revenons sur la/les définition de la programmation en
informatique, on peut dire que la programmation est la réalisation d’un logiciel
par un mécanisme habituellement appeler le logiciel. Alors si on fait un parallèle
avec la définition de l’algorithme on peut ressortir deux choses :
- La programmation a un problème à résoudre : créer un logiciel
- La programmation se fait via un procéder appeler codage
Coder c’est tout simplement mettre en langage compréhensible par l’ordinateur
un algorithme qu’on aurait précédemment écrit. Cela inclut donc qu’il y aura une
conversion à faire ; convertir du langage algorithmique vers le langage machine1.
1 C'est le langage natif d'un processeur, c'est-à-dire le seul qu'il puisse traiter. Il est composé d'instructions
et de données à traiter codées en binaire
a. Le langage algorithmique : Le Pseudo Code
Une des principales méthodes d’écriture de l’algorithme est que celui-ci doit être claire
et compréhensible par tous. Alors pour faciliter cela les informaticiens on bien voulu que tout
algorithme soit écrit et défini dans la langue courante que chacun parle. Comme le français,
l’anglais, le dialecte, etc…. Seulement que cela limitera néanmoins la compréhension de
l’algorithme par un groupe précis de personne ; Ton algorithme écrit dans ta langue vernaculaire
ne sera compris que par toi et les gens de ton village. Quand sera-t-il des gens des autre villages,
des autres pays, etc… Afin de rendre donc accessible tout algorithme écrit par n’importe qui et
n’importe ou dans le monde, il s’est don avéré évidement de formaliser2 l’écriture des
algorithmes. Ce formalisme-là, a été réuni en ce qu’on a appelé le Pseudo-Code
Le Pseudo Code est donc le langage qui permet au développeur d’écrire des algorithmes
en utilisant des conventions universelles afin de permettre la clarté dans le partage universelle.
Celui-ci est régit par un certain nombre de règles et d’usage qui feront bien évidement
l’objet de toute notre étude pour cet UV.
b. L’organigramme
« Un organigramme de programmation (parfois appelé algorigramme, logigramme ou
plus rarement ordinogramme) est une représentation graphique normalisée de l'enchaînement
des opérations et des décisions effectuées par un programme d'ordinateur. »
De manière simple, l’algorigramme ou logigramme est la représentation graphique de
l’algorithme. Il permet de mettre sous des formes dites conventionnelle, le déroulement de
l’exécution des étapes de résolution d’un problème précis.
Maintenant qu’on sait de manière générale ce que c’est un algorithme on est en droit de se
demander du :
Comment cela se passe réellement dans la pratique.
Quels sont les étapes qui nous conduiront à l’écriture ou à la résolution d’un
algorithme ??
Comment passé de l’algorithme a l’algorigramme ?
Y a-t-il des règles à respecter ?
Tout ce que nous pouvons dire maintenant est que cela fera l’objet de notre prochaine leçon.
nous avons vu dans le cours précédent que les algorithmes permettaient de
résoudre des problèmes précis selon des normes et des conventions. Afin de
de facilité la création des algorithmes par les développeurs, des étapes
formalisées leur est proposé pour ce fait. Nous allons parcourir ces étapes afin de pouvoir en
sortir le meilleur pour nous même.
I. Les Etapes de résolution d’un Algorithme
Nous allons considérer le problème suivant posé par votre petit frère du CE1 : on voudra
pouvoir calculer le périmètre d’un rectangle à chaque fois qu’on va pouvoir lire, sa longueur et
sa largeur.
1. L’étape de préanalyse
Dans cette étape il est question de pouvoir définir de manière précise le problème que
nous voulons résoudre. Cette précision doit être claire et sans ambigüité afin de ne pas louper
la résolution du problème. Un problème mal poser entraine forcement des solution erronées.
Cette étape répond à la question de : qu’es ce que je veux faire ? / Quoi ??
« Résoudre une équation » voici la définition d’un problème que votre enseignant vous donne
de résoudre. Vous êtes a même de lui demander d’éclaircir votre lanterne sur ce qu’il voudra
vous faire faire réellement.
« Calcul le périmètre » lève directement un problème : périmètre de quoi ??
Dans le cas d’espèce qui est notre cas d’étude, le problème sera défini par exemple en ces
termes « calcul du périmètre d’un rectangle » cet exemple précis nous montre une définition du
problème claire à résoudre, sans ambigüité et sans risque d’incompréhension. A moins que
l’intéresser ne sache pas ce que c’est qu’un triangle. Dans ce cas, on accusera plutôt son niveau
scolaire et non l’écriture de l’algorithme.
2. L’analyse
A ce niveau il faut se poser la question du Comment ?
Comment vais-je résoudre la question du Quoi ?
Comment vais j résoudre la question posée à la première partie ?
Il est clair que pour répondre à cette question il faut au préalable avoir des connaissances en
la matière qui porte la résolution du problème.
Par exemple :
Tu ne sauras par exemple jamais comment on calcul le périmètre d’un rectangle si tu
na jamais fait les mathématiques de ta vie.
TU ne sauras pas comment on résout une équation du second degré dans R si tu na
jamais fait la classe de seconde.
TU ne sauras n’ont plus résoudre une équation avec des nombres complexes si tu
n’as pas fait terminal scientifique.
Pour le cas d’espèce il faudra pouvoir avoir la formule du calcul du périmètre d’un
rectangle. Qui est bel et bien : 𝑃é𝑟𝑖𝑚𝑒𝑡𝑟𝑒 = (𝐿𝑜𝑛𝑔𝑒𝑢𝑟 + 𝑙𝑎𝑟𝑔𝑒𝑢𝑟) ∗ 2 Maintenant qu’on sait
comment résoudre le problème. Il convient de structurer la résolution de ce problème
De ce qui précède on peut clairement ressortir quelque élément :
La résolution est séquentielle c’est-à-dire quelle s’exécute une étape après l’autre et une
étape ne peut se déclencher tant qu’une autre na pas été terminé.
Les besoins pour la résolution du Problème sont bien définis. (Longueur, largeur,
périmètre)
Le titre est lui aussi clairement défini et inscrit tout en haut de l’analyse
L’interactivité avec l’utilisateur ou celui qui exploite l’algorithme. On lui affiche des
messages et on reçoit de lui en échange des données. On appelle cela les instructions de
lecture et d’écriture.
3. Ecrire l’algorithme
L’algorithme1 s’écrit suivant une structure précise. On aura donc le schéma suivant :
a. Le titre de l’algorithme
C’est ici qu’on définit le titre de l’algorithme. Celui-ci ne doit pas être fait en plusieurs
mot mais en un mot. Si votre titre contient plusieurs mots, on pourra les concaténés en utilisant
un tiret ou un underscore.
Exemple
Algorithme : Calcul_du_perimetre, Calcul-du-périmètre
b. La déclaration des variables
C’est à ce niveau qu’on définit l’ensemble des éléments dont on aura besoin dans notre
programme. On les appelle les variables. On peut donc définir une variable comme étant des
symboles qui associent un nom (l'identifiant) à une valeur. La valeur peut changer à n’importe
quel moment. Chaque variable est définie de manière individuelle avec sont nom et son type.
On verra en profondeur dans la leçon prochaine les types des variables.
Syntaxe de déclaration d’une variable
NomVariable : <Type de la variable>
Note
NomVariable : définit le nom que vous donnerez à votre variable. Il ne doit pas être
écrit en plusieurs mots. Si votre variable a un nom composé vous devez le concaténer
comme pour le titre de l’algorithme
Type de la variable : le type de la variable est simplement de dire de quel nature la
variable que vous déclarez sera. Cela se résume en des types qu’on rencontre
habituellement en mathématique. On aura par exemple, les réels, les entiers, les
caractères, les chaine de caractère, etc…
Exemple de déclaration de la Longueur de type Réels
Longueur : Réel ;
Le nom de la variable ici est Longueur et il accueillera les données de type Réels.
Chaque instruction se termine par un point-virgule.
Lorsque les données sont du même types on pourra faire une déclaration groupée. Comme suit.
c. Le block d’instruction
C’est dans ce block que se fait tout le traitement de l’algorithme. Il est toujours délimité
par les instructions de début et de fin de l’algorithme.
Algorithme : Calcul_du_perimetre ;
Variables
Longueur : Réel ;
Largeur : Réel ;
Périmètre : Réel ;
Algorithme : Calcul_du_perimetre ;
Variables
Longueur, Largeur, Périmètre : Réel ;
ALGORITHME : Calcul_du_perimetre ;
VARIABLES
Longueur, Largeur, Périmètre : Réel ;
DEBUT
Ecrire (« Entré la longueur : ») ;
Lire (Longueur) ;
Ecrire (« Entré la largeur : ») ;
Lire (Largeur) ;
Périmètre ← (Longueur + Largeur) * 2 ;
Ecrire (Périmètre) ;
FIN
Les Instructions d’affichage Pseudo Langage
Ce sont les instructions qui permettent d’interagir avec l’utilisateur de l’algorithme ou le
lecteur de l’algorithme. Il se matérialise par le mot clé Ecrire ou afficher. On affiche toujours un
Texte a l’écran et le texte se matérialise en pseudo langage via l’utilisation des doubles quottes.
Il est possible de concaténer 2 plusieurs chaines de caractère ou même une chaine de
caractère et un type nombre tout simplement en utilisant la virgule
Les Instructions de lectures
Permettent de récupérer la valeur d’une variable a un instant t. Dans le cas d’espèce, la
valeur lue est immédiatement stockée dans la variable appropriée. Par exemple il faudra
récupérer la valeur de la longueur et stocker dans la variable longueur.
Les Traitements
C’est l’ensemble des opérations qu’on peut mener sur les variables. On verra cela en
profondeur dans le chapitre à venir. Toutefois on peut quand même parler de l’opérateur
d’affectation équivalent à l’égalité en mathématique.
Notation du symbole d’affectation / égalité
Les autres opérateurs sont les opérateurs classiques qu’on retrouve en mathématique et
e électronique numérique.
2 Le terme concaténation (substantif féminin), du latin cum (« avec ») et catena (« chaîne, liaison »), désigne
l'action de mettre bout à bout au moins deux chaînes de caractères ou de péricopes.
Ecrire (lachaine_de_caractère) ;
Ecrire (« Entré la longueur : ») ;
Lire (nom_de_la_variable) ;
Lire (Longueur) ;
Périmètre ← (Longueur + Largeur) * 2 ;
4. Ecriture dans un langage de programmation
Puisque notre UV ne porte pas sur un langage de programmation, nous n’allons pas mettre du
temps dessus. Mais nous pouvons quand même retenir que cela se fait via les langages dit de
programmation : le C, le C++, le C#, etc…
5. Test de l’algorithme / Programme
Dans notre cas on va parler du Test de l’algorithme. On essaie lorsque on a fini d’écrire
l’algorithme de le faire tourner e la main pour voir si tout se passe bien
II. L’organigramme
1. Le graphique
De même que l’algorithme l’organigramme a des règles d’écriture et de fonctionnement
qui sont juste différente par le graphisme. Ainsi de même qu’en algorithme on retrouvera les
instructions de début et de Fin, on trouvera de même en algorigramme. De même qu’on
retrouve les instructions de traitement en algorithme, on retrouvera de même aussi en
organigramme, etc… retrouvons dans le tableau ci-contre les figures permettant de construire
un algorigramme de qualité.
Il existe différentes règles pour construire un algorigramme :
Il faut centrer l’algorigramme au centre de la feuille
Il faut que la lecture de l’algorigramme puisse se faire verticalement
Les lignes de liaisons entre les symboles ne doivent pas se couper.
Une ligne de liaison doit toujours arriver sur le haut et au centre d’un symbole.
Les commentaires sont à placer de préférence à droite et les renvois de branchement à
gauche.
Toutes les informations utiles au programme (« données ») sont mémorisées dans des
VARIABLES, c’est‐à-dire des emplacements mémoire accessibles en lecture et en écriture.
L’emplacement mémoire d’une variable est créé (alloué) lors de la définition (parfois appelée
déclaration) de la variable.
On Distingue deux types de variables. Les variables statiques et les variables dynamique
1. Les variables statiques : Les constantes
Les constantes sont ces espaces mémoire la dont le contenu ne changera pas tout au long
de l’exécution du programme. Leur valeur reste celle qui a été définit à l’entame de l’algorithme.
Elles sont habituellement déclarées après le titre de l’algorithme. L syntaxe de définition dune
constante en algorithme est la suivante :
Le type de la constante est Implicite en fonction de la valeur que tu assigneras a la
constante. On peut déclarer autant de constante qu’on veut dans notre programme. Ici on
définit comme constante le PI. Cela veut dire que pendant l’exécution on n’aura pas le droit
d’affecter une autre valeur a PI.
2. Les variables dynamiques
Ce sont les espaces mémoires allouer par votre algorithme dont le contenu est susceptible
de changer a n’importe quel moment lors de l’exécution de votre programme/ algorithme. La
syntaxe de déclaration d’une variable dynamique est la suivante.
Toutes les variables sont déclaré dans la zone appropriée.
Il est interdit d’utiliser une variable qu’on a pas au préalable déclarer.
3. Opération sur les Variables
a. L’affectation – Initialisation
Une des premières opérations qu’on fait sur une variable est d’initialiser celle-ci. Affecter
une valeur a une variable est simplement de prendre une valeur (valeur de droite) et mettre son
contenue dans la variable de gauche. Cela s’explique exactement par le système d’égalité en
mathématique.
Dans l’exemple précède, de même qu’en mathématique la valeur 12 vas se logger dans la
variable c’est-à-dire que la variable (Nom_de_la_variable) a la valeur 12, ce système est le même
en algorithmique. Il faux noter qu’on peut affecter la valeur d’une variable a une autre variable
comme suit.
On peut affecter a une variable des valeurs calculer directes et même des valeur composé
au travers des autres variables
De même quand mathématique il es judicieux d’utiliser les parenthèse pour un déroulement
d’exécution prioritaire bien définit et sans ambigüité , les parenthèse sont tout aussi importante
en algorithme / programmation pour le même but.
b. Opération Arithmétique
Les opérations arithmétiques qu’on peut effectuer sur les variables sont celle qu’on
retrouve en mathématique de base. On les répertorie dans le tableau suivant.
c. Opération Logique
L’ensemble des Opérations Logique qu’on retrouve sur les variables sont répertorié dans
le tableau suivant. Il faux noter que le résultat de ce type d’opération ne peut être que de type
booléen. C’est-à-dire vrai ou Faux ou encore en anglais True or False.




Aucun commentaire:
Enregistrer un commentaire