Algorithmique A. LAMNII Pourquoi un cours d’algorithme ? ? Problématique A LAMN
Algorithmique A. LAMNII Pourquoi un cours d’algorithme ? ? Problématique A LAMNII 2 Pourquoi un cours d’algorithme ? Pourquoi programmer ? Tout ce qui est classique a déjà été programmé !! ? Parce que l’algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. Pour prendre une image, sur un programme était une narration, l’algorithmique serait le schéma (plan) la formulation et Problématique A LAMNII 3 l’algorithmique serait le schéma (plan) la formulation et l’orthographe. Or, vous savez qu’il vaut mieux faire d’abord le plan et rédiger ensuite l’identique … Chaque jour : naissance de nouveaux problèmes Parce qu’il n’existe pas de logiciel qui permet de faire ce qu’on veut. Exemples : La répartition de l'héritage musulman Calcul de l’effectif moyen annuel d’une entreprise Problématique A LAMNII 4 Calcul de l’effectif moyen annuel d’une entreprise Automatisation de tâches répétitives Segmentation et étiquetage de corpus écrits, calculs, Ecriture de fichiers sur un continuum, Création de stimuli sur un continuum, Affichage de plusieurs résultats dans le même format … L’informatique étant la science de traitement automatique de l’information a besoin d’une machine (ordinateur) pour faire ce traitement. Introduction L’intérêt de la machine est sa capacité de traiter rapidement et sans erreurs un grand nombre de données. Mais elle a aussi besoin qu’on lui indique "en détail" comment réaliser une tache. A LAMNII 5 besoin qu’on lui indique "en détail" comment réaliser une tache. On doit alors décomposer les opérations nécessaires à la réalisation d’un problème donné en un nombre fini d’étapes élémentaires qui peuvent être traités individuellement. Trier des objets, résoudre une équation, multiplier deux nombres, Calculer une facture, chercher le plus court chemin, mettre du café : c’est mettre en place un algorithme Qu’est ce qu’un algorithme ? Un algorithme est une suite finie d’instructions qu’on applique dans ordre bien déterminé à un nombre fini de données pour arriver à un résultat. L’algorithme est un moyen pour le programmeur de présenter son approche d’un problème donné (produit de deux nombres par exemple) à d’autres personnes. En effet, un algorithme est A LAMNII 6 par exemple) à d’autres personnes. En effet, un algorithme est l’énoncé dans un langage bien défini d’une suite d’opérations permettant de répondre au problème. Un algorithme permet de formuler un problème en un langage semi-naturel plutôt que d’utiliser une syntaxe rigide et cryptique telle que celle des langages de programmation traditionnels (C, C++, Java, etc. ). Algorithme : Exemple Voici un algorithme indiquant à l'écran si un nombre entré via le clavier de l'ordinateur est positif ou négatif : ALGORITHME PositifOuNégatif VARIAIBLES N : ENTIER DÉBUT AFFICHER("Entrez un nombre") A LAMNII 7 AFFICHER("Entrez un nombre") SAISIR (N) SI (N > 0) ALORS AFFICHER ("Nombre positif") SINON AFFICHER ("Nombre nombre") FINSI FIN Comment écrire un algorithme Pour écrire un algorithme on doit suivre les étapes suivantes : 1. Comprendre le problème 2. Identifier les données (entrées) 3. Identifier les résultats souhaités (sorties) A LAMNII 8 3. Identifier les résultats souhaités (sorties) 4. Déterminer les transformations à faire sur ces données pour obtenir les résultats (traitement/ développement). Un algorithme doit donc être : Lisible : l’algorithme doit être compréhensible même par un non informaticien. De haut niveau : l’algorithme doit pouvoir être traduit en n’importe quel langage de programmation. Précis : chaque élément de l’algorithme ne doit pas porter à Qu'est ce qu'un bon algorithme ? A LAMNII 9 Précis : chaque élément de l’algorithme ne doit pas porter à confusion. Concis : un algorithme ne doit pas dépasser une page. Si c’est le cas, il faut décomposer le problème en plusieurs sous- problèmes Structuré : un algorithme doit être composé de différentes parties facilement identifiables. Comment écrire un algorithme Exemple 1 : Calcul de la moyenne suivante : moy=(coef1*note1+ coef2*note2+…+ coefN*noteN)/(coef1+coefN+…+coefN) A LAMNII 10 Les entrées sont : les notes et les coefficients Les sorties sont : la moyenne Les traitements : Un algorithme qui parait évident est de calculer les produits 1 A LAMNII 11 Un algorithme qui parait évident est de calculer les produits noteI * coefficientI (I de 1 à N) puis les additionner ensuite diviser le résultat sur la somme des coefficients . 2 3 4 Exemple 2 : Trier une suite de nombres entiers dans l'ordre décroissant. Les entrées sont : N nombres entiers (a1, a2, ..., aN) Les sorties sont : Suite de nombres triés (ordre décroissant) A LAMNII 12 Les sorties sont : Suite de nombres triés (ordre décroissant) Les traitements : Permutations Les instructions de base Dans la vie de tous les jours vous utilisez des algorithmes sans le savoir par exemples : Fiches de cuisine Gâteau recette Laine Pull modèle A LAMNII 13 modèle Equation Solution instructions Pour représenter un algorithme, on peut recourir à diverses méthodes : - Organigramme de programmation - Langage structuré (pseudo code) Un premier algorithme A LAMNII 14 Structure générale d’un algorithme A LAMNII 15 Règles L’en-tête de l’algorithme : nom significatif Délimiteur de début (Début) : marque le début de l’algorithme Délimiteur de fin (Fin) : marque la fin de l’algorithme Déclaration de constantes, Déclaration de types, Déclaration de variables, Déclaration de prototypes de fonctions et de procédures A LAMNII 16 Déclaration de prototypes de fonctions et de procédures Corps de l’algorithme : les différentes instructions : sont des actions élémentaires ou appels aux sous algorithmes, fonctions et procédures Commentaire : explique le rôle d’un algorithme ou de ses instructions Mots réservés Afficher Saisir Début DébutFonction Variable DébutProcédure Faire Fin FinFonction Tableau FinPour FinProcédure FinSi FinTantQue Incrément Pour Retourner Selon Cas CasSinon FinSelon Pointeur Si Sinon TantQue Lire Ecrire Répéter Structure Entier Réel Caractère Booléen Null Vide Fonction Procédure … A LAMNII 17 On y ajoutera des fonctions utiles, par exemple : Alea(n), qui fournit un entier au hasard entre 0 et n −1, plus toutes les fonctions mathématiques usuelles : mod, div, abs(x), sin(x), … Instructions élémentaires Un programme est constitué d’une séquence d’instructions. Une instruction est une action (ordre) que l’ordinateur est capable d’exécuter. Dans notre pseudo-code, nous n’aurons que la liste minimale d’instructions, nécessaire et suffisante pour les problèmes que nous aurons à écrire. A LAMNII 18 problèmes que nous aurons à écrire. Exemples instructions : affectation, lecture, écriture, retourner une valeur, incrémenter ou décrémenter un valeur, … Déclarer une variable Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs : frappées au clavier ou des résultats obtenus par le programme. Ces valeurs peuvent être des nombres, du texte, etc. VARIABLE Nom1, Nom2,..,nomN : TYPE A LAMNII 19 VARIABLE Nom1, Nom2,..,nomN : TYPE Instruction permettant de réserver de l’espace mémoire pour stocker des données (dépend du type de ces données : ENTIERS, RÉELS, CARACTÈRES, etc.) Exemples : VARIABLE val, unNombre : ENTIER VARIABLE nom, prénom : TABLEAU DE CARACTÈRES Déclarer une constante CONSTANTE identificateur : TYPE ←(expression ou valeur) Instruction permettant de réserver de l’espace mémoire pour stocker des données dont la valeur est fixée pour tout l’algorithme. Exemples: A LAMNII 20 Exemples: CONSTANTE MAX : ENTIER ←100 CONSTANTE DOUBLEMAX : ENTIER ←MAX × 2 CONSTANTE pi : REEL ←3.14 Saisir une donnée SAISIR (liste de noms de variables) ( LIRE) Instruction permettant de placer en mémoire les informations fournies par l'utilisateur. Exemples: A LAMNII 21 SAISIR(unNombre) SAISIR(nom, prénom) SAISIR(val) Afficher une donnée, un résultat AFFICHER(‘’liste de noms de variables … message ’’, var) Instruction permettant de visualiser les informations placées en mémoire. Exemples: A LAMNII 22 AFFICHER(unNombre, "est différent de 0") //ÉCRIRE AFFICHER("La somme de", unNombre, "et", val , "est", unNombre+ val) Affecter une valeur à une variable identificateur ←<expression> ou <constante> ou <identificateur> ←: Instruction permettant d’attribuer à la variable identifiée par l'élément placé à gauche du symbole ←la valeur de l'élément placé à droite de ce symbole. A LAMNII 23 valeur de l'élément placé à droite de ce symbole. Exemple: nom ←"Venus " val ←50 val ←val ×2 // commentaire Exemple ALGORITHME Test VARIABLE a, b, c, d: RÉEL //déclarations DÉBUT a2 //affectation b3 c-3.4 AFFICHER(a, b, c) //affichage A LAMNII 24 AFFICHER(a, b, c) //affichage aa - b bb + 2*c c4 AFFICHER(a, b, c) //affichage FIN Saisies et affichages : exemple ALGORITHME Calcul_TTC //Saisit un prix HT et affiche le prix TTC correspondant CONSTANTE TVA : RÉEL ←20.6 CONSTANTE Titre : CHAÎNE ←"Résultat" VARIABLE prixHT, prixTTC: RÉEL //déclarations DÉBUT A LAMNII 25 AFFICHER("Donnez-moi le prix hors taxe :") SAISIR(prixHT) prixTTC ←prixHT* (1+TVA/100) //calcul du prix TTC AFFICHER(Titre) uploads/Finance/ algorithmique-a-lamnii.pdf
Documents similaires
-
8
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 05, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 6.4358MB