Les bases de l’Algorithmique
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.
Langage de programmation (code) Exécution par l’ordinateur Enoncé d’un problème Analyse, compréhension Pseudo code Résolution Algorithme Langage de programmation (code) Codification 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 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 *commentaires* Instruction1 Instruction2 Algo : Prix_du_pain Variables Nom : chaîne de caractères Nb : Entier Prx, Mtt, Rem : Réel Constantes Txrem=0,1 Début *commentaires* Instruction1 Instruction2 Fin
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/ Le terme de droite (15) est affecté au terme de gauche (variable A) 2/ Le terme de droite (valeur de la variable B + 3) est affecté au terme de gauche (variable A) 3/ 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 : Répéter action 1 action 2 Jusqu’à Condition Teste si la condition est vérifiée . Si ce n’est pas le cas il y a exécution des actions. 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 bases de l'algorithmique 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