50

(Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

  • Upload
    others

  • View
    4

  • Download
    2

Embed Size (px)

Citation preview

Page 1: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

1

(Initiation à la) programmation(et à l'algorithmique)

Semaine 8

G. [email protected]

Université Paul Valéry Montpellier 3

Licence AES parcours Misahs

cours 2012-2013

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 2: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

2

Partie 0 : contrôle continu 2 →voir correction sur site

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 3: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

3

Partie 1 : correction des

exercices à faire pour

aujourd'hui

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 4: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

4

Exercice

Écrire une fonction qui, étant donnée une date, calcule le nombre dejours qui s'est écoulé depuis le premier janvier de l'année de la date

Rappel : nous avons déjà écrit une fonction dont l'en-tête est

def nombre_jours( mois, annee ):

# retourne le nombre de jours dans le mois

# en fonction de l'annee

Analyse du problème : données, résultats, ...

Ecriture de l'en-tête.

Ré�exion sur comment résoudre le problème : analyse d'unexemple

Ecriture d'un exemple.

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 5: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

4

Exercice

Écrire une fonction qui, étant donnée une date, calcule le nombre dejours qui s'est écoulé depuis le premier janvier de l'année de la date

Rappel : nous avons déjà écrit une fonction dont l'en-tête est

def nombre_jours( mois, annee ):

# retourne le nombre de jours dans le mois

# en fonction de l'annee

Analyse du problème : données, résultats, ...

Ecriture de l'en-tête.

Ré�exion sur comment résoudre le problème : analyse d'unexemple

Ecriture d'un exemple.

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 6: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

4

Exercice

Écrire une fonction qui, étant donnée une date, calcule le nombre dejours qui s'est écoulé depuis le premier janvier de l'année de la date

Rappel : nous avons déjà écrit une fonction dont l'en-tête est

def nombre_jours( mois, annee ):

# retourne le nombre de jours dans le mois

# en fonction de l'annee

Analyse du problème : données, résultats, ...

Ecriture de l'en-tête.

Ré�exion sur comment résoudre le problème : analyse d'unexemple

Ecriture d'un exemple.

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 7: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

5

def nb_jours_depuis_1_janvier(jour, mois, annee):# donne le nombre de jours écoulés depuis le début de l'année# (date comprise)# = donne le numéro du jour dans l'année

nb = 0m = 1while m < mois :

nb = nb + nombre_jours( m, annee)m = m + 1

return nb + jour

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 8: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

6

Exercice

Écrire une fonction qui, étant données deux années, calcule lenombre de jours entre le premier janvier de la première année et le31 décembre de l'année précédent la deuxième année donnée.

Rappel : nous avons déjà écrit une fonction dont l'en-tête est

def est_annee_bissextile( annee ):

# retourne True si annee désigne une année bissextile,

# retourne False sinon.

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 9: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

7

Une solution

def nb_jours_entre_deux_annees( annee1, annee2):# Calcule le nombre de jours entre le 1er janvier annee1# et 31 décembre (annee2 -1)

annee = annee1nbj = 0while annee < annee2:

if est_annee_bissextile( annee ):nbj = nbj + 366

else:nbj = nbj + 365

annee = annee + 1return nbj

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 10: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

8

Exercice

Écrire une fonction qui étant donnée deux dates, calcule le nombrede jours entre les deux dates sans compter le jour de la deuxièmedate.

def nb_jours_entre_deux_dates( j1, m1, a1, j2, m2, a2):# Calcule le nombre de jours entre la date j1/m1/a1# et la veille de j2/m2/a2

nbj1 = nb_jours_depuis_1_janvier( j1,m1,a1)nbj2 = nb_jours_depuis_1_janvier( j2,m2,a2)nbj3 = nb_jours_entre_deux_annees( a1, a2)return nbj2-nbj1+nbj3

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 11: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

8

Exercice

Écrire une fonction qui étant donnée deux dates, calcule le nombrede jours entre les deux dates sans compter le jour de la deuxièmedate.

def nb_jours_entre_deux_dates( j1, m1, a1, j2, m2, a2):# Calcule le nombre de jours entre la date j1/m1/a1# et la veille de j2/m2/a2

nbj1 = nb_jours_depuis_1_janvier( j1,m1,a1)nbj2 = nb_jours_depuis_1_janvier( j2,m2,a2)nbj3 = nb_jours_entre_deux_annees( a1, a2)return nbj2-nbj1+nbj3

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 12: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

9

Calendrier perpétuel

Application : calendrier perpétuel

Écrire une fonction qui étant donnée une date, donne le numéro dejour de la semaine correspondant (1 pour lundi, ...).

voir �chier calendrier_perpetuel.py

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 13: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

9

Calendrier perpétuel

Application : calendrier perpétuel

Écrire une fonction qui étant donnée une date, donne le numéro dejour de la semaine correspondant (1 pour lundi, ...).

voir �chier calendrier_perpetuel.py

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 14: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

10

Partie 2 : LISTES

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 15: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

11

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 16: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

11

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 17: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

11

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 18: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

11

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 19: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

11

Introduction

Objectifs

Pouvoir agglomérer dans une seule entité, un ensemble ordonné dedonnées.

Explications :

"dans une seule entité" : en particulier, dans une seulevariable.

"un ensemble ordonné" : il y a un premier élément, undeuxième, etc...

Exemples :

une date ;

les données d'un client, d'un salarié ;

une suite de nombres ;

. . .

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 20: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

12

Introduction

Remarques

La notion d'objet qui sera abordée au second semestres'avérera plus intéressante pour la gestion de certainsensembles de données.

Il existe, en Python, d'autres types permettant de structurerdes données.Notamment les tuples à ne pas confondre avec les listes.

Chaque langage propose ses propres types de structuration(plus ou moins agréables).

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 21: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

12

Introduction

Remarques

La notion d'objet qui sera abordée au second semestres'avérera plus intéressante pour la gestion de certainsensembles de données.

Il existe, en Python, d'autres types permettant de structurerdes données.Notamment les tuples à ne pas confondre avec les listes.

Chaque langage propose ses propres types de structuration(plus ou moins agréables).

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 22: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

12

Introduction

Remarques

La notion d'objet qui sera abordée au second semestres'avérera plus intéressante pour la gestion de certainsensembles de données.

Il existe, en Python, d'autres types permettant de structurerdes données.Notamment les tuples à ne pas confondre avec les listes.

Chaque langage propose ses propres types de structuration(plus ou moins agréables).

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 23: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

13

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 24: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

13

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 25: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

13

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 26: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

13

Exemples de listes

date = [ 1, 10, 2010 ]

Virgule = séparateur.

Les crochets sont obligatoires.

Si oubliés, c'est comme si on mettait des parenthèses : on

dé�nit alors un tuple.

Exemples : retour de fonction !

Tuple 6= Liste

Les listes sont modi�ables. Pas les tuples.

semaine = ["lundi", "mardi", "mercredi", "jeudi",

"vendredi", "samedi", "dimanche"]

Pas de ... dans les dé�nitions !

personnes = [ ["Tom", "Sawyer", 15],

["Huckleberry", "Finn", 17] ]

prix = [ 12.3 , 0.4, 13.2, 4.1, 12, 13.5]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 27: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 28: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 29: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 30: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 31: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 32: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 33: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

14

Premières opérations sur les listes

Constructeur : [ , , ...]

Liste vide : [ ]

Longueur d'une liste : fonction len

Accès à un élément

Les éléments d'une liste l sont numérotés de 0 à len(l)-1.Si 0 ≤ i ≤ len(l)− 1, l[i] désigne l'élément en position i

(à l'index i).

Via la notation précédente, il est possible de récupérer lavaleur d'un élément de la liste ou de la modi�er.

>>> l =[ 2, "a", 3.1, 7]

>>> l

[2, 'a', 3.1000000000000001, 7]

>>> l[0]

2

>>> l[2] = "new"

>>> l

[2, 'a', 'new', 7]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 34: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

15

Exercice

Écrire une fonction qui, étant donnée une liste l, a�che sesdi�érents éléments.

def affiche_liste( l ):

# Affiche dans l'ordre les éléments de la liste

i = 0

while i < len( l ):

print( l[i] )

i = i + 1

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 35: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

15

Exercice

Écrire une fonction qui, étant donnée une liste l, a�che sesdi�érents éléments.

def affiche_liste( l ):

# Affiche dans l'ordre les éléments de la liste

i = 0

while i < len( l ):

print( l[i] )

i = i + 1

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 36: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

15

Exercice

Écrire une fonction qui, étant donnée une liste l, a�che sesdi�érents éléments.

def affiche_liste( l ):

# Affiche dans l'ordre les éléments de la liste

i = 0

while i < len( l ):

print( l[i] )

i = i + 1

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 37: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

16

Exercice

Écrire une fonction qui, étant donnée une liste l, récupère la listedans une chaîne de caractères.

def liste2chaine( l ):

# Transforme une liste en chaîne affichable

if l != [] :

s = str( l[0] )

i = 1

while i < len( l ):

s = s + ", " + str( l[i] )

i = i + 1

else:

s = ""

return s

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 38: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

16

Exercice

Écrire une fonction qui, étant donnée une liste l, récupère la listedans une chaîne de caractères.

def liste2chaine( l ):

# Transforme une liste en chaîne affichable

if l != [] :

s = str( l[0] )

i = 1

while i < len( l ):

s = s + ", " + str( l[i] )

i = i + 1

else:

s = ""

return s

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 39: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

16

Exercice

Écrire une fonction qui, étant donnée une liste l, récupère la listedans une chaîne de caractères.

def liste2chaine( l ):

# Transforme une liste en chaîne affichable

if l != [] :

s = str( l[0] )

i = 1

while i < len( l ):

s = s + ", " + str( l[i] )

i = i + 1

else:

s = ""

return s

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 40: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

17

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !La fonction list permet de transformer en liste un itérateur.>>> list( range(3) )

[0, 1, 2]

>>> list( range( 3, 6) )

[3, 4, 5]

>>> list( range(10, 32, 5) )

[10, 15, 20, 25, 30]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 41: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

17

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !

La fonction list permet de transformer en liste un itérateur.>>> list( range(3) )

[0, 1, 2]

>>> list( range( 3, 6) )

[3, 4, 5]

>>> list( range(10, 32, 5) )

[10, 15, 20, 25, 30]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 42: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

17

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !La fonction list permet de transformer en liste un itérateur.

>>> list( range(3) )

[0, 1, 2]

>>> list( range( 3, 6) )

[3, 4, 5]

>>> list( range(10, 32, 5) )

[10, 15, 20, 25, 30]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 43: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

17

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !La fonction list permet de transformer en liste un itérateur.>>> list( range(3) )

[0, 1, 2]

>>> list( range( 3, 6) )

[3, 4, 5]

>>> list( range(10, 32, 5) )

[10, 15, 20, 25, 30]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 44: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

17

La fonction range

range( n ) retourne la liste des entiers de 0 à n-1.range(min, max) retourne la liste des entiers de min à max-1range(min, max, pas) retourne la liste des entiers de la forme

min + k * pas qui sont strictement inférieurs à max.

Remarque :en fait, c'est un itérateur qui est retourné et pas une liste !La fonction list permet de transformer en liste un itérateur.>>> list( range(3) )

[0, 1, 2]

>>> list( range( 3, 6) )

[3, 4, 5]

>>> list( range(10, 32, 5) )

[10, 15, 20, 25, 30]

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 45: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

18

L'instruction for

for i in range(min, max):

instructions

réalise exactement la même chose que :i = min

while i < max:

instructions

i = i + 1

Avantage : plus compact, plus clair.Inconvénient : n'existe pas dans la plupart des autres langages deprogrammation ; plus di�cile à tracer car mécanisme caché.

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 46: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

18

L'instruction for

for i in range(min, max):

instructions

réalise exactement la même chose que :i = min

while i < max:

instructions

i = i + 1

Avantage : plus compact, plus clair.Inconvénient : n'existe pas dans la plupart des autres langages deprogrammation ; plus di�cile à tracer car mécanisme caché.

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 47: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

19

Exemples

def a�che_liste_2( l ):# A�che dans l'ordre les éléments de la liste

for i in range( 0, len( l )):print( l[i] )

def liste2chaine_2( l ):# Transforme une liste en chaîne a�chable

if l == []s = str( l[0] )for i in range( 1, len( l ) ):

s = s + ", " + str( l[i] )else :

s = ""return s

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 48: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

20

Agrandir une liste

Concaténation : +Exemple : [ 2, 1 ] + [2, 6] vaut la liste [2, 1, 2, 6]

Ajout d'un élément dans une liste l :Utiliser la concaténation.

l.append

Exemple : si l vaut [2, 1, 2, 6],

l.append( 10) modi�e en [2, 1, 2, 6,

10].

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 49: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

20

Agrandir une liste

Concaténation : +Exemple : [ 2, 1 ] + [2, 6] vaut la liste [2, 1, 2, 6]

Ajout d'un élément dans une liste l :Utiliser la concaténation.

l.append

Exemple : si l vaut [2, 1, 2, 6],

l.append( 10) modi�e en [2, 1, 2, 6,

10].

[email protected] (Initiation à la) programmation (et à l'algorithmique)

Page 50: (Initiation à la) programmation (et à l'algorithmique ... · 4 Exercice Écrire une fonction qui, étant donnée une date, calcule le nombre de jours qui s'est écoulé depuis le

21

Exercice

A FAIRE et envoyer par mail avant vendredi

Écrire une fonction permettant de saisir une liste d'entiersstrictement positifs au clavier (la saisie d'une valeur négative ounulle provoquera l'arrêt de la saisie).

[email protected] (Initiation à la) programmation (et à l'algorithmique)