ALGORITHMIQUES.

Slides:



Advertisements
Présentations similaires
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Advertisements

Introduction a L’algorithme
Chapitre annexe. Récursivité
1/29 Le modèle de l ’atome Dernière mise à jour: Le 24 Septembre 2008.
Algorithmique (suite)
Portée des variables VBA & Excel
Fonctions & procédures
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.
Algorithmique Résume.
Les bases de l’Algorithmique
Exercices Algorithmiques
ALGORITHMIQUE.
et évaluation des compétences
Autorisations Utilisation eCATT
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
8. Les tableaux P. Costamagna – ISEN N1.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Initiation à la programmation et algorithmique cours 3
Initiation au système d’information et aux bases de données
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Initiation au système d’information et aux bases de données
Les bases de l’Algorithmique
Principes de programmation (suite)
Initiation à la programmation et algorithmique
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Algorithme Sommaire Introduction Définition et représentation
Partie 1 Etude de l'existant
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
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
Sémantique axiomatique
Python La structure itérative
Décomposer un nombre en facteurs premiers.
Algorithmique et Programmation
Tableaux de distributions
Tableaux de distributions
Académie de Créteil - B.C Quest-ce quune Inscription 1)1 action + 1 stagiaire + 1 client 2)Parcours individuel (avec son Prix de Vente) 3)Un financement.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Introduction à l’algorithmique
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
I&G- chapitre 11-La logique Logarithmique -Mme Roulaud
1.1 LES VECTEURS GÉOMÉTRIQUES
8PRO107 Éléments de programmation
Chapitre 3 Syntaxe et sémantique.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Programmation linéaire en nombres entiers : les méthodes de troncature
Mise en forme en Mathématiques
LA LOGIQUE ALGORITHMIQUE
Belahmidi (2008)1 ALGORITHMIQUES Cours d’informatique 2 ème année Economie.
Création et présentation d’un tableau avec Word 2007
Institut de Formation aux Métiers de l’industrie Automobile.
LES PILES ET FILES.
Algorithmique : Introduction
Module algorithmique et programmation
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.
Algorithmique Boucles et Itérations
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Algorithmique - Lecture / Ecriture - M me DJEBOURI. D. Faculté de Médecine salle informatique Année universitaire
Transcription de la présentation:

ALGORITHMIQUES

Qu’est-ce qu’un algorithme ? « écrire un algorithme », c’est : Analyser et comprendre le problème : étudier les données fournies et les 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.

Qu’est-ce qu’un algorithme ? Un algorithme correspond à la description d’un processus logique écrit en langage naturel décrivant une succession d’opérations à exécuter dans un certain ordre et sous certaines conditions, pour passer des données de base aux résultats

Qu’est-ce qu’un algorithme ? L’algorithmique est la technique des algorithmes Un algorithme décrit un traitement selon une logique et un formalisme rigoureux. L’algo prépare la programmation L’algo est une étape préalable indispensable à la réalisation d’un bon programme C’est une méthode de découpage d’un traitement en instructions élémentaires

Caractéristiques d’un algorithme Il contient plusieurs séquences à exécuter Ensemble d’actions élémentaires les séquences (étapes) se succèdent dans un certain ordre Il peut éventuellement exister une répétition (itération) ou une condition d’exécution ou non de certaines séquences Il est caractérisé par un début et une fin

La structure d’un algorithme En général, un algo comprend 4 parties : la déclaration des variables nécessaires aux traitements Au début de l’algo, l’initialisation des variables : affectation de valeurs initiales aux variables déclarées

La structure d’un algorithme Le traitement des différentes séquences ordonnées de l’algo : Réalisation d’actions élémentaires ou structurées Appel de procédures ou de fonctions externes : « sous-traitement » de portée générale qui sont réutilisés dans plusieurs algorithmes différents À la fin de l’algo, la sortie des résultats et l’arrêt de l’algo

Les objets utilisés dans l’algo Un algo utilise des objets qui peuvent être des variables, des constantes. Chaque objet à un rôle qui consiste à mémoriser une valeur particulière significative : La variable qui contient une valeur appelée à être modifiée au cours de l'algorithme. La constante qui retient une valeur qui ne change pas au cours de l'algorithme Un objet est parfaitement défini s’il est parfaitement identifié, typé et renseigné

a) caractéristiques d’une variable Une variable est un dispositif de mémorisation d’une valeur à laquelle on accède à tout moment. Elle est caractérisée par : Un rôle : signification attribuée à la variable Un nom (identificateur) : « contenant » permettant d’accéder directement à son contenu. Il doit être le plus parlant et le plus évocateur du rôle de la variable Une valeur : contenu de la variable à un moment donné Variables de type élémentaire : contient 1 seule valeur Variables de type tableau : contient plusieurs valeurs contenues dans un tableau déclaré dans un seul type Un type : c’est la définition du domaine dans lequel une variable peut puiser sa valeur

b) Tableau de déclaration de variables Nom Statut (Entrée ou Sortie) Rôle Type (Entier, réel, texte, date, booléen) Format 1 Codecli E Code du client entier 111 2 datfact Date de la facture date jj/mm/aaaa 3 anciencli Ancien client Booléen Oui / non 4 Nomcli Nom du client Texte 40 car …

Les règles de mise en forme de l’algorithme Nom de l’algorithme Début Déclaration des variables et constantes Instructions1 Instructions 2 Fin

Les actions élémentaires L’instruction d’affectation L'opération consiste à affecter une valeur à une variable. Elle est représentée par une flèche orientée à gauche NomVariable expression ; constante ; variable Exemple : Nomcli « DUPONT » A 100 B A * 0.196 A A + B

Les instructions élémentaires L’instruction d’entrée : SAISIR ou ENTRER A l’exécution de cet ordre, l’ordinateur demande à l’utilisateur de lui communiquer par l’intermédiaire du clavier ou de la souris, une valeur. L’info saisie doit être cohérente avec le type de la variable. Remarque : lors de la saisie d’une donnée, celle-ci est automatiquement affichée à l’écran. SAISIR « nom de l’élève : », NOMELEV L’instruction de sortie : AFFICHER A l’exécution de cet ordre, l’information est restituée à l’écran. AFFICHER « La note obtenue par : », NOMELEV, « est de : », NOTE

Exemple d’algo – niveau 1 Ex Algo : Facture Début * Constantes: TXTVA : 0,196 Variables Ref, Nb : Entier Puht, BrutHT, : Réel Entrée des données élémentaires SAISIR «  référence de la bouteille ?  », Ref SAISIR «  Prix HT d’une bouteille ?  », Pu SAISIR « Combien de bouteilles achetées ?, Nb * Calcul du montant dû par le client BrutHT Pu * Nb * Sortie des résultats Afficher "Montant dû par le client:", BrutHT etc. Fin

Les actions structurées Les instructions structurées sont des structures algorithmiques de base. C’est l’ordonnancement logique des actions, tenant compte des décisions à prendre, qui structure l’algo La structure alternative La structure itérative

La structure alternative Cette structure permet de mener deux actions différentes selon une condition. La condition peut être simple ou combinée (avec les opérateurs logiques ET, OU). Les alternatives peuvent s’imbriquer. Alternative complète : Si « condition » Alors « Action 1 » Sinon « Action 2 » Fin Si Alternative appauvrie : Si « condition » Alors « Action 1 » Fin Si

Exemple d’algo – niveau 2 Début Constantes: TXTVA : 0,196 Variables Ref, Nb : Entier Pu, BrutHT, Rem, NetHT, netTTC : Réel * Entrée des données élémentaire SAISIR «  référence de la bouteille ?  », Ref SAISIR «  Prix HT d’une bouteille ?  », Pu SAISIR « Combien de bouteilles achetées de cette référence ?, Nb * Calcul du montant dû par le client ….. * Sortie des résultats Afficher "Montant dû par le client:", NetTTC Fin

Exemple d’algo – niveau 2 * Calcul du montant dû par le client * *Calcul du montant de la remise BrutHT Pu * Nb Si Nb >= 24 Alors Rem BrutHT * 0,05 Sinon Rem 0 Fin Si * *Calcul du montant net HT NetHT BrutHT – Rem ** Calcul du montant net TTC Si NetHT > 2000 Alors NetTTC NetHT * 0,9 * (1+TxTVA) Sinon NetTTC NetHT * (1+TxTVA)

Variante de la structure alternative pour remplacer avantageusement la structure alternative (SI..ALORS…SINON…), quand il y a un grand nombre de cas possibles selon les valeurs que peut prendre une variable, on peut utiliser la structure SELON CAS : Selon Cas <variable> Cas <expression> <action1> <action2> … Cas Sinon <action3> Fin selon Voir exemple : calcul des frais réels

ALGO calcul des frais de déplacement Variables : Nbkm : entier Puissance : entier Tarif : réel Frais : réel Saisir « puissance fiscale du véhicule :», puissance Saisir « nombre de kilomètres parcourus :», nbkm * Calcul des frais * Affichage des résultats Afficher « le montant des frais de déplacement est de :», frais Si nbkm <= 100 Alors frais 0 Sinon Selon Cas puissance Cas 1 à 3 tarif = 1 Cas 4 à 6 tarif = 1.5 Cas 7 à 8 tarif = 2 Cas 9 à 12 tarif = 2.5 Cas Est > 12 tarif = 3 Cas Sinon tarif = 0 Fin Selon frais tarif * nbkm Fin Si

La structure itérative L’itération (ou boucle) est une structure qui permet de faire répéter un ensemble d’actions, un certain nombre de fois dans un ordre préalablement défini. Il existe trois types de structures itératives : la structure « TANT QUE… FAIRE » : Le nombre de répétitions n’est pas connu et peut être nul : 0 à n répétitions la structure « REPETER… JUSQU’À » : Le nombre de répétitions n’est pas connu mais ne peut pas être nul : 1 à n répétitions la structure « POUR… FIN POUR » : Le nombre de répétitions est connu (i= 1 à 20)

La structure «TANT QUE… FIN TANT QUE» … Début * TOTALTTC : réel TOTALTTC  0 SAISIR « Quelle est la référence des bouteilles achetées ? », Ref * répétition du calcul du montant dû pour TANT QUE Ref <> 0 FAIRE * Entrée des autres données élémentaires Pu, Nb * * Calcul du montant de la remise * * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTCTOTALTTC + NETTTC Saisir « Autre référence de bouteille :», ref FIN TANT QUE AFFICHER «montant total TTC facturé et dû par le client », TOTALTTC Fin

La structure «REPETER… JUSQU’A» Algo : FactBout (d’après sujet Bac IG Désaltère) Variables : … TOTALTTC : réel Réponse : booléen Début * Initialisation de la variable TOTAL TOTALTTC 0 * répétition du calcul du montant dû pour REPETER * Entrée des autres données élémentaires Ref, Pu, Nb * * Calcul du montant de la remise * * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTC TOTALTTC + NETTTC Saisir «Y-a-t-il une autre référence de bouteille :», réponse JUSQU’À réponse NON AFFICHER «montant total TTC facturé et dû par le client », TOTALTTC Fin

La structure «POUR… FIN POUR» Algo : FactBout (d’après sujet Bac IG Désaltère) Variables : … TOTALTTC : réel NBREF : entier i : entier Début * Initialisation de la variable TOTAL TOTALTTC 0 SAISIR « nombre de références différentes des bouteilles achetées : », NBREF * répétition du calcul du montant dû pour POUR i = 1 à NBREF * Entrée des autres données élémentaires Ref, Pu, Nb * * Calcul du montant de la remise * * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTC TOTALTTC + NETTTC FIN POUR AFFICHER «montant total TTC facturé et dû par le client », TOTALTTC Fin

Les actions nommées : procédures et fonctions Dans le principe, un bon algorithme ne devrait pas dépasser une page ! Pour respecter ce principe, il convient de NOMMER certaines séquences d’actions qui correspondront à des procédures ou à des fonctions Ainsi, ces actions nommées seront décrites dans des algorithmes auxiliaires et seront utilisées dans un algorithme principal.

Les procédures Une procédure est un algo auxiliaire qui contient une séquence d’actions : La procédure est désignée par un nom La procédure est appelée, une ou plusieurs fois, dans un ou plusieurs algos principaux. La procédure a besoin de variables élémentaires déclarées dans l’algo principal La procédure renvoie, dans l’algorithme principal, un ou plusieurs résultats contenus dans des variables déclarées dans l’algo principal

L’utilisation des procédures - Exemple Algo principal : Lasagnes à la Bolognaise Variables : 500g lasagnes précuites –150 g parmesan – 50 gbeurre plat à gratin NBpers DEBUT Saisir « Plat pour combien de personnes ? », nbpers Préparer la sauce bolognaise (nbpers) Préparer la sauce béchamel (nbpers) Disposer vos ingrédients dans le plat Préchauffer four thermostat 6 et beurrer un plat à gratin Disposer une couche de lasagne au fond du plat Étaler généreusement de la sauce bolognaise Puis recouvrir de sauce béchamel Renouveler l’opération 1 ou 2 fois selon la hauteur du plat Parsemer de parmesan et de beurre Faire gratiner 35 min au four à chaleur tournante FIN

Algo auxiliaire : Procédure Bolognaise (quantité) Variables locales (pour 8 personnes) : 600g de bœuf et porc haché - 100 g de dés de lard fumé - 500 g oignons _300 g champignons – 2 carottes – 2 côtes de céleri – 60 cl vin blanc – 70 cl bouillon - 60 cl purée de tomates – huile d’olive – poivre – 100 g beurre DEBUT procédure Pelez et coupez les oignons, carottes, céleri Faire revenir ces légumes 5 min dans huile d’olive et 50g de beurre Faire dorer les champignons puis la viande et le lard dans une poêle avec 25 g de beurre et un peu d’huile d’olive Regrouper la viande avec les légumes .Verser le vin et laisser mijoter 20 min à feu doux. Délayer le bouillon et la purée de tomate et ajouter à la préparation Poivrer et laisser mijoter 1 h 30 FIN Procédure

Algo auxiliaire : Procédure Béchamel (quantité) Variables locales (pour 8 personnes) : 80g de farine – 1,25 l de lait - 100 g beurre – noix de muscade – sel - poivre DEBUT procédure Faire fondre le beurre dans une casserole Ajouter la farine et mélanger pendant 2 min à feu doux Verser peu à peu le lait en remuant régulièrement Porter à ébullition pendant 5 min en toujours en remuant Poudrer de noix de muscade. Saler. Poivrer Retirer du feu et couvrer. FIN Procédure

L’utilisation des procédures - Exemple L’algorithme appelant (lasagnes) est celui qui contient l’appel aux procédures (bolognaise et béchamel ). L’algorithme appelé (bolognaise ou béchamel) utilise des variables déclarées dans l’appelant : il s’agit donc de variables globales (Nbpers) L’algo appelé peut déclarer ses propres variables qu’il est seul à utiliser. Il s’agit de variables locales (liste ingrédients)

L’intérêt d’utiliser des procédures est de permettre une plus grande lisibilité de l’algo principal (appelant) : Gain de temps car cela évite d’écrire plusieurs fois la même chose. l’algo auxiliaire peut être appelé dans plusieurs algos principaux : Appelant : pizza à la bolognaise – Appelé : Bolognaise Appelant : choux fleur Sauce Mornay –Appelé : Béchamel Mise à jour plus aisée de l’algo principal : Réduction du risque d’erreur car seul l’algo appelant est modifié

Les fonctions Une fonction est une procédure particulière qui ne renvoie, dans l’algorithme principal, qu’un et un seul résultat. La fonction est appelée dans l’algorithme principal, directement dans une instruction : en général, elle apparaît dans la partie droite d’une affectation Lors de son appel, la fonction est évaluée à partir d’arguments qui lui sont fournis le résultat vient se substituer au nom de la fonction dans l’expression appelante

Les fonctions Toute utilisation de la fonction nécessite donc deux spécifications : Un nom Un ou plusieurs paramètres Exemple : déduction1 ---- fraisforfait (somme)

Les fonctions Il existe deux catégories de fonctions : Les fonctions standards : fonctions de base offertes par le langage utilisé Les fonctions utilisateurs : Tôt ou tard, l’utilisateur devra développer ses propres fonctions à partir du langage utilisé. En effet, elles doivent répondre à un besoin précis et elles ne seront pas disponibles dans la bibliothèque du langage de programmation utilisé…

Application : voir TP ALGO DECFISC

La notion de variables tableaux Dans un algo, il est possible qu’une variable puisse contenir à un moment donné, non pas une valeur, mais plusieurs valeurs à la fois. Il s’agit dans ce cas d’une variable TABLEAU Un tableau est une variable qui permet de stocker des valeurs de même type. Chaque valeur est repérée par un indice indiquant sa position dans le tableau

La déclaration de variables tableaux Un tableau doit avoir : un nom déclaré comme un type particulier de données Une dimension connue à l’avance : La dimension correspond au nombre maximum de cases composant le tableau Un indice doit être déclaré pour permettre d’adresser les différentes cases du tableau. L’indice est obligatoirement du type entier NOMTABLEAU [nbvaleurmax] : type (préciser aussi le rôle de la variable tableau) i : entier (indice)

L’utilisation de variables tableaux Un tableau peut être à 1 ou 2 dimensions. L’accès à l’élément d’un tableau s’effectue : En précisant la position relative de l’élément par rapport au début du tableau. En utilisant le ou les indices Exemple de tableau à 1 dimension : reprenons notre TP DECFISC… Pour calculer les frais réels, nous pouvons utiliser un tableau (voir version 2) contenant toutes les valeurs correspondantes à la puissance fiscale du véhicule, au lieu d’utiliser la structure SELON CAS (version 1) …

Algo Fonction version 1 du calcul des frais réels SI NBKM <= 100 ALORS déduction1 = 0 SINON Selon Cas puissanceF Cas 1 à 3 tarif = 0,1 Cas 4 à 6 tarif = 0,15 Cas 7 à 8 tarif = 0,25 Cas 9 à 12 tarif = 0,4 Cas Est > 12 tarif = 0.5 Cas SINON tarif = 0 Fin Selon Déduction1 = tarif * NBKM FIN SI Algo fonction version 2 du calcul des frais réels *déclaration du tableau Tarif tarif [13] : tableau de 13 réels i : entier * Initialisation des valeurs du tableau Tarif[1] = 0.1 Tarif[2] = 0.1 Tarif[3] = 0.1 Tarif[4] = 0.15 Tarif[5] = 0.15 Tarif[6] = 0.15 ‘calcul de la déduction au frais réels SI NBKM <= 100 ALORS déduction1 = 0 SINON SI puissanceF > 13 ALORS i = 13 SINON i = puissanceF FIN SI Déduction1 = Tarif(i) * NBKM Tarif[7] = 0.25 Tarif[8] = 0.25 Tarif[9] = 0.3 Tarif[10] = 0.3 Tarif[11] = 0.3 Tarif[12] = 0.3 Tarif[13] = 0.5

L’utilisation de variables tableaux Exemple de tableau à 2 dimensions : Prenons le TP RAPID’AUTO… Pour déterminer le forfait de location applicable selon la catégorie du véhicule loué ET la période de location choisie, nous pouvons utiliser un tableau à 2 dimensions (voir version 2) contenant toutes les valeurs applicables au forfait de location du véhicule, au lieu d’utiliser la structure SELON CAS (version 1) …

*déclaration du tableau à 2 dimensions Algo fonction version 2 Fonction forfait(categ, typeloc) *déclaration du tableau à 2 dimensions TABFORLOC : tableau de 16 réels categ : entier (indice de colonne) typeloc : entier (indice de ligne) * Initialisation des valeurs du tableau TABFORLOC[1,1] = 75 TABFORLOC[1,2] = 126 TABFORLOC[1,3] = 291 TABFORLOC[1,4] = 650 TABFORLOC[2,1] = 82 TABFORLOC[2,2] = 155 TABFORLOC[2,3] = 338 TABFORLOC[2,4] = 700 * choix de la valeur renvoyée dans la fonction grâce aux indices Forfait = TABFORLOC[categ,typeloc] FIN Fonction Algo Fonction version 1 Fonction forfait(categ, typeloc) SI categ = 1 ALORS Selon Cas typeloc Cas 1 forfait = 75 Cas 2 forfait = 126 Cas 3 forfait = 291 Cas 4 forfait = 650 Fin Selon SINON SI categ = 2 … SINON SI categ = 3 SINON SI categ = 4 SINON forfait = 0 FIN SI FIN FONCTION TABFORLOC[3,1] = 129 TABFORLOC[3,2] = 219 TABFORLOC[3,3] = 519 TABFORLOC[3,4] = 1000 TABFORLOC[4,1] = 105 TABFORLOC[4,2] = 180 TABFORLOC[4,3] = 411 TABFORLOC[4,4] =880

N’oubliez pas : Un bon programme, c’est d’abord un bon algo ! FIN du cours d’algo N’oubliez pas : Un bon programme, c’est d’abord un bon algo !