Cours 3 : Introduction à
l’Algorithmique
L1-GBM
1-Pourquoi l’Algorithmique
Pourquoi apprendre l’algorithmique
pour apprendre à programmer ? En
quoi a-t-on besoin d’un langage
spécial, distinct des langages de
programmation compréhensibles par
les ordinateurs ?
I-Pourquoi l’Algorithmique
Parce que l’algorithmique exprime les
instructions résolvant un problème donné
indépendamment des particularités de tel ou
tel langage. Pour prendre une image, si un
programme était une maison, l’algorithmique
serait le plan. Vous pouvez construire sans plan,
mais, vous savez qu’il vaut mieux faire d’abord le
plan et construire ensuite…
I-Pourquoi l’Algorithmique
Apprendre l’algorithmique, c’est apprendre
à manier la structure logique d’un
programme informatique. Cette dimension
est présente quelle que soit le langage de
programmation
2- Avec quelles conventions écrit-on un algorithme ?
Historiquement, plusieurs types de
notations ont représenté des algorithmes.
Ily a eu notamment une représentation
graphique, avec des carrés, des losanges,
etc. qu’on appelait des organigrammes.
En général, on peut représenter un
algorithme sous forme structurée ou sous
forme graphique.
3- Notion d'organigramme
L'organigramme est une représentation
graphique d'un algorithme.
C'est le plus ancien des représentations et il
constitue un diagramme qui montre le
cheminement des données dans un
programme dans un système d'information,
ainsi que les opérations pratiquées sur ces
données lors des différentes étapes du
traitement.
4- Représentation d'un organigramme
Les opérations dans un organigramme
sont représentées par les symboles dont
les formes sont normalisées.
Ces symboles sont reliés entre eux par
des lignes fléchées qui indiquent le
chemin.
5- Exercices d'application
Ecrivons un
organigramme qui lit deux
nombre et affiche le plus grand
6- L’organigramme
Aujourd’hui, cette représentation est
quasiment abandonnée, pour deux
raisons.
D’abord, parce que dès que l’algorithme
commence à grossir un peu, ce n’est plus
du tout pratique.
Ensuite parce que cette représentation
favorise le glissement vers un certain type
de programmation, dite non structurée
7- Pseudo-code-Algorithme
C’estpourquoi on utilise généralement
une série de conventions appelée «
pseudo-code », qui ressemble à un
langage de programmation authentique
dont on aurait évacué la plupart des
problèmes de syntaxe.
8- Définitions
Algorithme: Un algorithme est une suite
ordonnée d’instructions qui indique la
démarche à suivre pour résoudre une série de
problèmes équivalents
L’algorithmique: est la science des
algorithmes. L’algorithmique s’intéresse à l’art
de construire des algorithmes ainsi qu’à
caractériser leur validité, leur robustesse, leur
réutilisabilité, leur complexité ou leur efficacité.
8- Définitions
Validité d’un algorithme: la validité d’un
algorithme est son aptitude à réaliser
exactement la tâche pour laquelle il a été
conçu.
Robustesse d’un algorithme: la robustesse
d’un algorithme est son aptitude à se protéger
de conditions anormales d’utilisation.
Efficacité d’un algorithme: l’efficacité d’un
algorithme est son aptitude à utiliser de
manière optimale les ressources du matériel
qui l’exécute.
8- Définitions
Réutilisabilité d’un algorithme: la
réutilisabilité d’un algorithme est son aptitude
à être réutilisé pour résoudre des tâches
équivalentes à celle pour laquelle il a été
conçu.
Complexité d’un algorithme: la complexité
d’un algorithme est le nombre d’instructions
élémentaires à exécuter pour réaliser la tâche
pour laquelle il a été conçu.
9- Langage de Définition algorithme
Un LDA utilise un ensemble de mots-clés
et de structure permettant de décrire de
manière complète, claire, l’ensemble des
opérations à exécuter sur des données
pour obtenir des résultats ; on n’hésitera
donc pas à agrémenter un LDA de
nombreux commentaires. L’avantage d’un
tel langage est de pouvoir être facilement
transcrit dans un langage de
programmation.
9- Langage de Définition algorithme
Dans un Langage de Définition
Algorithmique certains mots sont
réservés pour un usage bien défini, on les
nomme les mots clés. Ce sont les mots
que le langage utilise pour son
fonctionnement.
Un mot clé ne peut pas être déclaré
comme identificateur. Ils ne peuvent être
utilisés comme variables
9- Langage de Définition algorithme
Ceux qui nous permettent de définir la structure :
Algorithme : permet de définir ou de donner le
nom à l’algorithme.
Début : marque le commencement de
l’algorithme.
Fin : marque la fin de l’algorithme
Variables : c’est une partie de l’algorithme qui
Permet de déclarer des variables ;
une variable est un objet dont le contenu peut
changer au cours de l’exécution de l’algorithme.
9- Langage de Définition algorithme
Constantes : c’est une partie de
l’algorithme qui permet de déclarer des
constantes. Une constante est un objet
dont le contenu reste invariant lors
de l’exécution d’un algorithme.
Réel, Caractères, Entiers, Chaine et
Booléen sont des mots clés qui
permettent de définir des types (nous y
reviendrons un peu plus loin dans cet
ouvrage).
9- Langage de Définition algorithme
Si, Finsi, Tantque, Fintantque, Pour,
Finpour, Répéter, Jusqu ‘à… : mots
clés permettant de définir les structures
itératives, conditionnelles…
Les commentaires sont utilisés pour
permettre une interprétation aisée de
l’algorithme. Leur utilisation est vivement
conseillée. De ce fait, tout texte placé
entre les symboles /* */ sera considéré
comme un commentaire
9- Structure l’un Algorithme
9- Structure l’un Algorithme
L’entête : Cette partie permet tout simplement de
donner un nom à notre algorithme. Ce nom n’influence
en rien le bon déroulement de l’algorithme. En
générale il faut donner des noms parlants à nos
algorithmes, ceci pour permettre au lecteur d’avoir une
idée de ce que fera l’algorithme qu’il lira.
Les déclarations : c’est une liste exhaustive des
objets, grandeurs utilisés et manipulés dans le corps de
l’algorithme. Elle est placée en début d’algorithme.
Le corps : dans cette partie de l’algorithme sont
placées les tâches (instructions opérations …) à
exécuter par notre algorithme.
10- Que signifie le mot programmer ?
Programmer signifie réaliser des
programmes informatiques. Les programmes
demandent à l'ordinateur d'effectuer des
actions.
◦ la calculatrice est un programme ;
◦ votre traitement de texte est un programme ;
◦ votre logiciel de chat est un programme ;
◦ les jeux vidéo sont des programmes.
11- Avec quel langage programmer?
L'ordinateur ne comprend que le langage
informatique. Par exemple, l'instruction Fais le
calcul 4 + 7 se traduit en langage informatique par :
0010110110010011010011110
Ce langage informatique est appelé langage binaire
Ce langage binaire est incompréhensible.
L'ordinateur ne parle pas l'anglais ou le français, et
encore moins l'arabe.
Problème: Comment parler à l'ordinateur plus
simplement qu'en binaire ?
11- Les langages de programmation
Inventer de nouveaux langages qui seraient
ensuite traduits en binaire pour l'ordinateur.
Le plus dur à faire, c'est de réaliser le
programme qui fait la traduction.
Ce programme a déjà été écrit par des
informaticiens et nous n'aurons pas à le refaire.
On va s'en servir pour écrire des phrases
comme : Fais le calcul 4+7 qui seront traduites
par le programme de traduction en quelque
chose comme : 0010110110010011010011110.
11- Pourquoi programmer en C++ ?
Il existe de nombreux langages de plus ou moins haut
niveau en informatique tels que le C, le C++, Java, Visual
Basic, Delphi, etc.
le C++ est un langage très populaire.
Il permet de vous donner de solides connaissances sur la
programmation et le fonctionnement de votre ordinateur.
Il vous permet d'être ensuite largement capables
d'apprendre un autre langage de programmation si vous le
désirez.Vous serez donc plus autonomes.
Il est utilisé pour programmer une grande partie des
logiciels que vous connaissez.
Il est très fréquent qu'il soit enseigné lors d'études
supérieures en informatique.
11- Programmer : est-ce difficile ?
faut-il être un surdoué ou un génie pour pouvoir
commencer la programmation ? NON
faut-il être un super-mathématicien pour pouvoir
commencer la programmation ? NON
Il suffit juste de savoir comment un ordinateur fonctionne.
Mais notez qu'un programmeur a aussi certaines qualités
comme :
◦ la patience : un programme ne marche jamais du premier coup, il faut
savoir persévérer !
◦ le sens de la logique : pas besoin d'être forts en maths certes, mais ça
ne vous empêchera pas d'avoir à réfléchir.
◦ le calme : non, on ne tape pas sur son ordinateur avec un marteau.
Ce n'est pas ça qui fera marcher votre programme.
11- De quoi a-t-on besoin pour programmer en
C++ ?
Les programmeurs ont besoin de trois
outils : un éditeur de texte, un
compilateur et un débogueur.
Il est possible d'installer ces outils
séparément, mais il est courant
aujourd'hui d'avoir un package trois-en-un
que l'on appelle IDE, l'environnement de
développement.
Code::Blocks, Visual C++ et Xcode
comptent parmi les IDE les plus célèbres.