Les bases de lAlgorithmique Introduction Questce quun algorithme
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* Instructions 1 Instructions 2 Fin
• Exemple : Algo Prix_du_pain Variables Nom Nb Prx, Mtt, Rem Constantes Txrem=0, 1 Début *commentaires* Instruction 1 Instruction 2 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/ 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 action 1 Sinon action 2 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 Tx 1 = 0, 1 Tx 2 = 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 * Tx 1 Sinon Rem ← Mtt * Tx 2 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 Tx 1 = 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 * Tx 1 Fin si Afficher "Montant de la remise : ", Rem Fin
• La structure de choix Notation Selon expression Faire Valeur 1 : action 1 Valeur 2 : action 2 … 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 * Tx 1 Sinon Rem ← Mtt * Tx 2 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 * Tx 1 Sinon Rem ← Mtt * Tx 2 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 * Tx 1 Sinon Rem ← Mtt * Tx 2 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
- Slides: 25