La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Campus-Booster ID : 159 www.supinfo.com Copyright © SUPINFO. All rights reserved Structure algorithmique avancée.

Présentations similaires


Présentation au sujet: "Campus-Booster ID : 159 www.supinfo.com Copyright © SUPINFO. All rights reserved Structure algorithmique avancée."— Transcription de la présentation:

1 Campus-Booster ID : 159 Copyright © SUPINFO. All rights reserved Structure algorithmique avancée

2 Votre formateur… Titre: Professeur Référent en Algorithmique, Théorie des Graphes et Intelligence Artificielle. Distinction: Mastère en Recherche Opérationnelle et Intelligence Artificielle. Formation: Ingénieur en Informatique, Conception et Développement, (modélisation, optimisation, simulation, complexité et algorithmique). Qualifié en Gestion des Risques (spécialisé en modélisation et Systèmes d'Information) Publication: « La simulation des flux de transports de marchandises en agglomération » (2002). Contact: SUPINFONE: Arnaud CUEILLE Structure algorithmique avancée

3 Objectifs de ce module Aborder, à l'aide d'exemples concrets, la construction méthodique d'un algorithme. Mettre en adéquation le type des données avec l'objectif imposé. Réviser les différentes formes d'exploitation des données. Maîtriser les différentes structures algorithmiques, leurs contraintes d'utilisation et leurs limites. Aborder quasi-exhaustivement des constructions algorithmiques évoluées. En suivant ce module vous allez: Structure algorithmique avancée

4 Plan du module Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes). Instructions répétitives : TANTQUE et REPETER (et variantes). Instructions répétitives : POUR. Instructions de rupture de séquences imbriquées. Voici les parties que nous allons aborder: Structure algorithmique avancée

5 Nous utiliserons, en paralèlle avec ce cours, le document: Algorithmique Annexes Structure algorithmique avancée Remarque importante :

6 Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Structure algorithmique avancée

7 Plan de la partie Imbrication : SI..ALORS Imbrication : SI..ALORS..SINON Imbrication : CAS..PARMI Imbrication : CAS..PARMI..PARDEFAUT Imbrication diverse Voici les chapitres que nous allons aborder: Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

8 La filiation, la relation via les groupes sanguins (critères d’impossibilité) :  Deux parents O ne peuvent avoir d'enfant d'un autre type que O,  Deux parents A, ou un parent A et un parent O, ne peuvent avoir d'enfant B, ni AB,  Deux parents B, ou un parent B et un parent O, ne peuvent avoir d'enfant A, ni AB,  Si l'un des parents est AB, l'enfant ne peut être O. *ATTENTION, ces critères ne sont valables que pour 95% de la population, voire moins ! EXEMPLE, Groupe sanguin et filiation* (énoncé): Imbrication : SI..ALORS Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

9 Tableau des filiations* probables et impossibilités à l'aide des groupes sanguins : Parent (1) Parent (2) O A O B O … peuvent avoir … O A, O B, O … ne peuvent pas avoir … A, B, AB B, AB A, AB O A A B B ?A, B, ABOAB Imbrication : SI..ALORS Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

10 Tableau complet des filiations* probables et impossibilités à l'aide des groupes sanguins : Parent (1) Parent (2) O A B AB O … peuvent avoir … O A, O B, O A, B, AB A, O … ne peuvent pas avoir … A, B, AB B, AB A, AB O B, AB O O O O A AA, OB, ABA B AB O A B ? A, B, AB B, O ? ? O A, AB ? A A B B B ABA, B, ABOB O OAB AA, B, ABOAB BA, B, ABOAB A, B, ABOAB Imbrication : SI..ALORS Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

11 Algorithmique Annexes : (références) Sous chapitre Test de filiation Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Imbrication : SI..ALORS

12 IMC, présentation :  L'indice de masse corporelle permet d'estimer la quantité de masse grasse de l'organisme à partir de deux paramètres : le poids et la taille. Il permet d'évaluer la relation entre le poids et la santé en déterminant la corpulence de la personne, de voir s'il y a obésité ou maigreur et il en détermine la sévérité. L'IMC ne doit pas être utilisé comme seule mesure de la composition corporelle et/ou de la condition physique. *ATTENTION, ces critères ne sont valables que pour estimation générale et nécessitent une interprétation élaborée par des spécialistes ! EXEMPLE, Indice de Masse Corporelle* (énoncé): Imbrication : SI..ALORS..SINON Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

13 IMC, présentation (Suite) :  ATTENTION : Bien que l'IMC fournisse des points de repère indicatifs des niveaux de poids chez les adultes (de 18 à 65 ans), il ne s'applique pas aux nourrissons, aux enfants, aux femmes enceintes ou celles qui allaitent, aux personnes gravement malades, aux athlètes, ni aux adultes de plus de 65 ans. *ATTENTION, ces critères ne sont valables que pour estimation générale et nécessitent une interprétation élaborée par des spécialistes ! EXEMPLE, Indice de Masse Corporelle* (énoncé): Imbrication : SI..ALORS..SINON Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

14 IMC, calcul :  L'indice de masse corporelle est le rapport du poids (exprimé en Kilogrammes) sur le carré de la taille (exprimée en mètre). Il se calcule donc avec une formule mathématique simple :  IMC = poids / (taille x taille) EXEMPLE, Indice de Masse Corporelle* (énoncé): Imbrication : SI..ALORS..SINON Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

15 IMC, interprétation possible des résultats :  inférieur à 25 : NORMAL  de 25 à 30 : SURPOIDS  de 30 à 35 : OBESITE MODEREE  de 35 à 40 : OBESITE SEVERE  Plus de 40 : OBESITE MASSIVE [Enoncé élaboré et adapté à partir des sources suivantes : Magazine de la santé, France ] EXEMPLE, Indice de Masse Corporelle* (énoncé): Imbrication : SI..ALORS..SINON Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

16 Tableau des bornes inférieures et supérieures d'une interprétation possible de l'IMC : IMCborne inférieure borne supérieure normal surpoids modéré sévère massive Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Imbrication : SI..ALORS..SINON

17 Algorithmique Annexes : (références) Sous chapitre IMC simplifié Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Imbrication : SI..ALORS..SINON

18  Afin de comparer le déroulement des instructions conditionnelles SI..ALORS et CAS..PARMI, l'exemple traité dans ce chapitre est identique au premier exemple vu dans ce module. EXEMPLE, Groupe sanguin et filiation : Imbrication : CAS..PARMI Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

19 Algorithmique Annexes : (références) Sous chapitre Test de filiation Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Imbrication : CAS..PARMI

20  La structure du CAS..PARMI..PARDEFAUT possède l'avantage de donner une alternative non formalisée en fin de structure conditionnelle.  Cependant, les langages évolués possèdent des modes propres de fonctionnement pour cette instruction !  Lors de la traduction du langage algorithmique au langage évolué, il sera nécessaire, parfois, d'adapter l'écriture algorithmique aux particularités du langage de développement utilisé. EXEMPLE, Groupe sanguin et filiation : Imbrication : CAS..PARMI..PARDEFAUT Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

21 Algorithmique Annexes : (références) Sous chapitre Test de filiation Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Imbrication : CAS..PARMI..PARDEFAUT

22 Calcul de l'indice de tendance à l'obésité :  Prise de mesure au tour de taille.  Pour un homme, tendance à l'obésité lorsque la mesure dépasse 100 cm.  Pour une femme, tendance à l'obésité lorsque la mesure dépasse 90 cm. EXEMPLE, Tendance à l'obésité (énoncé) : Imbrication diverse Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

23 Algorithmique Annexes : (références) Sous chapitre Tendance à l'obésité Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes) Imbrication diverse

24 Pause-réflexion sur cette 1 ère partie Avez-vous des questions ? Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

25 Instructions répétitives : TANTQUE et REPETER (et variantes) Structure algorithmique avancée

26 Plan de la partie Présentation Instruction : TANTQUE Instruction : REPETER..JUSQU’A Instruction : REPETER..TANTQUE Sortie de boucle prématurée Persistance dans une boucle Boucles imbriquées Voici les chapitres que nous allons aborder : Instructions répétitives : TANTQUE et REPETER (et variantes)

27 Problèmes liés aux instructions répétitives (ou boucles) Présentation Instructions répétitives : TANTQUE et REPETER (et variantes)  Il est parfois nécessaire, en fonction d'une condition particulière, de traiter un certain nombre de fois une opération ou suite d'opérations.  Pour réaliser cela, une structure répétitive peut être employée afin d'éviter une écriture séquentielle de structures conditionnelles bien trop lourde à mettre en place.

28 Les structures répétitives ou boucles Présentation Instructions répétitives : TANTQUE et REPETER (et variantes)  Puisqu'il est impératif de définir une condition pour "rentrer" dans la boucle ou "effectuer la répétition", il peut arriver que celle-ci ne soit pas "VRAI" lors du traitement de l'instruction répétitive ! Dans ce cas, l'instruction suivante est prise en compte et ainsi de suite …, en revanche, dans le cas contraire, où la répétition s'opère normalement, il faut impérativement "sortir" de cette boucle ! (Sinon, le programme ne se termine jamais).  Conclusion : les opérations répétitives nécessiteront un examen minutieux des conditions de sortie de la boucle.

29 EXEMPLE, Agenda journalier (énoncé) : Instruction : TANTQUE Instructions répétitives : TANTQUE et REPETER (et variantes)  L'objectif de ce programme est de faire afficher (ou imprimer) une liste d'heures successives dans une tranche de 8h00 à 18h00, par créneau d'une heure, en dessous du nom du jour choisi par l'utilisateur.

30 Algorithmique Annexes : (références) Sous chapitre Agenda journalier Instructions répétitives : TANTQUE et REPETER (et variantes) Instruction : TANTQUE

31 EXEMPLE, Agenda journalier (énoncé) : Instruction : REPETER..JUSQU’A Instructions répétitives : TANTQUE et REPETER (et variantes)  Afin de comparer le déroulement des instructions répétitives TANTQUE et REPETER, l'exemple traité dans ce chapitre est identique au premier exemple vu dans ce module.

32 Algorithmique Annexes : (références) Sous chapitre Agenda journalier Instructions répétitives : TANTQUE et REPETER (et variantes) Instruction : REPETER..JUSQU’A

33 EXEMPLE, Agenda journalier (énoncé) : Instruction : REPETER..TANTQUE Instructions répétitives : TANTQUE et REPETER (et variantes)  Il existe deux variantes à l'écriture de l'instruction répétitive REPETER.  Ses variantes sont complémentaires.  Certains langages n'implémentent qu'une seule de ces instructions.  Lors de la traduction du langage algorithmique au langage évolué, il sera nécessaire, parfois, d'adapter l'écriture algorithmique aux particularités du langage de développement utilisé.

34 Algorithmique Annexes : (références) Sous chapitre Agenda journalier Instructions répétitives : TANTQUE et REPETER (et variantes) Instruction : REPETER..TANTQUE

35 EXEMPLE, Calendrier mensuel (énoncé) : Sortie de boucle prématurée Instructions répétitives : TANTQUE et REPETER (et variantes)  L'objectif de ce programme est de faire afficher toutes les dates d'un mois choisi par l'utilisateur en dessous du nom du mois.

36 Algorithmique Annexes : (références) Sous chapitre Calendrier mensuel Instructions répétitives : TANTQUE et REPETER (et variantes) Sortie de boucle prématurée

37 EXEMPLE, Machine à sous (énoncé) : Persistance dans une boucle Instructions répétitives : TANTQUE et REPETER (et variantes)  L'objectif de ce programme est de simuler le comportement aléatoire d'une machine à sous.

38 Algorithmique Annexes : (références) Sous chapitre Machine à sous Instructions répétitives : TANTQUE et REPETER (et variantes) Persistance dans une boucle

39 EXEMPLE, Agenda journalier évolué (énoncé) : Boucles imbriquées Instructions répétitives : TANTQUE et REPETER (et variantes)  L'objectif de ce programme est de faire évoluer le programme d'affichage de l'agenda vu précédemment.  L'utilisateur a maintenant le choix du nombre de jours à afficher.

40 Algorithmique Annexes : (références) Sous chapitre Agenda journalier évolué Instructions répétitives : TANTQUE et REPETER (et variantes) Boucles imbriquées

41 Pause-réflexion sur cette 2 ème partie Avez-vous des questions ? Instructions répétitives : TANTQUE et REPETER (et variantes)

42 Instructions répétitives : POUR Structure algorithmique avancée

43 Plan de la partie Présentation Instruction : POUR Sortie de boucle prématurée Persistance dans une boucle Boucle à bornes variables Boucle à pas variable Boucles à bornes fixes Boucles à bornes imbriquées Voici les chapitres que nous allons aborder: Instructions répétitives : POUR

44 Les structures répétitives ou boucles Présentation Instructions répétitives : POUR  A l'identique des autres instructions répétitives, l'instruction POUR risque de boucler indéfiniment !  L'instruction POUR est une instruction répétitive "tout en un". C'est à dire qu'elle a la possibilité d'intégrer une déclaration avec initialisation, la définition de la borne de sortie, ainsi que la valeur du pas (et de son signe).

45 Les structures répétitives ou boucles (suite) Présentation Instructions répétitives : POUR  Conclusion : les opérations répétitives à l'aide de POUR nécessiteront un examen minutieux des conditions de sortie de la boucle et dans le cas d'une utilisation de variables à la place des éléments : initialisation, borne de sortie et pas; la cohérence de l'ensemble doit être validée avant toute traduction dans un langage quelconque.

46 EXEMPLE, Agenda journalier (énoncé) : Instructions répétitives : POUR  L'objectif de ce programme (identique aux exercices vus précédemment) est de faire afficher (ou imprimer) une liste d'heures successives dans une tranche de 8h00 à 18h00, par créneau d'une heure, en dessous du nom du jour choisi par l'utilisateur. Instruction : POUR

47 Algorithmique Annexes : (références) Sous chapitre Agenda journalier Instructions répétitives : POUR Instruction : POUR

48 EXEMPLE, Calendrier mensuel (énoncé) : Instructions répétitives : POUR  L'objectif de ce programme (identique aux exercices vus précédemment) est de faire afficher toutes les dates d'un mois choisi par l'utilisateur en dessous du nom du mois. Sortie de boucle prématurée

49 Algorithmique Annexes : (références) Sous chapitre Calendrier mensuel Instructions répétitives : POUR Sortie de boucle prématurée

50 EXEMPLE, Machine à sous (énoncé) : Persistance dans une boucle Instructions répétitives : POUR  L'objectif de ce programme (identique aux exercices vus précédemment) est de simuler le comportement aléatoire d'une machine à sous.

51 Algorithmique Annexes : (références) Sous chapitre Machine à sous Instructions répétitives : POUR Persistance dans une boucle

52 EXEMPLE, Agenda journalier plusieurs jours (énoncé) : Boucle à bornes variables Instructions répétitives : POUR  L'objectif de ce programme (évolution de l'exercice vu précédemment) est de faire afficher (ou imprimer) une liste d'heures successives dans une tranche de 8h00 à 18h00, par créneau d'une heure, pour un certain nombre de jours déterminé par l'utilisateur.

53 Algorithmique Annexes : (références) Sous chapitre Agenda journalier plusieurs jours Instructions répétitives : POUR Boucle à bornes variables

54 EXEMPLE, Calcul de la monnaie en euro (énoncé) : Boucle à pas variable Instructions répétitives : POUR  L'objectif de ce programme est de déterminer le nombre de billets pour chacune des valeurs suivantes : 5 euro, 10, 20, 50 et 100 euro ; en fonction du prix d'un produit renseigné par l'utilisateur.

55 Algorithmique Annexes : (références) Sous chapitre Calcul de la monnaie en euro Instructions répétitives : POUR Boucle à pas variable

56 EXEMPLE, Tables de multiplication complètes (énoncé) : Boucles à bornes fixes Instructions répétitives : POUR  L'objectif de ce programme est d'afficher les tables de multiplication de 0 à 10.

57 Algorithmique Annexes : (références) Sous chapitre Tables de multiplication Instructions répétitives : POUR Boucles à bornes fixes

58 EXEMPLE, Affichage d'une droite en diagonale (énoncé) : Boucles à bornes imbriquées Instructions répétitives : POUR  L'objectif de ce programme est d'afficher une droite à l'écran, dans un pavé de 50 sur 50, en diagonale.

59 Algorithmique Annexes : (références) Sous chapitre Droite en diagonale Instructions répétitives : POUR Boucles à bornes imbriquées

60 Pause-réflexion sur cette 3 ème partie Avez-vous des questions ? Instructions répétitives : POUR

61 Instructions de rupture de séquences imbriquées Structure algorithmique avancée

62 Plan de la partie Problème résolu 1 Problème résolu 2 Problème résolu 3 Problème résolu 4 Voici les chapitres que nous allons aborder : Instructions de rupture de séquences imbriquées

63 EXEMPLE, Nombre de jours par mois (énoncé) : Problème résolu 1 Instructions de rupture de séquences imbriquées  L'objectif de ce programme est de déterminer, en fonction du mois et de l'année, le nombre de jours en prenant en compte les années bissextiles.  Une année est bissextile si le millésime correspondant vérifie l'une des 2 propriétés suivantes : soit il est divisible par 4 et n'est pas divisible par 100, soit il est divisible par 400.

64 Algorithmique Annexes : (références) Sous chapitre Nombre de jours par mois Instructions de rupture de séquences imbriquées Problème résolu 1

65 EXEMPLE, Extraction de la valeur entière (énoncé) : Problème résolu 2 Instructions de rupture de séquences imbriquées  L'objectif de ce programme est de réaliser une fonction mathématique utile et généralement déjà présente dans les bibliothèques de développement en informatique : Extraction de la valeur entière d'un nombre décimal.  Le principe retenu est une décrémentation répétitive si le nombre décimal est positif, ou bien une incrémentation répétitive s'il est négatif, jusqu'à ce que la valeur soit nulle. Un compteur tourne pour chaque itération afin de fournir la valeur entière correspondante.

66 Algorithmique Annexes : (références) Sous chapitre Extraction de la valeur entière Instructions de rupture de séquences imbriquées Problème résolu 2

67 EXEMPLE, Points d'un mot au Scrabble (énoncé) : Problème résolu 3 Instructions de rupture de séquences imbriquées L'objectif de ce programme est de calculer le nombre de points qu'un mot peut rapporter au Scrabble. Ce mot n'a pas encore été posé sur la grille du jeu, et par conséquent, les coefficients multiplicateurs du jeu (impactant la valeur des lettres ou du mot) ne sont pas pris en compte. k, w, x, y, z : 10 points j, q : 8 points f, h, v : 4 points b, c, p : 3 points d, g, m : 2 points a, e, i, l, n, o, r, s, t, u : 1 point

68 Algorithmique Annexes : (références) Sous chapitre Points d'un mot au Scrabble Instructions de rupture de séquences imbriquées Problème résolu 3

69 EXEMPLE, Temps de remontée d'un plongeur (énoncé) : Problème résolu 4 Instructions de rupture de séquences imbriquées  L'objectif de ce programme est de déterminer, pour une profondeur donnée, le temps de remontée d'un plongeur en prenant en compte les arrêts obligatoires à chaque palier.  Pour une profondeur inférieure ou égale à 100 m, sachant qu’il faut faire un palier de 100 secondes à 30 m, puis de 30 m à 0, des paliers tous les 3 m, le temps diminuant de 10 secondes à chaque fois. Les paliers au dessus de 30 m sont augmentés de 25 secondes tous les 10 m, (ainsi p.ex. : 150 s à 50 m). La vitesse de remontée est estimée à 1 m/s et sera considérée constante.

70 Algorithmique Annexes: (références) Sous chapitre Temps de remontée d'un plongeur Instructions de rupture de séquences imbriquées Problème résolu 4

71 Pause-réflexion sur cette 4 ème partie Avez-vous des questions ? Instructions de rupture de séquences imbriquées

72 TANTQUE et REPETER répétition TANTQUE et REPETER répétition POUR répétition avec déclaration, initialisation, borne et pas POUR répétition avec déclaration, initialisation, borne et pas SI..ALORS simple sélection (ou filtre) SI..ALORS simple sélection (ou filtre) ATTENTION ! imbrications de sélections (ou filtres) et sorties de boucles ATTENTION ! imbrications de sélections (ou filtres) et sorties de boucles Résumé du module SI..ALORS..SINON sélection avec alternative SI..ALORS..SINON sélection avec alternative Structure algorithmique avancée

73 Pour aller plus loin… Publications Introduction à l'algorithmique : Cours et exercices (Broché) de Cormen, Leiserson, Rivest Exercices et problèmes d'algorithmique : 144 énoncés avec solutions détaillées (Broché) de Baynat, Chrétienne Si vous voulez approfondir vos connaissances: Structure algorithmique avancée

74 Félicitations Vous avez suivi avec succès le module de cours n°2 Structure algorithmique avancée

75 Fin Relisez attentivement tous les exemples de ce cours, essayez d'y apporter des améliorations, des ajouts, … Choisissez un nouveau sujet simple, non encore traité dans ce cours, et écrivez l'algorithme correspondant. Structure algorithmique avancée


Télécharger ppt "Campus-Booster ID : 159 www.supinfo.com Copyright © SUPINFO. All rights reserved Structure algorithmique avancée."

Présentations similaires


Annonces Google