26
Cours n 1- Algorithmes de base [email protected], [email protected] Polytech’Sorbonne 2018-2019 (Polytech’Sorbonne) cours n 1 2018-2019 1 / 23

Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Cours n◦1- Algorithmes de base

[email protected], [email protected]

Polytech’Sorbonne

2018-2019

(Polytech’Sorbonne) cours n◦1 2018-2019 1 / 23

Page 2: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

1 Les algorithmesIntroductionConstruction d’un algorithmeStructures de base d’un algorithmeTester un algorithmeExemples

(Polytech’Sorbonne) cours n◦1 2018-2019 2 / 23

Page 3: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Pourquoi faire appel à des algorithmes ?

Pour automatiser des tâchesExemples :

Métier à tisserMéthode de calcul à la main d’une divisionRecette de cuisine...

(Polytech’Sorbonne) cours n◦1 2018-2019 3 / 23

Page 4: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Qu’est-ce qu’un algorithme ?

DéfinitionUn algorithme est un ensemble ordonné d’instructions simples permettantde résoudre un problème.

(Polytech’Sorbonne) cours n◦1 2018-2019 4 / 23

Page 5: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Remarques

Un algorithme nécessite :Des objets sur lesquels travailler,Un langage non ambigu,Des spécifications (description de l’algorithme).

Il n’existe généralement pas un unique algorithme pour traiter un problème.

(Polytech’Sorbonne) cours n◦1 2018-2019 5 / 23

Page 6: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Historique

3ème siècle avant JC Livre VII des Eléments d’Euclide

Détermination du plus grand diviseur communentre deux nombres : PGCD(12,8)=4

8ème siècle après JC Al-Khawarizmi : Méthodes de résolutiond’équations. Son nom est à l’origine du mot "algorithme".

(Polytech’Sorbonne) cours n◦1 2018-2019 6 / 23

Page 7: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

1 Les algorithmesIntroductionConstruction d’unalgorithmeStructures de base d’unalgorithmeTester un algorithmeExemples

(Polytech’Sorbonne) cours n◦1 2018-2019 7 / 23

Page 8: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Construction d’un algorithme

Pour chaque problème, il vous est demandé de définir clairement :Les éventuelles données d’entrée du problème en précisant leurs typeset leur rôle,les éventuelles données de sortie du problème en précisant leurs types,les différentes instructions permettant d’obtenir les données de sortiesà partir des données d’entrée.

(Polytech’Sorbonne) cours n◦1 2018-2019 8 / 23

Page 9: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Exemple

Algorithme qui détermine le prix d’entrée dans un musée (les mineurspayent moitié prix)

DonnéesDonnées d’entrée : age (entier)

{age du client}Données de sortie : tarif (décimal)

{prix de l’entrée}

InstructionsSi age < 18 Alorstarif ← 4

Sinontarif ← 8

Fin SiRenvoyer tarif

(Polytech’Sorbonne) cours n◦1 2018-2019 9 / 23

Page 10: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Exemple

Algorithme qui détermine le prix d’entrée dans un musée (les mineurspayent moitié prix)

DonnéesDonnées d’entrée : age (entier)

{age du client}Données de sortie : tarif (décimal)

{prix de l’entrée}

InstructionsSi age < 18 Alorstarif ← 4

Sinontarif ← 8

Fin SiRenvoyer tarif

(Polytech’Sorbonne) cours n◦1 2018-2019 9 / 23

Page 11: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Exemple

Algorithme qui détermine le prix d’entrée dans un musée (les mineurspayent moitié prix)

DonnéesDonnées d’entrée : age (entier)

{age du client}Données de sortie : tarif (décimal)

{prix de l’entrée}

InstructionsSi age < 18 Alors

tarif ← 4Sinon

tarif ← 8Fin SiRenvoyer tarif

(Polytech’Sorbonne) cours n◦1 2018-2019 9 / 23

Page 12: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

1 Les algorithmesIntroductionConstruction d’unalgorithmeStructures de base d’unalgorithmeTester un algorithmeExemples

(Polytech’Sorbonne) cours n◦1 2018-2019 10 / 23

Page 13: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Instructions élémentaires

Opérations arithmétiques de base (+, −, ×, /, mod, ...)Affectation de valeurs (ex : x ← 2)Afficher, lireStructures conditionnellesStructures répétitives

(Polytech’Sorbonne) cours n◦1 2018-2019 11 / 23

Page 14: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Structures conditionnelles 1/2

condition

Action F Action V

vraiefausse

Si condition AlorsAction V

SinonAction F

Fin Si

Un exempleSi age < 18 Alors

tarif ← 4Sinon

tarif ← 8Fin Si

(Polytech’Sorbonne) cours n◦1 2018-2019 12 / 23

Page 15: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Structures conditionnelles 2/2

condition

Action V

vraie

fausse

Si condition AlorsAction V

Fin Si

Un exempleSi age < 18 AlorsAfficher "Réduction de50%"

Fin Si

(Polytech’Sorbonne) cours n◦1 2018-2019 13 / 23

Page 16: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Structures à choix multiple

Selon le cas

Cas 1

Cas 2

Cas n

défaut

Action 1

Action 2

Action n

Actionpar défaut

Selon le casCas 1 : Action 1Cas 2 : Action 2...Cas n : Action nDéfaut : Action par défaut

Fin Selon

Un exempleSelon valeur de age

0..6 : tarif ← 07..18 : tarif ← 4Défaut : tarif ← 8

Fin Selon

(Polytech’Sorbonne) cours n◦1 2018-2019 14 / 23

Page 17: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Structures répétitives 1/2

Répéter tant quecondition

Actions

vraie

fausse

Tant que condition FaireActions

Fin Tant que

Les actions peuvent ne pasêtre exécutées si la conditionest fausse au départ.

Un exempleTant que tickets>0 Faire

vendre un ticketFin Tant que

(Polytech’Sorbonne) cours n◦1 2018-2019 15 / 23

Page 18: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Structures répétitives 2/2

Actions

Répéter tant quecondition

vraie

fausse

RépéterActions

Tant que condition

Les actions sont exécutées aumoins une fois.

Un exempleRépéter

vendre un ticketTant que ticket>0

(Polytech’Sorbonne) cours n◦1 2018-2019 16 / 23

Page 19: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Structures itératives

Répéter n fois

Actions

compteur>n

Pour i = 1 à n FaireActions

Fin Pour

On connaît le nombre d’itérations àl’avance.

Un exemplePour i = 1 à nbre_guide FaireSi place pour guide i>0 AlorsAfficher "Il reste des placespour le guide i"

Fin SiFin Pour

(Polytech’Sorbonne) cours n◦1 2018-2019 17 / 23

Page 20: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

1 Les algorithmesIntroductionConstruction d’unalgorithmeStructures de base d’unalgorithmeTester un algorithmeExemples

(Polytech’Sorbonne) cours n◦1 2018-2019 18 / 23

Page 21: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Jeu d’essais

Faire fonctionner l’algorithme avec des valeurs.Traiter tous les cas possibles.En particulier les cas pouvant nécessaiter à traitement spécifique.

(Polytech’Sorbonne) cours n◦1 2018-2019 19 / 23

Page 22: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Un exemple :Calcul de la valeur absolue d’un nombre

DonnéesDonnées d’entrée : X (entier)

{nombre dont on veut calculer la valeur absolue}Données de sortie : Val_abs (entier)

{valeur absolue de X}

InstructionsSi X ≥ 0 Alors

Val_abs ← XSinon

Val_abs ← -XFin SiRenvoyer Val_abs

Jeu d’essaisX ← un entier négatifX ← un entier positifX ← 0

(Polytech’Sorbonne) cours n◦1 2018-2019 20 / 23

Page 23: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Un exemple :Calcul de la valeur absolue d’un nombre

DonnéesDonnées d’entrée : X (entier)

{nombre dont on veut calculer la valeur absolue}Données de sortie : Val_abs (entier)

{valeur absolue de X}

InstructionsSi X ≥ 0 Alors

Val_abs ← XSinon

Val_abs ← -XFin SiRenvoyer Val_abs

Jeu d’essaisX ← un entier négatifX ← un entier positifX ← 0

(Polytech’Sorbonne) cours n◦1 2018-2019 20 / 23

Page 24: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

1 Les algorithmesIntroductionConstruction d’unalgorithmeStructures de base d’unalgorithmeTester un algorithmeExemples

(Polytech’Sorbonne) cours n◦1 2018-2019 21 / 23

Page 25: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Exemple 1

Un colis est conforme si ses trois dimensions (L× l × h avec h ≤ l ≤ L)vérifient les conditions suivantes :

Un rectangle de 10cm × 7cm doit pouvoir s’inscrire dans une face ducolis,L+ l + h ≤ 100 cm,L ≤ 60cm.

ExerciceEcrire l’algorithme permettant de savoir si un colis est conforme ou non.

(Polytech’Sorbonne) cours n◦1 2018-2019 22 / 23

Page 26: Cours n°1- Algorithmes de basepagesperso.lip6.fr/Maria.Gradinariu/IMG/pdf/cours-1.pdf · d’équations.Sonnomestàl’originedumot"algorithme". (Polytech’Sorbonne) cours n 1 2018-2019

Exemple 2Que fait cet algo ?

Données d’entrée :X, tableau à 2 dimension de n×n réels,v, vecteur de n réels

Données de sortie : s, vecteur de n réelsPour i variant de 1 à n Faire

s(i) ← 0Pour j variant de 1 à n Faire

s(i) ← s(i) + X(i,j).v(j)Fin Pour

Fin PourRenvoyer s

(Polytech’Sorbonne) cours n◦1 2018-2019 23 / 23