ORME 2.12 : Algorithmique en seconde avec Python

Preview:

Citation preview

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

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...

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...

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...

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...

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 ***

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.

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.

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.

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.

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...

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...

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

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

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

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

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

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

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

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...

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...

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...

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

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

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

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

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

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

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

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

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

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 ***

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

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

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

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

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

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...

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...

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...

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...

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...

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 !)

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 !)

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 !)

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 !)

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 !)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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... ***

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

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

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

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

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

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

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

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

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

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

Appendice

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

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

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

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

Un extrait de la documentation

Retour

Un extrait du site MIAM

Retour

Recommended