660 likes | 832 Views
Les bases de l’Algorithmique. Qu'est-ce qu'un algorithme ?. Le mot « algorithme » vient du nom du grand mathématicien persan Al Khwarizmi (vers l'an 820), qui introduisit en Occident la numération décimale (rapportée d'Inde) et enseigna les règles élémentaires des calculs s'y rapportant.
E N D
Qu'est-ce qu'un algorithme ? Le mot « algorithme » vient du nom du grand mathématicien persan Al Khwarizmi (vers l'an 820), qui introduisit en Occident la numération décimale (rapportée d'Inde) et enseigna les règles élémentaires des calculs s'y rapportant. La notion d'algorithme est donc historiquement liée aux manipulations numériques, mais elle s'est progressivement développée pour porter sur des objets de plus en plus complexes, des textes, des images, des formules logiques, des objets physiques, etc.
Qu’est-ce que « l’algomachin » ? L’algorithmique est donc un terme d’origine arabe, comme algèbre, amiral ou zénith. Ce n’est pas une excuse pour massacrer son orthographe, ou sa prononciation. Ainsi, l’algo n’est pas « rythmique », à la différence du bon rock’n roll. L’algo n’est pas non plus « l’agglo ». Alors, ne confondez pas l’algorithmique avec l’agglo rythmique, qui consiste à poser des parpaings en cadence. Avez-vous déjà ouvert un livre de recettes de cuisine ? Avez vous déjà déchiffré un mode d’emploi traduit directement du coréen pour faire fonctionner un magnétoscope ou un répondeur téléphonique réticent ? Si oui, sans le savoir, vous avez déjà exécuté des algorithmes.
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 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.
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 variablesUne variable est un objet contenant une valeur appelée à être modifiée au cours de l'algorithme. • Les constantesUne constante est un objet dont la valeur ne change pas au cours de l'algorithme. • Définition des objetsUn 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, tableau... • 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 : Écrire un algorithme qui : • Demandera à l’utilisateur son nom et le nombre de pains qu’il désire acheter ; • Calculera le montant à payer ; • Et affichera le résultat.
Exemple AlgorithmePrix_du_pain Variables Nom : Chaîne de caractères (* nom de la personne *) Nombre : Entier (* nombre de pains demandés *) Montant : Réel (* montant à payer *) Constantes Prix = 1,20 (* prix d’un pain *) 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 : NOMBRE 15 SOMME 0 NOMBRE2 NOMBRE3 + NOMBRE4 COMPTEUR COMPTEUR + 1 SOMME SOMME + NOMBRE
Instruction d'entréeUne instruction d'entrée permet de récupérer une valeur sur un périphérique d'entrée (valeur saisie au clavier par exemple). Notation:Saisir nom variable Exemple précédent :Saisir Nom Saisir Nombre
Instruction de sortiePermet 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« Le montant à payer est : » ; Montant
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)
Exemple : Algorithme Prix_du_pain Variables Nom : Chaîne de caractères (* nom de la personne *) Nombre : Entier (* nombre de pains demandés *) Montant : Réel (* montant à payer *) Constantes Prix = 1,20 (* prix d’un pain *) Début Afficher « Quel est votre nom ? » Saisir Nom Afficher « Combien de pain désirez-vous ? » Saisir Nombre Montant Prix * Nombre Afficher « Le montant à payer est de » ; Montant ; « euros. » Fin
Quel est votre nom ? Arthur Combien de pain désirez-vous ? 5 Le montant à payer est de 6 euros. Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? Valeur saisie par l’utilisateur
6 Arthur 5 1,2 Nom Montant Nombre Prix Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ?
Oui Condition vérifiée Non Action 2 Action 1 Les structures alternatives et conditionnelles La structure alternative SIcondition vérifiée Alorsaction1Sinonaction2FIN SI suite algorithme
Exemple : • Une centrale de cuisson (Exemple : La mie Câline) commande des baguettes surgelées à un fabricant. Celui-ci accorde des remises en fonction du chiffre d’affaires réalisé. Le taux de remise est de 5 % pour un CA de moins de 1000 euros et de 10 % au-delà de 1000 euros de CA. Écrire un algorithme qui : • Demandera à l’utilisateur sa raison sociale et le nombre de baguettes qu’il désire commander ; • Calculera le chiffre d’affaires réalisé ; • Calculera le montant de la remise ; • Et affichera les résultats.
Algorithme prix_du_pain Variables Raison : Chaîne de caractères (* raison sociale de l’ent. *) Nombre : Entier (*nombre de baguettes commandées *) CA : Réel (* chiffre d’affaires réalisé *) Remise : Réel (* montant de la remise *) Montant : Réel (* montant à payer *) Constantes Prix = 0,5 (* prix de la baguette *) Début (* saisie des informations concernant la commande *) Afficher « Quelle est la raison sociale de l’entreprise ? » Saisir Raison Afficher « Combien de baguettes désirez vous commander ? » Saisir Nombre (* calcul du chiffre d’affaires et de la remise accordée *) CA Prix * Nombre Si CA < 1000 Alors Remise CA * 0,05 Sinon Remise CA * 0,1 Fin si (* calcul du montant à payer et affichage du résultat *) Montant CA – Remise Afficher « Le montant à payer est de »,Montant, « euros. » Fin
Valeur saisie par l’utilisateur Quel est la raison sociale de l’entreprise ? La Mie Câline Combien de baguettes désirez-vous commander ? 2500 Le montant à payer est de 1125 euros. Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?
125 1125 1250 La Mie Câline 2500 0.5 Raison Remise Montant CA Nombre Prix Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ?
Oui Condition vérifiée Non Action 1 Les structures alternatives, conditionnelles, de choix La structure conditionnelle SIcondition vérifiée Alorsaction FIN SI suite algorithme
Exemple : • Une centrale de cuisson (Exemple : La mie Câline) commande des baguettes surgelées à un fabricant. Celui-ci accorde des remises en fonction du chiffre d’affaires réalisé. Le taux de remise est de 10 % uniquement au-delà de 1000 euros de CA. Écrire un algorithme qui : • Demandera à l’utilisateur sa raison sociale et le nombre de baguettes qu’il désire commander ; • Calculera le chiffre d’affaires réalisé ; • Calculera le montant de la remise ; • Et affichera les résultats.
Algorithme prix_du_pain Variables Raison : Chaîne de caractères (* raison sociale de l’ent. *) Nombre : Entier (*nombre de baguettes commandées *) CA : Réel (* chiffre d’affaires réalisé *) Remise : Réel (* montant de la remise *) Montant : Réel (* montant à payer *) Constantes Prix = 0,5 (* prix de la baguette *) Début (* saisie des informations concernant la commande *) Afficher « Quelle est la raison sociale de l’entreprise ? » Saisir Raison Afficher « Combien de baguettes désirez vous commander ? » Saisir Nombre (* calcul du chiffre d’affaires et de la remise accordée *) CA Prix * Nombre Remise 0 (* initialisation de la remise à zéro *) Si CA > 1000 Alors Remise CA * 0,1 Fin si (* calcul du montant à payer et affichage du résultat *) Montant CA – Remise Afficher « Le montant à payer est de »,Montant, « euros. » Fin
Valeur saisie par l’utilisateur Quel est la raison sociale de l’entreprise ? La Mie Câline Combien de baguettes désirez-vous commander ? 1500 Le montant à payer est de 750 euros. Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?
0 750 750 La Mie Câline 1500 0.5 0 Raison Remise Montant CA Nombre Prix Remise Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ?
Exemple : • Une centrale de cuisson (Exemple : La mie Câline) commande des baguettes surgelées à un fabricant. Celui-ci accorde des remises en fonction du chiffre d’affaires réalisé. Le taux de remise est de 5 % au-delà de 1000 euros de CA, 7 % au-delà de 2000 € et de 10 % au-delà de 3000 €. Écrire un algorithme qui : • Demandera à l’utilisateur sa raison sociale et le nombre de baguettes qu’il désire commander ; • Calculera le chiffre d’affaires réalisé ; • Calculera le montant de la remise ; • Et affichera les résultats.
Algorithme prix_du_pain Variables … Constantes … Début (* saisie des informations concernant la commande *) … (* calcul du chiffre d’affaires et de la remise accordée *) CA Prix * Nombre Remise 0 (* initialisation de la remise à zéro *) Si CA < 1000 Alors Remise 0 Sinon Si CA < 2000 Alors Remise CA * 0,05 Sinon Si CA < 3000 Alors Remise CA * 0,07 Sinon Remise CA * 0,1 Finsi Finsi Fin si (* calcul du montant à payer et affichage du résultat *) … Fin
Valeur saisie par l’utilisateur Quel est la raison sociale de l’entreprise ? La Mie Câline Combien de baguettes désirez-vous commander ? 2500 Le montant à payer est de 1188 euros. Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?
62 1188 1250 La Mie Câline 2500 0.5 0 Raison Remise Montant CA Nombre Prix Remise Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ?
La structure de choix SelonVariable Faire Valeur 1 : action1 Valeur 2 : action2 … Valeur n : action n Sinon : action par défaut Fin selon La variable doit être de type caractère ou entier
Exemple : Un distributeur automatique distribue des confiseries. L’utilisateur tape le code de la confiserie désirée, en fonction de ce code le distributeur affiche le prix du produit et le délivre. • Les produits A, B et C coûtent 1 €, • Le produit D coûte 1,20 €, • Le produit E, F coûte 1,50 €, • Les produits G,H, I coûtent 2 €, • Si un autre code est saisi, le prix sera de 0 et un message d’erreur sera affiché. • Écrire un algorithme qui : • Demandera à l’utilisateur le code de la confiserie désirée ; • Déterminera le prix de celle-ci en fonction du code saisi ; • Et affichera le prix de la confiserie.
Algorithme distributeur Variables Code : Caractère (* code du produit désiré *) Prix : Réel (* prix du produit désiré *) Début (* saisie du code du produit désiré *) Afficher « Saisir votre code : » Saisir Code (* détermination du prix en fonction du code *) SELON Code FAIRE A, B : Prix 1 D : Prix 1,2 E, F : Prix 1,5 G, H, I : Prix 2 Sinon : Prix 0 FINSELON (* Affichage du prix si aucune erreur de saisie n’a été commise *) SI prix = 0 ALORS Afficher « Le code n’existe pas. » SINON Afficher « Le prix du produit désiré est de », Prix, « euros. » FINSI Fin
Valeur saisie par l’utilisateur Saisir votre code : F Le prix du produit désiré est de 1,5 euros. Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?
F 1,5 Code Prix Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ?
La structure répétitive La structure Pour … Fin Pour Permet de répéter un nombre déterminé de fois une (ou plusieurs) action(s). Pour compteur allant de 1 à n Faireaction 1 action 2 … action n Finpour Permet de compter le nombre de répétition de l’action. La variable compteur sera de type entier ou caractère. Lorsque le nombre voulu de répétition est atteint, l'algorithme se poursuit après la boucle (structure).
Exemple : Un boulanger désire préparer son tarif pour la vente de ses croissants. Sur l’ordinateur il désire automatiser le calcul du prix de ses croissants. Il suppose que ses clients achèteront entre 1 et 10 croissants. Écrire un algorithme qui : Automatisera le calcul du prix de 1, puis 2, puis 3, … puis 10 croissants sachant que le prix unitaire est de 0,80 euros.
Algorithme Prix_des_croissants Variables Compteur : entier (* permet de compter de 1 à 10 *) Montant : réel (* montant à payer lors de l’achat de croissants *) Début Afficher « Tarif des croissants : » POUR Compteur allant de 1 à 10 faire Montant Compteur * 0,80 SI Compteur = 1 ALORS Afficher Compteur , « croissant coûte », Montant, « € » SINON Afficher Compteur, « croissants coûtent »,Montant, « € » FINSI FINPOUR Fin
Tarif des croissants : 1 croissant coûte 0,80 € 2 croissants coûtent 1,60 € 3 croissants coûtent 2,40 € 4 croissants coûtent 3,20 € 5 croissants coûtent 4,00 € 6 croissants coûtent 4,80 € 7 croissants coûtent 5,60 € 8 croissants coûtent 6,40 € 9 croissants coûtent 7,20 € 10 croissants coûtent 8,00 € Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?
Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ? 8,00 7,20 10 6,40 9 5,60 8 4,80 7 6 4,00 5 3,20 4 2,40 3 1,60 2 0,80 1 Compteur Montant
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 … action n 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 : Un boulanger (vendant exclusivement des baguettes) désire gérer toutes ses ventes sur ordinateur. Chacun de ses clients achète 1 ou plusieurs baguettes. Le boulanger peut ne pas avoir de clients dans la journée… L’ordinateur calcule pour chaque client le montant à payer. • Écrire un algorithme qui : • demandera si un nouveau client est présent, • puis, automatisera le calcul du montant à payer par client.
Algorithme gestion_boulangerie Variables Rep : Caractère (* réponse à la question présence d’un client *) Bag : Entier (* nombre de baguettes achetées par le client *) Montant : Réel (* montant à payer par un client *) ConstantesPrix = 0,60 Début (* traitement des clients *) Afficher « Y a-t-il un client ? (O/N) » Saisir Rep Tant que Rep = « O » Faire Afficher « Combien de baguettes désirez-vous ? » Saisir Bag Montant Bag * Prix Afficher « Cela vous fera », Montant, « euros » Afficher « Y a-t-il un autre client ? (O/N) » Saisir Rep Fin Tant que Afficher « Fin du programme. » Fin
Valeur saisie par l’utilisateur Y a-t-il un client (O/N) ? O Combien de baguettes désirez vous ? 3 Cela vous fera 1,80 euros. Y a-t-il un autre client (O/N) ? N Fin du programme. Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?
Saisir Rep FAUX Rep = “O” VRAI Traitement Saisir Rep Sortie de la boucle Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ?
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 … action n Jusqu’à ConditionSuite du traitement 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 : Un boulanger (vendant exclusivement des baguettes) désire gérer toutes ses ventes sur ordinateur. Chacun de ses clients achète 1 ou plusieurs baguettes. Le boulanger aura obligatoirement un client dans la journée. L’ordinateur calcule pour chaque client le montant à payer. • Écrire un algorithme qui : • demandera si un nouveau client est présent, • puis, automatisera le calcul du montant à payer par client.