1 / 60

ALGORITHMIQUE

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

thi
Download Presentation

ALGORITHMIQUE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITHMIQUE

  2. 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 • Cet algorithme sera ensuite converti à l’aide d’un langage de programmation.

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

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

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

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

  7. 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 • À la fin de l’algo, la sortie des résultats et l’arrêt de l’algo

  8. 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 : • Lavariable contient une valeur appelée à être modifiée au cours de l'algorithme. • La constantequi 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é

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

  10. b) Tableau de déclaration de variables

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

  12. Les actions élémentaires: Les affectations • Affecter une variable consiste a lui donner une valeur. Cette valeur peut être soit une constante, soit une valeur d’une autre variable, soit le résultat d’un calcul. • Exemple : Si A est une variable de type Byte (valeur comprise entre 0 et 255), on peut écrire : • A  3, A  3 + 4, A  2*B, A  (B*B)/C • Le symbole  est le symbole d’affectation • Si une variable est numérique A  0 • Si une variable est chaîne de caractères A "0", ou A " Lettres "

  13. Les instructions élémentaires L’entrée d’information La primitive d’entrée ou saisir (entrée clavier) et lire (lecture en provenant du disque dur). Le but de ces primitives est de permettre a l’ordinateur d’affecter une variable extérieure a une autre variable. Le nom de cette variable symbolise une adresse en mémoire centrale. A cette adresse se trouve la valeur, a un moment donne de la variable. La primitive de sortie : écrire, afficher, imprimer. Le but est de permettre a l’ordinateur de sortir la valeur d’une variable vers les périphériques extérieurs (écran, imprimante, etc…) La Sortie d’informations

  14. Exemple d’algo Ex Algo : Facture Début Constantes: TX_TVA : 0,196 Variables Ref, Nb : Entier Pu_ht, Brut_HT, : 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 Brut_HT  Pu * Nb * Sortie des résultats Afficher "Montant dû par le client:", Brut_HT etc. Fin

  15. Les outils Les structures alternatives • Elles permettent de vérifier la valeur logique d’une expression. L’objectif sera de réaliser certaines actions en fonction de cette valeur. La structure de base est la suivante : Si (condition est vraie) Alors Action 1 Sinon Action 2 Fin Si • Une action peut être un calcul, une affectation ou une autre condition.

  16. La structure alternative Alternative appauvrie : Si « condition » Alors « Action 1 » Fin Si

  17. La structure alternative Si code_sexe = 1 Alors Genre <- « masculin » Sinon Genre <- « féminin » Fins si • La vérification de la valeur booléenne de l’expression se fera en utilisant des opérateurs relationnels et logiques tels que : > ; < ; >= ; <> ; <= sont des opérateurs relationnels = comparaison Et, ou sont des opérateurs Logiques

  18. Exemple d’algo Algo : Début Constantes: TXTVA : 0,196 Variables Ref, Nb : Entier Pu, BrutHT, Rem, NetHT, netTTC,tva : 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

  19. 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 • TvA  NetHt*txttva • NetTTC NetHT + tva

  20. Structure Imbriquée • Une structure alternative peut être de nature imbriquée. • Si (condition est vraie) • Alors • Action 1 • Si (condition est vraie) • Alors • Action 1.1 • Sinon • Action 1.2 • Fin si • Sinon • Action 2 • Fin si

  21. Exemple : • Si code_sexe = 1 • Alors • Si âge >= 18 • Alors • Personnes = « majeur » • Genre = « masculin » • Sinon • Personnes = « mineur » • Genre = « masculin » • Fin Si • Sinon • Si âge >= 18 • Alors • Personnes = « majeur » • Genre = « féminin » • Sinon • Personnes = « mineur » • Genre = «  féminin » • Fin si • Fin Si

  22. Autre possibilité • Si code_sexe = 1 et âge >= 18 • Alors • Personnes = « majeur » • Genre = « masculin » Sinon • Personnes = « majeur » • Genre = « masculin » • Fin si • Si code_sexe = 2 et age >= 18 • Alors • Personnes = « majeur » • Genre = « féminin » • Sinon • Personnes = « mineur » • Genre = « féminin» Fin si

  23. 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 : SelonCas<variable> Cas<expression> <action1> Cas<expression> <action2> … Cas Sinon <action3> Fin selon Voir exemple : calcul des frais réels

  24. 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 Caspuissance • 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

  25. Exercice Excel

  26. Les structures itératives • Une structure itérative permet de répéter une suite d’instructions autant de fois que l’on veut (notion de boucle). Différentes structures permettent de réaliser cette forme de traitement : • Pour • Tant que • Répéter, jusqu'à ce que

  27. Structure itérative Pour On sait a l’avance combien de fois on veut itérer. • Pour i de 1 a 10. • Faire Actions • Fin Pour (ii+1) • Il faut donc connaître la valeur de début de i ainsi que sa valeur d’arrivée. A chaque tour de boucle, la variable i sera incrémentée (augmentée) de 1.

  28. La structure«POUR… FIN POUR» Algo : Début TOTALTTC, CumulTTC, TVA, prix : réel ref : chaine NB : entier i : entier CumulTTC 0 SAISIR « nombre de PRODUITS achetés : », NB * répétition du calcul du montant dû pour POUR i = 1 à NB totalHT0 : Tva 0 : TOTALTTC 0 Saisir Ref, Pu, Qt totalHt Pu*QT Tva  totalht* 0,196 TOTALTTC TOTALht+ tva CumulTTC CumulTTC+TOTALTTC FIN POUR AFFICHER «montant total TTC facturé et dû par le client », CumulTTC Fin

  29. Structure itérative Tant que Tant que la Condition est vraie alors les actions seront executées. Déclarer réponse : chaîne Réponse  «oui » ( Initialisation) Tant que reponse =  "oui " Faire Actions Saisir Réponse Fin Tant que

  30. … Début * TOTALTTC : réel TOTALTTC 0 Ref: chaine SAISIR « Quelle est la référence des bouteilles achetées ? », Ref * répétition du calcul du montant dû pour TANT QUE Ref <> "" 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

  31. … Début * TOTALTTC : réel Ref, Rep: chaine TOTALTTC 0 Rep  "OUI " TANT QUE Rep = “OUI" FAIRE * Entrée des autres données élémentaires Pu, Nb, Ref * * Calcul du montant de la remise * * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTCTOTALTTC + NETTTC Saisir   “ Autre Saisie oui/non : “, Rep FIN TANT QUE AFFICHER «montant total TTC facturé et dû par le client », TOTALTTC Fin

  32. Structure itérative Répéter jusqu'à ce que Répéter l’action jusqu’à ce que condition devient fausse Déclarer réponse = chaîne Répéter Action(S) Saisir réponse Jusqu'à ce que réponse soit vraie

  33. Début * TOTALTTC : réel Réponse : chaîne TOTALTTC  0 * répétition du calcul du montant dû pour REPETER * Entrée des autres données élémentaires Ref, Pu, Nb Etc. 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

  34. Procédures et fonctions Sont des séquences d’actions qui seront nommées et dans des algorithmes auxiliaires. Ces procédures et fonctions seront appelées à partir d’ un algorithme principal.

  35. 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 ( les variables ont une portée globale ) • La procédure renvoie ou non , dans l’algorithme principal, un ou plusieurs résultats contenus dans des variables déclarées dans l’algo principal

  36. L’intérêt d’utiliser des procédures est de permettre une plus grande lisibilité de l’algo principal (appelant) : • Gain de tempscar cela évite d’écrire plusieurs fois la même chose. l’algo auxiliaire peut être appelé dans plusieurs algos principaux : • Mise à jour plus aisée de l’algo principal : Réduction du risque d’erreur car seul l’algo appelant est modifié

  37. Private Sub Cmd_calc_Fahr_Click() • Procedure_Faren_Cel • MsgBox "La temperature est de " & f & "degres F." • End Sub • Private Sub Procedure_Faren_Cel() • f = (Txt_valeur * 9 / 5) + 32 • End Sub

  38. Private Sub cmd_test_Click() • Proc_calc_fahr (Txt_valeur) • MsgBox "La temperature est de " & celsius & "degres C." • End SuB • Private Sub Proc_calc_fahr(degre As Single) • celsius = (degre - 32) * 5 / 9 • End Sub

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

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

  41. Les fonctions Il existe deux catégories de fonctions : • Les fonctions standards : fonctions de base offertes par le langage utilisé • Les fonctions utilisateurs : 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é…

  42. Fonction VB Function fahr(Cel As Integer) As Single fahr = (Cel * 9 / 5) + 32 End Function Appel de la Fonction Private Sub Cmd_calc_Fahr_Click() MsgBox "La Temperature est de " & fahr(Txt_cel) & " degres C." End Sub

  43. La notion de variables tableaux( Vecteur 1 dimension) 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

  44. VECTEURS et TABLEAUX

  45. 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 ou le Vecteur • 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)

  46. L’utilisation de variables tableaux • Un tableau peut être à 1 ou 2dimensions. • 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

  47. Algo fonctionversion 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 FIN SI 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 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

  48. L’utilisation de variables tableaux Exemple detableau à 2 dimensions : 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) …

  49. La notion de variables tableaux( Vecteur 1 dimension) 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

  50. Algo fonctionversion 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 • ALORS Selon Cas typeloc • … • Fin Selon • SINON SI categ = 3 • ALORS Selon Cas typeloc • … • Fin Selon • SINON SI categ = 4 • ALORS Selon Cas typeloc • … • Fin Selon • 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

More Related