86
Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions... ORME 2.12 : Algorithmique en seconde avec Python Olivier Brébant Jeudi 22 mars 2012 / Marseille

ORME 2.12 : Algorithmique en seconde avec Python

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

ORME 2.12 : Algorithmique en seconde avecPython

Olivier Brébant

Jeudi 22 mars 2012 / Marseille

Page 2: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Objectif de l’intervention

Petite présentation d’un langage de programmation pour mettreen œuvre l’algorithmique au lycée : PYTHON.

1 Un exemple simple en classe de seconde

2 Un projet un peu plus ambitieux en AP

3 Côté technique : installation, versions...

Page 3: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Objectif de l’intervention

Petite présentation d’un langage de programmation pour mettreen œuvre l’algorithmique au lycée : PYTHON.

1 Un exemple simple en classe de seconde

2 Un projet un peu plus ambitieux en AP

3 Côté technique : installation, versions...

Page 4: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Objectif de l’intervention

Petite présentation d’un langage de programmation pour mettreen œuvre l’algorithmique au lycée : PYTHON.

1 Un exemple simple en classe de seconde

2 Un projet un peu plus ambitieux en AP

3 Côté technique : installation, versions...

Page 5: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Objectif de l’intervention

Petite présentation d’un langage de programmation pour mettreen œuvre l’algorithmique au lycée : PYTHON.

1 Un exemple simple en classe de seconde

2 Un projet un peu plus ambitieux en AP

3 Côté technique : installation, versions...

Page 6: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Partie 1*** Un exemple simple en classe de seconde ***

Page 7: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithme et résolution d’inéquation

Détails du déroulement d’une séance (1h) au lycée :

Niveau : seconde générale,Lieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : utilisation préalable de l’algorithmique, dutableur et de la machine à calculer dans diversessituations.

Page 8: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithme et résolution d’inéquation

Détails du déroulement d’une séance (1h) au lycée :

Niveau : seconde générale,

Lieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : utilisation préalable de l’algorithmique, dutableur et de la machine à calculer dans diversessituations.

Page 9: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithme et résolution d’inéquation

Détails du déroulement d’une séance (1h) au lycée :

Niveau : seconde générale,Lieu : salle info (20 postes), demi-groupe (18 élèves)

Connaissances : utilisation préalable de l’algorithmique, dutableur et de la machine à calculer dans diversessituations.

Page 10: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithme et résolution d’inéquation

Détails du déroulement d’une séance (1h) au lycée :

Niveau : seconde générale,Lieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : utilisation préalable de l’algorithmique, dutableur et de la machine à calculer dans diversessituations.

Page 11: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithme et résolution d’inéquation

Un problème :Pouvez-vous trouver un (ou des) entier(s) n tels que :

11+

12+

13+ · · ·+ 1

n> 10

Les consignes :

Travail personnel pendant 5 minutesTous les coups sont permis !(Stylo, machine à calculer, ordinateur + logiciels divers...)Une exception : pas d’accès à l’Internet...

Page 12: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithme et résolution d’inéquation

Un problème :Pouvez-vous trouver un (ou des) entier(s) n tels que :

11+

12+

13+ · · ·+ 1

n> 10

Les consignes :

Travail personnel pendant 5 minutesTous les coups sont permis !(Stylo, machine à calculer, ordinateur + logiciels divers...)Une exception : pas d’accès à l’Internet...

Page 13: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

a) Besoin d’explication pour les « · · · » de la formule

Exemple

calculs machine du type : 1 +12+

13+

110≈ · · ·

b) Tentatives de certains à la main !

Exemple

1 +12+

13= 1 +

36+

26=

66+

56=

116

< 10

Page 14: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

a) Besoin d’explication pour les « · · · » de la formule

Exemple

calculs machine du type : 1 +12+

13+

110≈ · · ·

b) Tentatives de certains à la main !

Exemple

1 +12+

13= 1 +

36+

26=

66+

56=

116

< 10

Page 15: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

a) Besoin d’explication pour les « · · · » de la formule

Exemple

calculs machine du type : 1 +12+

13+

110≈ · · ·

b) Tentatives de certains à la main !

Exemple

1 +12+

13= 1 +

36+

26=

66+

56=

116

< 10

Page 16: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

a) Besoin d’explication pour les « · · · » de la formule

Exemple

calculs machine du type : 1 +12+

13+

110≈ · · ·

b) Tentatives de certains à la main !

Exemple

1 +12+

13= 1 +

36+

26=

66+

56=

116

< 10

Page 17: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

c) Tentatives à la machine :

Exemple

Page 18: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

c) Tentatives à la machine :

Exemple

Page 19: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

c) Tentatives à la machine :

Exemple

Page 20: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

d) Utilisation du tableur :

Exemple

Commentaire : on finit par trouver, mais c’est assez laborieux,surtout pour trouver le plus petit entier qui marche...

Page 21: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

d) Utilisation du tableur :

Exemple

Commentaire : on finit par trouver, mais c’est assez laborieux,surtout pour trouver le plus petit entier qui marche...

Page 22: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

d) Utilisation du tableur :

Exemple

Commentaire : on finit par trouver, mais c’est assez laborieux,surtout pour trouver le plus petit entier qui marche...

Page 23: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 24: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 25: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et n

TANT QUE S<10 FAIRE :AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 26: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 27: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à n

AJOUTER 1/n à SAFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 28: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 29: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 30: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 31: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Déroulement de la séance

e) Utilisation d’un algorithme :

ExempleEn français En python

METTRE 0 dans S et nTANT QUE S<10 FAIRE :

AJOUTER 1 à nAJOUTER 1/n à S

AFFICHER n et S

S,n = 0,0while S<10 :

n = n + 1S = S + 1/n

print("S>10 dès que n =", n)

Résultat : on trouve n > 12367

Page 32: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Partie 2*** Un projet un peu plus ambitieux en AP ***

Page 33: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Faire des dessins avec Python

Faire des dessins c’est :

Important en mathématiques

Difficile en informatique !

→ sur MIAMMise a disposition d’un module pour dessiner "repere_math.py"

accompagné de sa documentation Exemple

Page 34: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Faire des dessins avec Python

Faire des dessins c’est :

Important en mathématiques

Difficile en informatique !

→ sur MIAMMise a disposition d’un module pour dessiner "repere_math.py"

accompagné de sa documentation Exemple

Page 35: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Faire des dessins avec Python

Faire des dessins c’est :

Important en mathématiques

Difficile en informatique !

→ sur MIAMMise a disposition d’un module pour dessiner "repere_math.py"

accompagné de sa documentation Exemple

Page 36: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Faire des dessins avec Python

Faire des dessins c’est :

Important en mathématiques

Difficile en informatique !

→ sur MIAMMise a disposition d’un module pour dessiner "repere_math.py"

accompagné de sa documentation Exemple

Page 37: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Faire des dessins avec Python

Faire des dessins c’est :

Important en mathématiques

Difficile en informatique !

→ sur MIAMMise a disposition d’un module pour dessiner "repere_math.py"

accompagné de sa documentation Exemple

Page 38: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithmique en accompagnement personnalisé

Détaillons le déroulement d’une séquence (3x1h) au lycée :

Niveau : seconde générale, accompagnementpersonnaliséLieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : boucles et tests en algorithmique

Une problématique :Simulation sur ordinateur de la propagation d’un feux de forêt...

Page 39: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithmique en accompagnement personnalisé

Détaillons le déroulement d’une séquence (3x1h) au lycée :

Niveau : seconde générale, accompagnementpersonnalisé

Lieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : boucles et tests en algorithmique

Une problématique :Simulation sur ordinateur de la propagation d’un feux de forêt...

Page 40: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithmique en accompagnement personnalisé

Détaillons le déroulement d’une séquence (3x1h) au lycée :

Niveau : seconde générale, accompagnementpersonnaliséLieu : salle info (20 postes), demi-groupe (18 élèves)

Connaissances : boucles et tests en algorithmique

Une problématique :Simulation sur ordinateur de la propagation d’un feux de forêt...

Page 41: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithmique en accompagnement personnalisé

Détaillons le déroulement d’une séquence (3x1h) au lycée :

Niveau : seconde générale, accompagnementpersonnaliséLieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : boucles et tests en algorithmique

Une problématique :Simulation sur ordinateur de la propagation d’un feux de forêt...

Page 42: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Algorithmique en accompagnement personnalisé

Détaillons le déroulement d’une séquence (3x1h) au lycée :

Niveau : seconde générale, accompagnementpersonnaliséLieu : salle info (20 postes), demi-groupe (18 élèves)Connaissances : boucles et tests en algorithmique

Une problématique :Simulation sur ordinateur de la propagation d’un feux de forêt...

Page 43: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Le principe est inspiré des automates cellulaires.On modélise une forêt par une grande matrice, et chaque casepeut se trouver dans l’un des états suivants :

état blanc : zone incombustible (rocher, rivière, ...)état vert : zone combustible (arbres, végétaux, ...)état rouge : zone en feuétat noir : zone en cendre (donc incombustible !)

Page 44: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Le principe est inspiré des automates cellulaires.On modélise une forêt par une grande matrice, et chaque casepeut se trouver dans l’un des états suivants :

état blanc : zone incombustible (rocher, rivière, ...)

état vert : zone combustible (arbres, végétaux, ...)état rouge : zone en feuétat noir : zone en cendre (donc incombustible !)

Page 45: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Le principe est inspiré des automates cellulaires.On modélise une forêt par une grande matrice, et chaque casepeut se trouver dans l’un des états suivants :

état blanc : zone incombustible (rocher, rivière, ...)état vert : zone combustible (arbres, végétaux, ...)

état rouge : zone en feuétat noir : zone en cendre (donc incombustible !)

Page 46: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Le principe est inspiré des automates cellulaires.On modélise une forêt par une grande matrice, et chaque casepeut se trouver dans l’un des états suivants :

état blanc : zone incombustible (rocher, rivière, ...)état vert : zone combustible (arbres, végétaux, ...)état rouge : zone en feu

état noir : zone en cendre (donc incombustible !)

Page 47: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Le principe est inspiré des automates cellulaires.On modélise une forêt par une grande matrice, et chaque casepeut se trouver dans l’un des états suivants :

état blanc : zone incombustible (rocher, rivière, ...)état vert : zone combustible (arbres, végétaux, ...)état rouge : zone en feuétat noir : zone en cendre (donc incombustible !)

Page 48: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC

BLANCNOIR

NOIRROUGE

NOIR

VERT

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 49: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC →

BLANC

NOIR →

NOIR

ROUGE →

NOIR

VERT →

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 50: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC → BLANCNOIR →

NOIR

ROUGE →

NOIR

VERT →

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 51: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC → BLANCNOIR → NOIRROUGE →

NOIR

VERT →

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 52: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC → BLANCNOIR → NOIRROUGE → NOIR

VERT →

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 53: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC → BLANCNOIR → NOIRROUGE → NOIR

VERT →

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 54: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Etape 0

−→

Etape 1

Les règles de propagations

BLANC → BLANCNOIR → NOIRROUGE → NOIR

VERT →

{ROUGE si au moins un voisin ROUGEVERT sinon

Page 55: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 56: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50

Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 57: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGE

Afficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 58: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableau

Tant qu’il y a au moins une case en feu faire :Pour chaque case faire :

Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 59: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 60: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :

Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 61: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIR

Si VERT et "au moins un voisin ROUGE" alors ROUGEAfficher le tableau

Page 62: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 63: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 1)

Un premier jet avec un langage "évolué" pour modéliser notresimulation :

Créer et initialiser un tableau de 50x50Mettre une case en ROUGEAfficher le tableauTant qu’il y a au moins une case en feu faire :

Pour chaque case faire :Si ROUGE alors NOIRSi VERT et "au moins un voisin ROUGE" alors ROUGE

Afficher le tableau

Page 64: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 2 et 3)

Découpage du travail en tâches élémentaires(procédures/fonctions)

Initialisation aléatoire d’un tableau de 50x50 Code python

Affichage du tableau Code python

Tester si présence d’un voisin ROUGE Code python

Boucle principale Code python

Page 65: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 2 et 3)

Découpage du travail en tâches élémentaires(procédures/fonctions)

Initialisation aléatoire d’un tableau de 50x50 Code python

Affichage du tableau Code python

Tester si présence d’un voisin ROUGE Code python

Boucle principale Code python

Page 66: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 2 et 3)

Découpage du travail en tâches élémentaires(procédures/fonctions)

Initialisation aléatoire d’un tableau de 50x50 Code python

Affichage du tableau Code python

Tester si présence d’un voisin ROUGE Code python

Boucle principale Code python

Page 67: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 2 et 3)

Découpage du travail en tâches élémentaires(procédures/fonctions)

Initialisation aléatoire d’un tableau de 50x50 Code python

Affichage du tableau Code python

Tester si présence d’un voisin ROUGE Code python

Boucle principale Code python

Page 68: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Simulation de feux de forêt (séance 3)

Page 69: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Partie 3*** Côté technique : installation, versions... ***

Page 70: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

2 versions

Un problème à résoudre : 2 versions pas tout à fait compatibles

Les (anciennes) versions 2.xLes (nouvelles) versions 3.x

Les principales différence pour nous :Action Python 2.x Pyhton 3.x1. Afficher print "message" print("message")2. Demander raw_input("Saisir... :") input("Saisir... :")3. Diviser (/) division entière division décimale

Page 71: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

2 versions

Un problème à résoudre : 2 versions pas tout à fait compatibles

Les (anciennes) versions 2.xLes (nouvelles) versions 3.x

Les principales différence pour nous :Action Python 2.x Pyhton 3.x1. Afficher print "message" print("message")2. Demander raw_input("Saisir... :") input("Saisir... :")3. Diviser (/) division entière division décimale

Page 72: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

2 versions

Un problème à résoudre : 2 versions pas tout à fait compatibles

Les (anciennes) versions 2.xLes (nouvelles) versions 3.x

Les principales différence pour nous :

Action Python 2.x Pyhton 3.x1. Afficher print "message" print("message")2. Demander raw_input("Saisir... :") input("Saisir... :")3. Diviser (/) division entière division décimale

Page 73: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

2 versions

Un problème à résoudre : 2 versions pas tout à fait compatibles

Les (anciennes) versions 2.xLes (nouvelles) versions 3.x

Les principales différence pour nous :Action Python 2.x Pyhton 3.x1. Afficher print "message" print("message")

2. Demander raw_input("Saisir... :") input("Saisir... :")3. Diviser (/) division entière division décimale

Page 74: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

2 versions

Un problème à résoudre : 2 versions pas tout à fait compatibles

Les (anciennes) versions 2.xLes (nouvelles) versions 3.x

Les principales différence pour nous :Action Python 2.x Pyhton 3.x1. Afficher print "message" print("message")2. Demander raw_input("Saisir... :") input("Saisir... :")

3. Diviser (/) division entière division décimale

Page 75: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

2 versions

Un problème à résoudre : 2 versions pas tout à fait compatibles

Les (anciennes) versions 2.xLes (nouvelles) versions 3.x

Les principales différence pour nous :Action Python 2.x Pyhton 3.x1. Afficher print "message" print("message")2. Demander raw_input("Saisir... :") input("Saisir... :")3. Diviser (/) division entière division décimale

Page 76: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Notre choix au lycée...

La version 3.2 installée (celle que l’on utilise...) : IDLEhttp://www.python.org/download/

La version 2.5 portable (en cas de besoin...) : PyScripterhttp://www.portablepython.com/wiki/

PortablePython1.1Py2.5.4

Page 77: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Documentation

Beaucoup de choses sur le net dont :

Livres :Apprendre à programmer avec Python (Gérard Swinnen)Dive into Python (Mark Pilgrim)Tutoriel Python (Guido Van Rossum)

Sites :Le site du zéro...Le site d’Henri Garreta (Fac Luminy)France IOI

Page 78: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Documentation

Beaucoup de choses sur le net dont :Livres :

Apprendre à programmer avec Python (Gérard Swinnen)Dive into Python (Mark Pilgrim)Tutoriel Python (Guido Van Rossum)

Sites :Le site du zéro...Le site d’Henri Garreta (Fac Luminy)France IOI

Page 79: ORME 2.12 : Algorithmique en seconde avec Python

Un exemple simple en classe de seconde Un projet un peu plus ambitieux en AP Côté technique : installation, versions...

Documentation

Beaucoup de choses sur le net dont :Livres :

Apprendre à programmer avec Python (Gérard Swinnen)Dive into Python (Mark Pilgrim)Tutoriel Python (Guido Van Rossum)

Sites :Le site du zéro...Le site d’Henri Garreta (Fac Luminy)France IOI

Page 80: ORME 2.12 : Algorithmique en seconde avec Python

Appendice

Page 81: ORME 2.12 : Algorithmique en seconde avec Python

Initialisation du tableau en Python

Initialisation aléatoire d’un tableau de 50x50 avec une densitéde végétation de l’ordre de 80% :

def init_tableau() :. . . . . for i in range(50*50*9/10) :. . . . . . . .c = random.randint(0,49) On tire une col. au hasard. . . . . . . . l = random.randint(0,49) On tire une ligne au hasard. . . . . . . . tab[c,l] = 3 On met du vert dans la case

Retour

Page 82: ORME 2.12 : Algorithmique en seconde avec Python

Affichage du tableau en Python

Affichage du tableau avec les bonnes couleurs :

def aff_tableau() :. . fen.clear() On efface la fenêtre. . for c in range(50) : On parcourt toutes les cases. . . . . for l in range(50) :. . . . . . . .case = tab[c,l]. . . . . . . . if case == 0 : coul = ’white’. . . . . . . .elif case == 1 : coul = ’gray’. . . . . . . .elif case == 2 : coul = ’red’. . . . . . . .elif case == 3 : coul = ’dark green’. . . . . . . . fen.trace_point(c,l,couleur=coul, taille = 3) On dessine

Retour

Page 83: ORME 2.12 : Algorithmique en seconde avec Python

Test des voisins en Python

Test des cases voisines (Nord, Sud, Est, Ouest) :

def voisin(tableau,col,lig) :. . for dx,dy in ((-1,0),(1,0),(0,-1),(0,1)) : On parcourt les voisins. . . . . if tableau[col+dx,lig+dy]==2 :. . . . . . . . return True On retourne VRAI si voisin rouge. . return False On retourne FAUX dans la cas contraire

Retour

Page 84: ORME 2.12 : Algorithmique en seconde avec Python

La boucle principale en Python

C’est finalement une partie un peu technique :

def evolution() :. . tab_temp = tab.copy() On fait une copie du tableau. . for c in range(50) : On parcourt toutes les cases. . . . . for l in range(50) :. . . . . . . . if tab_temp[c,l]==2 : tab[c,l]=1 Si Rouge alors Noir. . . . . . . . if tab_temp[c,l]==3 and voisin(tab_temp,c,l) : tab[c,l]=2. . afficher() On affiche le tableau. . fen.after(100,evolution) Après 100 ms, on recommence...

Retour

Page 85: ORME 2.12 : Algorithmique en seconde avec Python

Un extrait de la documentation

Retour

Page 86: ORME 2.12 : Algorithmique en seconde avec Python

Un extrait du site MIAM

Retour