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

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

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

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

Campus-Booster ID : 159

www.supinfo.com

Copyright © SUPINFO. All rights reserved

Structure algorithmique avancée

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

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:[email protected] SUPINFONE: 1 50087

Arnaud CUEILLE

Structure algorithmique avancée

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

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

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

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

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

Nous

utiliserons, en

paralèlle avec

ce cours, le

document:

Algorithmique

Annexes

Structure algorithmique avancée

Remarque importante :

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

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Structure algorithmique avancée

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

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)

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

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..ALORSInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

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

A, O

B, O

B, O

… ne peuvent pas avoir …

A, B, AB

B, AB

B, AB

A, AB

A, AB

O

A

A

B

B

? A, B, AB OAB

Imbrication : SI..ALORSInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Tableau complet des filiations* probables et impossibilités à l'aide des groupes sanguins :

Parent (1) Parent (2)

OAB

ABO

… peuvent avoir …

OA, OB, O

A, B, ABA, O

… ne peuvent pas avoir …

A, B, ABB, ABA, AB

OB, AB

OOOOA

A A, O B, ABAB

ABOAB

?A, B, AB

B, O?

B, O

?O

A, AB?

A, AB

AABBB

AB A, B, AB OBO A, B, AB OABA A, B, AB OABB A, B, AB OAB

AB A, B, AB OAB

Imbrication : SI..ALORSInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-2-1

Test de

filiation

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Imbrication : SI..ALORS

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

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..SINONInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

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..SINONInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

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..SINONInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

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é, France5 - 2006]

EXEMPLE, Indice de Masse Corporelle* (énoncé):

Imbrication : SI..ALORS..SINONInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Tableau des bornes inférieures et supérieures d'une interprétation possible de l'IMC :

IMC borne inférieure

-

26

31

36

41

borne supérieure

25

30

35

40

-

normal

surpoids

modéré

sévère

massive

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Imbrication : SI..ALORS..SINON

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-2-2

IMC simplifié

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Imbrication : SI..ALORS..SINON

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

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..PARMIInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-2-3

Test de

filiation

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Imbrication : CAS..PARMI

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

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..PARDEFAUTInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-2-4

Test de

filiation

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Imbrication : CAS..PARMI..PARDEFAUT

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

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 diverseInstructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-2-5

Tendance à

l'obésité

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

Imbrication diverse

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

Pause-réflexion sur cette 1ère partie

Avez-vous des questions ?

Instructions conditionnelles : SI..ALORS et CAS..PARMI (et variantes)

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

Instructions répétitives : TANTQUE et REPETER (et variantes)

Structure algorithmique avancée

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

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)

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

Problèmes liés aux instructions répétitives (ou boucles)

PrésentationInstructions 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.

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

Les structures répétitives ou boucles

PrésentationInstructions 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.

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

EXEMPLE, Agenda journalier (énoncé) :

Instruction : TANTQUEInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-3-2

Agenda

journalier

Instructions répétitives : TANTQUE et REPETER (et variantes)

Instruction : TANTQUE

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

EXEMPLE, Agenda journalier (énoncé) :

Instruction : REPETER..JUSQU’AInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-3-3

Agenda

journalier

Instructions répétitives : TANTQUE et REPETER (et variantes)

Instruction : REPETER..JUSQU’A

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

EXEMPLE, Agenda journalier (énoncé) :

Instruction : REPETER..TANTQUEInstructions 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é.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-3-4

Agenda

journalier

Instructions répétitives : TANTQUE et REPETER (et variantes)

Instruction : REPETER..TANTQUE

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

EXEMPLE, Calendrier mensuel (énoncé) :

Sortie de boucle prématuréeInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-3-5

Calendrier

mensuel

Instructions répétitives : TANTQUE et REPETER (et variantes)

Sortie de boucle prématurée

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

EXEMPLE, Machine à sous (énoncé) :

Persistance dans une boucleInstructions répétitives : TANTQUE et REPETER (et variantes)

L'objectif de ce programme est de simuler le comportement aléatoire d'une machine à sous.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-3-6

Machine à

sous

Instructions répétitives : TANTQUE et REPETER (et variantes)

Persistance dans une boucle

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

EXEMPLE, Agenda journalier évolué (énoncé) :

Boucles imbriquéesInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-3-7

Agenda

journalier

évolué

Instructions répétitives : TANTQUE et REPETER (et variantes)

Boucles imbriquées

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

Pause-réflexion sur cette 2ème partie

Avez-vous des questions ?

Instructions répétitives : TANTQUE et REPETER (et variantes)

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

Instructions répétitives : POUR

Structure algorithmique avancée

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

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

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

Les structures répétitives ou boucles

PrésentationInstructions 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).

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

Les structures répétitives ou boucles (suite)

PrésentationInstructions 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.

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

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

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-2

Agenda

journalier

Instructions répétitives : POUR

Instruction : POUR

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

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

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-3

Calendrier

mensuel

Instructions répétitives : POUR

Sortie de boucle prématurée

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

EXEMPLE, Machine à sous (énoncé) :

Persistance dans une boucleInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-4

Machine à

sous

Instructions répétitives : POUR

Persistance dans une boucle

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

EXEMPLE, Agenda journalier plusieurs jours (énoncé) :

Boucle à bornes variablesInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-5

Agenda

journalier

plusieurs jours

Instructions répétitives : POUR

Boucle à bornes variables

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

EXEMPLE, Calcul de la monnaie en euro (énoncé) :

Boucle à pas variableInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-6

Calcul de la

monnaie en

euro

Instructions répétitives : POUR

Boucle à pas variable

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

EXEMPLE, Tables de multiplication complètes (énoncé) :

Boucles à bornes fixesInstructions répétitives : POUR

L'objectif de ce programme est d'afficher les tables de multiplication de 0 à 10.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-7

Tables de

multiplication

Instructions répétitives : POUR

Boucles à bornes fixes

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

EXEMPLE, Affichage d'une droite en diagonale (énoncé) :

Boucles à bornes imbriquéesInstructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-4-8

Droite en

diagonale

Instructions répétitives : POUR

Boucles à bornes imbriquées

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

Pause-réflexion sur cette 3ème partie

Avez-vous des questions ?

Instructions répétitives : POUR

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

Instructions de rupture de séquences imbriquées

Structure algorithmique avancée

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

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

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

EXEMPLE, Nombre de jours par mois (énoncé) :

Problème résolu 1Instructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-5-1

Nombre de

jours par mois

Instructions de rupture de séquences imbriquées

Problème résolu 1

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

EXEMPLE, Extraction de la valeur entière (énoncé) :

Problème résolu 2Instructions 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.

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-5-2

Extraction de

la valeur

entière

Instructions de rupture de séquences imbriquées

Problème résolu 2

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

EXEMPLE, Points d'un mot au Scrabble (énoncé) :

Problème résolu 3Instructions 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

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

Algorithmique

Annexes :

(références)

Sous chapitre

2-5-3

Points d'un

mot au

Scrabble

Instructions de rupture de séquences imbriquées

Problème résolu 3

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

EXEMPLE, Temps de remontée d'un plongeur (énoncé) :

Problème résolu 4Instructions 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.

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

Algorithmique

Annexes:

(références)

Sous chapitre

2-5-4

Temps de

remontée d'un

plongeur

Instructions de rupture de séquences imbriquées

Problème résolu 4

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

Pause-réflexion sur cette 4ème partie

Avez-vous des questions ?

Instructions de rupture de séquences imbriquées

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

TANTQUE et REPETERrépétition

TANTQUE et REPETERrépétition

POURrépétition avec

déclaration, initialisation, borne et pas

POURré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..SINONsélection

avec alternative

SI..ALORS..SINONsélection

avec alternative

Structure algorithmique avancée

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

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

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

Félicitations

Vous avez suivi avec succès le module de cours n°2

Structure algorithmique avancée

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

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