Les bases de l’Algorithmique

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Introduction a L’algorithme
Tris.
Chapitre annexe. Récursivité
Initiation à la programmation et algorithmique cours 2
Algorithmique (suite)
Algorithmique et Programmation DEUG 2 Sciences Economiques 2004/2005
Algorithmique et Programmation
Calculs de complexité d'algorithmes
Algorithmique et évaluation
La logique algorithmique
LA LOGIQUE ALGORITHMIQUE. Algorithme Définition Ensemble dopérations Effectuées dans un ordre logique Afin dobtenir un résultat, Afin de résoudre un problème.
Exercice 1 Pour être admis en crèche, un enfant doit avoir moins de 3 ans. Les variables retenues sont les suivantes: AnnéeNaissance, Annéeactuelle.
Algorithmique Résume.
Exercices Algorithmiques
et évaluation des compétences
INTRODUCTION.
Dossier TICE Excel.
5. Les structures répétitives
Section VIII Modularité Partie II
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Section VI Structures répétitives (suite)
Les bases de l’Algorithmique
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Langage C Révision.
Initiation à la programmation et algorithmique
Algorithme Sommaire Introduction Définition et représentation
Partie 1 Etude de l'existant
En quoi consiste la PROGRAMMATION ?
Introduction à l’algorithmique
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Démarche de résolution de problèmes
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Python La structure itérative
ALGORITHMIQUE en classe de seconde
Algorithmique et Programmation
Les structure d’un programme :
Semaine #1 INF135 par Frédérick Henri.
I&G- chapitre 11-La logique Logarithmique -Mme Roulaud
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
8PRO107 Éléments de programmation
Algorithmique et structure de données
Algorithmique.
Répéter dans un programme avec une Instruction itérative
LA LOGIQUE ALGORITHMIQUE
Déclaration des données constantes Déclaration des données variables
Arbre programmatique Une notation.
Un survol du language C.
 Syntaxe du langage PHP
La programmation.
Algorithmique : Introduction
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Initiation à l’Algorithmique
Module algorithmique et programmation
Scripts et fonctions Instructions de contrôle
Algorithmique Tableaux de données
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Objets et Actions Élémentaires.
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Introduction à L’Algorithmique
Algorithmique Boucles et Itérations
Algorithmique et programmation
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
Les bases de l’Algorithmique
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

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. 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 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.

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, 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 (* commentaires *) Instruction1 Instruction2 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 (* 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ée Une 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 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 « 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) Opérations Opérateurs Exemple Addition + Prix + Nombre Soustraction - Montant - Remise Multiplication * HorsTaxe * 1,206 Division / Montant / Nombre Puissance ^ Montant ^ 2

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

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? Valeur saisie par l’utilisateur Quel est votre nom ? Arthur Combien de pain désirez-vous ? 5 Le montant à payer est de 6 euros.

Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ? Nom Arthur Nombre 5 Prix 1,2 Montant 5 * 1,20 = 6 Montant 6

Les structures alternatives et conditionnelles vérifiée Oui Non Action 2 Action 1 La structure alternative SI condition vérifiée Alors action1 Sinon action2 FIN SI suite algorithme

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 : 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

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Raison La Mie Câline Nombre 2500 Prix 0.5 CA CA > 1000 ? Remise Montant 2500 x 0,5 = 1250 Vrai 1250 x 0,1 = 125 1250 – 125 = 1125 Remise 125 Montant 1125 CA 1250

Les structures alternatives, conditionnelles, de choix vérifiée Oui Non Action 1 La structure conditionnelle SI condition vérifiée Alors action 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

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Raison La Mie Câline Nombre 1500 Prix 0.5 Remise CA CA > 1000 ? Remise Montant 1500 x 0,5 = 750 Faux 750 – 0 = 750 Remise Montant 750 CA

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 Fin si (* calcul du montant à payer et affichage du résultat *) Fin

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Raison La Mie Câline Nombre 2500 Prix 0.5 Remise CA CA < 1000 ? CA < 2000 ? Remise Montant 2500 x 0,5 = 1250 Faux vrai 1250 x 5 % = 62 1250 – 62 = 1188 Remise 62 Montant 1188 CA 1250

La variable doit être de type caractère ou entier La structure de choix Selon Variable 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

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Code F Code = « F » donc Prix  1,5 Prix 1,5

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 Faire action 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

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Compteur  1 A 20 Prix  Compteur * 0,80 8,00 7,20 10 6,40 9 5,60 8 7 4,80 6 4,00 5 3,20 4 2,40 3 1,60 2 1 0,80 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 : Écrire un algorithme qui : 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 *) Constantes Prix = 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

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Saisir Rep Rep = “O” VRAI FAUX Sortie de la boucle Traitement

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’à Condition Suite 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 : Écrire un algorithme qui : 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.

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 *) Constantes Prix = 0,60 Début (* traitement des clients *) Répéter 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 Jusqu’à Rep = « N » Afficher « Fin du programme. » Fin

Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ? Valeur saisie par l’utilisateur 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 « dans l’ordinateur » à l’exécution de l’algorithme ? Rep = “N” VRAI FAUX Sortie de la boucle Traitement Saisir Rep

Saisir Rep Traitement Saisir Rep Rep = “O” Rep = “O” Traitement VRAI FAUX Sortie de la boucle Traitement Rep = “O” FAUX VRAI Sortie de la boucle Traitement Saisir Rep

Conseil pour réussir un algorithme… Il faut être méthodique et rigoureux. En effet, chaque fois qu’on écrit une série d’instructions qu’on croit justes, il faut systématiquement se mettre mentalement à la place de la machine qui va les exécuter, armé d'un papier et d'un crayon, afin de vérifier si le résultat obtenu est bien celui que l’on voulait. Cette opération est indispensable, si l’on ne veut pas écrire à l’aveuglette.

Évitez d’employer la méthode Shadok

À vous de jouer !