Algorithmique

publicité
Les bases de
l’Algorithmique
Introduction
• Qu’est-ce qu’un algorithme ?
Un algorithme est une suite logique d’instructions permettant de résoudre
un problème (ou de répondre à un besoin).
• Qu’est ce que veut dire « écrire un algorithme »
- Analyser et comprendre le problème : étude des données fournies et des
résultats attendus.
- Résoudre le problème :
C’est trouver les structures de données adaptées ainsi que l’enchaînement
des actions à réaliser pour passer des données aux résultats.
• Comment exécuter un algorithme sur un ordinateur ?
Il faut traduire cet algorithme à l’aide d’un langage de programmation connu
par l’ordinateur.
Enoncé d’un problème
Analyse, compréhension
Résolution
Pseudo code
Algorithme
Codification
Langage de
programmation
(code)
Programme
Interprétation
Exécution par l’ordinateur
Langage machine
Règles à respecter pour l'écriture d'un
algorithme
• Il est défini sans ambiguïté
• Il se termine après un nombre fini
d'opérations
• Il manipule des objets définis de manière
très précise.
Définition 2
Un algorithme est une suite d'actions ordonnées en séquence qui portent
sur les objets d'un univers fini.
Règles de mise en forme d’un algorithme
Nom de l’algorithme
Début
*commentaires*
Instruction 1
*commentaires*
Instruction 2
Fin
Les objets utilisés dans un algorithme
Les différents objets
• Les variables
Une variable est un objet contenant une valeur appelée à être modifiée au
cours de l'algorithme.
• Les constantes
Une constante est un objet dont la valeur ne change pas au cours de
l'algorithme.
Définition des objets
Un objet est définis par :
• Un identificateur : suite quelconque de caractères.
• Un type : Booléen, numérique (entier ou réel), caractère ou chaîne
de caractères.
• Une valeur : c'est le contenu de l'objet.
Règles de mise en forme d’un algorithme
Nom de l’algorithme
Déclaration des variables et constantes
Début
*commentaires*
Instructions1
Instructions 2
Fin
• Exemple
:
Algo Prix_du_pain
Variables
Nom
Nb
Prx, Mtt, Rem
Constantes
Txrem=0,1
Début
*commentaires*
Instruction1
Instruction2
Fin
: chaîne de caractères
: Entier
: Réel
Instructions élémentaires
• Affectation
L'opération consiste à affecter une valeur à une variable. Elle est
représentée par une flèche orientée à gauche
Exemple :
1/
2/
3/
1/
2/
3/

A  15
A  B+3
A  A+5
Le terme de droite (15) est affecté au terme de gauche (variable A)
Le terme de droite (valeur de la variable B + 3) est affecté au terme de gauche (variable A)
Le terme de droite (valeur de A (avant instruction) + 1) est affecté au terme de gauche (variable A)
Dans ce dernier cas la nouvelle valeur de A remplace l'ancienne.
• Instruction d'entrée
Une instruction d'entrée permet de récupérer une valeur sur un périphérique d'entrée.
Notation :
Saisir nom variable
Exemple précédent :
Saisir Nom
(saisir sur le clavier des caractères qui représenteront la valeur de la variable nom)
• Instruction de sortie
Permet d'afficher à l'écran du "texte", le contenu d'un objet (variable ou
constante) voir le résultat d'une expression.
Notation :
Afficher nom variable ou Afficher « texte »
Exemple :
Afficher « Saisir un nom », Nom
• Expressions
Des opérations sur les objets - variables, constantes ou encore littéraux
(valeurs numériques ou alphanumériques) - peuvent être réalisées à l'aide
d'opérateurs arithmétiques ou logiques pour former des expressions.
Les principaux opérateurs arithmétiques (à partir des variables
déclarées ci-dessus)
Opérations
Opérateurs
Exemple
Addition
+
Prx + Nb
Soustraction
-
Mtt - Rem
Multiplication
*
Mtt * 1,206
Division
/
Map / Nb
Puissance
^
(1+ i)^2
• Exemple
Algo : prix_du_pain
Variables
Nb
: Entier
Prx, Mtt
: Réel
Début
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt
Prx * Nb
Afficher "Montant :", Mtt
Fin

Les structures alternatives et conditionnelles
• La structure alternative
Notation :
SI condition
Alors action1
Sinon action2
FIN SI
Remarque : L'expression de la condition est souvent de forme logique dont
voici les opérateurs : < > = >= <= <> ET OU NON
Les opérateurs logiques
Comparaison
Opérateurs
=
Égal à
<
Inférieur à
>
Supérieur à
<=
Inférieur ou égal à
>=
Supérieur ou égal à
<>
Différent de
ET
Et (l’un et l’autre)
OU
Ou (l’un ou l’autre)
NON
Non
Exemple :
Algo : prix_du_pain
Variables
Nom
: chaîne de caractères
Nb
: Entier
Prx, Mtt, Rem
: Réel
Constantes
Tx1 = 0,1
Tx2 = 0,05
Début
*calcul d'une remise client*
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt ← Prx * Nb
Si Mtt > 2000
Alors Rem ← Mtt * Tx1
Sinon Rem ← Mtt * Tx2
Fin si
Afficher "Montant :", Mtt
Fin
• La structure conditionnelle
Notation :
SI condition
Alors action
FIN SI
Exemple :
Algo : prix_du_pain
Variables
Nom
: chaîne de caractères
Nb
: Entier
Prx, Mtt, Rem
: Réel
Constantes
Tx1 = 0,1
Début
*calcul d'une remise client*
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt ← Prx * Nb
Si Mtt > 1000
Alors Rem ← Mtt * Tx1
Fin si
Afficher "Montant de la remise :", Rem
Fin
• La structure de choix
Notation
Selon expression Faire
Valeur 1 : action1
Valeur 2 : action2
…
Valeur n : action n
Sinon : action par défaut
Fin selon
Les structures itératives
• La structure Tant que… Fin Tant que
Permet la répétition d'une (ou plusieurs) action(s) tant qu'une condition est
satisfaite.
Notation :
Tant que condition Faire
action 1
action 2
Fin Tant Que
Teste si la condition est
vérifiée . Si c'est le cas il y a
exécution des actions.
Dans le cas contraire
l'algorithme se poursuit après
la boucle (structure).
Exemple :
Algo : prix_du_pain
Variables
-------------------Rep : chaîne de caractères
Constantes
------------------Début
Afficher "voulez-vous calculer une facture ?(oui/non)"
Saisir Rep
Tant que Rep= "oui" Faire
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt ← Prx * Nb
Si Mtt > 2000
Alors Rem ← Mtt * Tx1
Sinon Rem ← Mtt * Tx2
Fin si
Mtt ← Mtt – Rem
Afficher « Voulez-vous une autre facture ? (oui/non) "
Saisir Rep
Fin Tant que
Fin
• La structure Répéter Jusqu’à
Permet la répétition d'une (ou plusieurs) action(s) jusqu’à la satisfaction
d’une condition.
Notation :
Teste si la condition est
vérifiée . Si ce n’est pas le
cas il y a exécution des
actions.
Répéter
action 1
action 2
Jusqu’à Condition
Quand la condition est
vérifiée l'algorithme se
poursuit après la boucle
(structure).
Exemple :
Algo : prix_du_pain
Variables
-------------------Rep : chaîne de caractères
Constantes
------------------Début
(* remarque : une facture sera obligatoirement éditée *)
Répéter
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt ← Prx * Nb
Si Mtt > 2000
Alors Rem ← Mtt * Tx1
Sinon Rem ← Mtt * Tx2
Fin si
Mtt ← Mtt – Rem
Afficher « Voulez-vous une autre facture ? (oui/non) "
Saisir Rep
Jusqu’à Rep = « non »
Fin
La structure répétitive
• La structure Pour … allant de … à … faire Fin Pour
Permet de répéter un nombre déterminé de fois une (ou plusieurs) action(s).
Notation :
Pour compteur allant de 1 à n Faire
action 1
action 2
Finpour
Permet de compter le nombre
de répétition de l’action.
Lorsque le nombre voulu de
répétition est atteint,
l'algorithme se poursuit après
la boucle (structure).
Exemple :
Algo : prix_du_pain
Variables
-------------------Compteur : entier
Nbfact : entier
Constantes
------------------Début
Afficher « Combien de factures voulez-vous ? »
Saisir Nbfact
Pour Compteur allant de 1 à Nbfact faire
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt ← Prx * Nb
Si Mtt > 2000
Alors Rem ← Mtt * Tx1
Sinon Rem ← Mtt * Tx2
Fin si
Mtt ← Mtt – Rem
Finpour
Fin
Les variables cumulatives
Ce sont des variables qui permettent de cumuler des valeurs calculées dans la boucle ou encore
pour dénombrer le nombre de passage.
Exemple :
……………..
Début
Afficher "voulez-vous calculer une facture ?(oui/non)"
Saisir Rep
Nb←0
Mtttot←0
Tant que Rep= "oui" Faire
Afficher " Prix ?"
Saisir Prx
Afficher "Nombre ?"
Saisir Nb
Mtt ← Prx * Nb
Nb ← Nb+1
Mtttot ← Mtttot + Mtt
Afficher "Autre facture ? (oui/non) "
Saisir Rep
Fin Tant que
Afficher « montant total des »,Nb, « factures : » ,Mtttot
Fin
Téléchargement