Approximation de π à la Monte Carlo avec geogebra



Documents pareils
point On obtient ainsi le ou les points d inter- entre deux objets».

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Comment sélectionner des sommets, des arêtes et des faces avec Blender?

Guide d utilisation 2012

Cours 7 : Utilisation de modules sous python

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Introduction à la présentation graphique avec xmgrace

iil est désormais courant de trouver sur Internet un document

Utilisation de l éditeur.

Fiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5

GeoGebra & Microsoft Office 631

Styler un document sous OpenOffice 4.0

Arborescence et création de dossiers

KWISATZ MODULE PRESTASHOP

Réalisation de cartes vectorielles avec Word

SFEA. Ce document peut être imprimé au format livret. Guide utilisateurs du site "Se Former en Alsace"

Leçon N 5 PICASA Généralités

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Guide de l utilisateur Communauté virtuelle de pratique en gestion intégrée des risques

FORMATION MULTIMÉDIA LVE

Conférence Web sur demande de TELUS Guide de référence rapide

Création d un site web avec Nvu

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF

Silhouette Studio Leçon N 2

Manuel de mise en page de l intérieur de votre ouvrage

L espace de travail de Photoshop

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

NAVIGATION SUR INTERNET EXPLORER

Allegroupe. Système de gestion des paiements préautorisés

Correction des Travaux Pratiques Organiser son espace de travail

VOS PREMIERS PAS AVEC TRACENPOCHE

TSTI 2D CH X : Exemples de lois à densité 1

Notes pour l utilisation d Expression Web

Création de maquette web

Assistant d e tablissement de Tableaux

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

Visual Taxe 4.1.0B04 minimum

Publipostage avec Open Office Writer et Open Office Calc (v.3)

Statistiques à une variable

Créer une trace, obtenir son fichier gpx et sa carte Ou Afficher un fichier trace GPX

J'installe FastStone Image Viewer. Installer le logiciel Découvrir Paramétrer

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Chp. 4. Minimisation d une fonction d une variable

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Antidote et vos logiciels

Utilisation du logiciel GALAAD

Atelier Le gestionnaire de fichier

Saisie de données dans plusieurs tables

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

EXCEL TUTORIEL 2012/2013

Fiche n 14 : Import / Export avec PlanningPME

Créer des documents interactifs

Mon aide mémoire traitement de texte (Microsoft Word)

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

EVOLUTION 7.1 Déroulement DREAM INFO 1 Dossier 23 Ciel Gestion Commerciale.

Les 1 er pas sur. Guide d utilisation

Le poste de travail, les dossiers et les fichiers

ASG-IIS Intranet ASG système d'informations. Manuel d'utilisation pour utilisateurs PC Caddie Advanced Version 2011a. 1 Advanced Version 2011a

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

But de cette présentation. Bac à sable (Sandbox) Principes. Principes. Hainaut P

NOTICE D' UTILISATION CAMWORKS FRAISAGE. Luc Vallée Lycée Blaise Pascal Segré

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Internet Marketing Manager

Présentation... 2 Mise en place Fiche Article... 2 Commande Client... 3 Commande Fournisseur Gestion de la contremarque...

1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6

Publipostage avec Open Office Writer et Open Office Calc

PROGRAMMATION D UN ENREGISTREUR NUMÉRIQUE PERSONNEL (ENP) À PARTIR D ILLICO WEB. Guide d utilisation v 1.0

Prise en main rapide

LES DECIMALES DE π BERNARD EGGER

1. Ouvrir Internet Explorer Faire défiler une page Naviguer dans un site Internet Changer d adresse Internet (URL) 2

Groupe Eyrolles, 2003, ISBN : X

INTRODUCTION. Pour réaliser une pièce sur Charlyrobot, il faut le faire en trois étapes :

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

3 : créer de nouveaux onglets dans Netvibes Cliquer sur le bouton «+» et renommer le nouvel onglet (par exemple Encyclopédies en ligne)

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

Campagnes d ings v.1.6

MUNIA Manuel de l'utilisateur

Correction du baccalauréat ES/L Métropole 20 juin 2014

Prestation électronique de service pour la transmission d un bilan de phosphore

SOMMAIRE 1 INTRODUCTION 3 2 CONTACTER VOTRE SUPPORT 3 3 ESPACE DE GESTION DES CARTES 4 4 CONFIGURER UNE CARTE 5

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

1 Presentation du bandeau. 2 Principe de création d un projet : C2 industrialisation Apprendre Gantt project Ver 2.6 planifier

Création et utilisation de formulaire pdf

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

Signature plume. Matériel : une plume ou un crayon. Ouvrir PhotoFiltre. Ouvrir votre image plume dans PhotoFiltre

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

FileZilla. Sauvegarder son site Guppy à l aide de. Sommaire:

Utiliser le service de messagerie électronique de Google : gmail (1)

Premiers pas avec SES-Pegase (version 7.0) SES : Un Système Expert pour l analyse Statistique des données. Premiers pas avec SES-Pegase 1

ht t p: // w w w.m e di al o gis.c om E - Ma i l : m ed i a l og i m e di a l o g i s. c om Envoi des SMS

Créer sa première base de données Access Partie 3/4 - Création d un formulaire

Transcription:

Approximation de π à la Monte Carlo avec geogebra Groupe mathématiques dynamiques Irem de Lyon 1 Objectifs du document 1. Illustrer une méthode algorithmique classique. 2. Éléments de formation sur geogebra : scripts avec du python, scripts avec du javascript. 2 Préparation de la «toile de fond» On commence par définir le carré de sommets A( 1 ; 1), B(1 ; 1), C(1 ; 1), D( 1 ; 1) : puis le cercle de centre O(0 ; 0) et de rayon 1 : Avec un clic droit sur le carré, sélectionner «propriétés» et rendre le fond transparent : On obtient cette magnifique figure : On définit également un curseur j (que l on affichera dans l écran graphique comme curseur par un clic droit sur l objet) et un curseur nbp ointsin. On règle le curseur j pour des valeurs entières : 1

L objectif est ensuite de tirer j points au hasard dans le carré et de compter le nombre nbp ointsin de ces points qui se trouvent dans le disque. 4 nbp ointsin L affichage du rapport j semble approcher un nombre bien connu On crée pour cet affichage une variable rapport : La fenêtre d algèbre étant vite alourdie par la création de nombreux points dans la suite, on peut fermer cette fenêtre algèbre et afficher le rapport dans la fenêtre grahique à l aide de l outil «insérer texte» : Le premier mot «rapport» est un simple texte (tapé au clavier), le second (encadré) est obtenu à partir du menu déroulant «objets» et affichera la valeur de la variable gg rapport. 3 Avec python On associe maintenant un script python au curseur j (onglet events de la fenêtre python). Jean-Manuel Mény IREM de LYON 2

1 NbPoints=ggbApplet. getvalue ( j ) 2 import random 3 Script 1 PythonGG 4 absc =[random. uniform ( 1, 1) f o r i in range ( NbPoints ) ] 5 ordo=[random. uniform ( 1, 1) f o r i in range ( NbPoints ) ] 6 7 8 f o r i in range ( NbPoints ) : 9 ggbapplet. evalcommand( A_{ +s t r ( i )+ }=( +s t r ( absc [ i ] )+, +s t r ( ordo [ i ] )+ ) ) 10 $ [ A_{ +s t r ( i )+ } ]. l a b e l _ v i s i b l e=false 11 f o r i in range ( NbPoints,2000) : 12 i f ggbapplet. i s D e f i n e d ( A_{ +s t r ( i )+ } ) : 13 ggbapplet. evalcommand( Delete (A_{ +s t r ( i )+ }) ) 14 15 cpt=0 16 f o r i in range ( NbPoints ) : 17 i f absc [ i ]**2+ ordo [ i ]**2<1 : 18 cpt+=1 19 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i )+ }, red ] ) Jean-Manuel Mény IREM de LYON 3

20 e l s e : 21 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i )+ }, green ] ) 22 23 24 ggbapplet. evalcommand( nbpointsin= +s t r ( cpt ) ) Décryptons un peu ce code : 1 NbPoints=ggbApplet. getvalue ( j ) Script 2 PythonGG NbPoints est une variable python dans laquelle on stocke la valeur actuelle du curseur j. 1 import random 2 Script 3 PythonGG 3 absc =[random. uniform ( 1, 1) f o r i in range ( NbPoints ) ] 4 ordo=[random. uniform ( 1, 1) f o r i in range ( NbPoints ) ] On importe la bibliothèque random de python et on tire au hasard deux listes de taille NbPoints constituées de nombres tirés au hasard, suivant la loi uniforme, dans l intervalle [ 1 ; 1]. 1 f o r i in range ( NbPoints ) : Script 4 PythonGG 2 ggbapplet. evalcommand( A_{ +s t r ( i )+ }=( +s t r ( absc [ i ] )+, +s t r ( ordo [ i ] )+ ) ) 3 $ [ A_{ +s t r ( i )+ } ]. l a b e l _ v i s i b l e=false 4 f o r i in range ( NbPoints,2000) : 5 i f ggbapplet. i s D e f i n e d ( A_{ +s t r ( i )+ } ) : 6 ggbapplet. evalcommand( Delete (A_{ +s t r ( i )+ }) ) On définit les points A 0, A 1,, A NbPoints 1, l abscisse de A i étant l élément d indice i de la liste absc et l ordonnée de ce même point l élement d indice i de la liste ordo. On demande ensuite que les étiquettes des points ne soient pas visibles dans la fenêtre graphique de geogebra. On détruit enfin tous les points dont l indice est NbPoints (on a fixé arbitrairement le nombre maximal de points à 2000 lors de la création du curseur j). 1 cpt=0 2 f o r i in range ( NbPoints ) : 3 i f absc [ i ]**2+ ordo [ i ]**2<1 : 4 cpt+=1 Script 5 PythonGG 5 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i )+ }, red ] ) 6 e l s e : 7 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i )+ }, green ] ) 8 9 10 ggbapplet. evalcommand( nbpointsin= +s t r ( cpt ) ) Dans cette partie, on compte le nombre de points à l intérieur du cercle (dans ce cas, le point est affiché en rouge). Puis la variable geogebra nbpointsin est mise à jour par l instruction ggbapplet.evalcommand( nbpointsin= +str(cpt)). En tirant le curseur j vers la droite, on obtient par exemple : Jean-Manuel Mény IREM de LYON 4

3.1 Variante avec un bouton 3.1 Variante avec un bouton Plutôt qu une modification du nombre de points par un curseur, on peut décider d attribuer ce rôle à un bouton. On ajoute donc un bouton : On renseigne ici uniquement le champ légende en inscrivant par exemple le texte «Ajout de points». On associe un script python à ce bouton (le script associé au curseur j de la partie précédente n est plus utile ici) : Jean-Manuel Mény IREM de LYON 5

3.1 Variante avec un bouton 1 ajout=10 2 NbPoints=ggbApplet. getvalue ( j ) 3 ggbapplet. evalcommand( j= +s t r ( NbPoints+ajout ) ) 4 NbPoints=ggbApplet. getvalue ( j ) 5 6 import random 7 Script 6 PythonGG 8 absc =[random. uniform ( 1, 1) f o r i in range ( NbPoints ) ] 9 ordo=[random. uniform ( 1, 1) f o r i in range ( NbPoints ) ] 10 11 12 f o r i in range ( NbPoints ) : 13 ggbapplet. evalcommand( A_{ +s t r ( i )+ }=( +s t r ( absc [ i ] )+, +s t r ( ordo [ i ] )+ ) ) 14 $ [ A_{ +s t r ( i )+ } ]. l a b e l _ v i s i b l e=false 15 16 17 cpt=0 18 f o r i in range ( NbPoints ) : 19 i f absc [ i ]**2+ ordo [ i ]**2<1 : 20 cpt+=1 Jean-Manuel Mény IREM de LYON 6

3.1 Variante avec un bouton 21 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i )+ }, red ] ) 22 e l s e : 23 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i )+ }, green ] ) 24 25 26 ggbapplet. evalcommand( nbpointsin= +s t r ( cpt ) ) Un click sur le bouton ajoutera alors une série de ajout points. Il peut dans ce cas être intéressant d ajouter un bouton de remise à zéro. Pour cette remise à zéro, on pourra associer à ce second bouton le script suivant : 1 NbPoints=ggbApplet. getvalue ( j ) 2 Script 7 PythonGG 3 4 f o r i in range ( NbPoints ) : 5 i f ggbapplet. i s D e f i n e d ( A_{ +s t r ( i )+ } ) : 6 ggbapplet. evalcommand( Delete (A_{ +s t r ( i )+ }) ) 7 8 9 10 ggbapplet. evalcommand( j=0 ) 11 ggbapplet. evalcommand( nbpointsin=0 ) Jean-Manuel Mény IREM de LYON 7

3.2 Variante avec le bouton 3.2 Variante avec le bouton Un défaut de la version précédente est qu en cliquant sur le bouton, on n ajoute pas vraiment des points : on recommence le tirage à 0. Avec la version suivante, on ajoute des points à ceux existants (le bouton de remise à zéro reste inchangé) : 1 ajout=20 2 NbPoints=ggbApplet. getvalue ( j ) 3 Script 8 PythonGG 4 5 import random 6 7 absc=random. uniform ( 1, 1) 8 ordo=random. uniform ( 1, 1) 9 cpt=ggbapplet. getvalue ( nbpointsin ) 10 11 f o r i in range ( ajout ) : 12 i n d i c e p o i n t=i n t ( NbPoints+i ) 13 ggbapplet. evalcommand( A_{ +s t r ( i n d i c e p o i n t )+ }=( +s t r ( absc )+, +s t r ( ordo )+ ) ) 14 $ [ A_{ +s t r ( i n d i c e p o i n t )+ } ]. l a b e l _ v i s i b l e=false 15 i f absc**2+ordo**2<1 : 16 cpt+=1 17 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i n d i c e p o i n t )+ }, red ] ) 18 e l s e : 19 ggbapplet. evalcommand( SetColor [A_{ +s t r ( i n d i c e p o i n t )+ }, green ] ) Jean-Manuel Mény IREM de LYON 8

20 absc=random. uniform ( 1, 1) 21 ordo=random. uniform ( 1, 1) 22 23 NbPoints=NbPoints+a j o u t 24 ggbapplet. evalcommand( j= +s t r ( NbPoints ) ) 25 ggbapplet. evalcommand( nbpointsin= +s t r ( cpt ) ) 4 Avec JavaScript On se replace à la fin du paragraphe 2. Comme dans le paragraphe 3, nous allons associer un script au curseur j, mais ce script sera cette fois un script javascript. Pour cela, clic droit sur l objet j, sélectionner propriétés, aller à l onglet script et sélectionner javascript. Jean-Manuel Mény IREM de LYON 9

4.1 Variante avec un bouton On entre alors le script javascript suivant : 1 NbPoints=ggbApplet. getvalue ( j ) ; 2 3 var absc=2*math. random ( ) 1 ; 4 var ordo=2*math. random ( ) 1 ; 5 var cpt=0 ; 6 7 f o r ( var i =0 ;i<nbpoints ; i++){ Script 9 JavaScript 8 ggbapplet. evalcommand( A_{ + i + }=( +absc+, +ordo+ ) ) ; 9 ggbapplet. evalcommand( ShowLabel [A_{ + i + }, f a l s e ] ) ; 10 i f ( absc * absc+ordo*ordo <1) { 11 cpt++ ; 12 ggbapplet. evalcommand( SetColor [A_{ + i + }, red ] ) ; 13 } 14 e l s e ggbapplet. evalcommand( SetColor [A_{ + i + }, green ] ) ; 15 absc=2*math. random ( ) 1 ; 16 ordo=2*math. random ( ) 1 ; 17 } 18 ggbapplet. evalcommand( nbpointsin= +cpt ) ; 19 20 f o r ( var i=nbpoints ; i <2000 ; i++){ 21 i f ( ggbapplet. i s D e f i n e d ( A_{ + i + } ) ) ggbapplet. evalcommand( Delete (A_{ + i + }) ) ; 22 } 4.1 Variante avec un bouton Comme en 3.1, on peut ajouter des points en associant un script javascript à un bouton. Créons comme en 3.1 deux boutons «Ajout de points» et «Remise à zéro». Par un clic droit sur ces boutons, on choisit propriétés, onglet script, onglet par clic. Jean-Manuel Mény IREM de LYON 10

4.1 Variante avec un bouton On associe au bouton 1 de légende «Ajout de points» le script : 1 var ajout =50 ; 2 3 var NbPoints=ggbApplet. getvalue ( j ) ; 4 NbPoints=NbPoints+ajout ; 5 ggbapplet. evalcommand( j= +NbPoints ) 6 7 var absc=2*math. random ( ) 1 ; 8 var ordo=2*math. random ( ) 1 ; 9 var cpt=0 ; 10 11 f o r ( var i =0 ;i<nbpoints ; i++){ Script 10 JavaScript 12 ggbapplet. evalcommand( A_{ + i + }=( +absc+, +ordo+ ) ) ; 13 ggbapplet. evalcommand( ShowLabel [A_{ + i + }, f a l s e ] ) ; 14 i f ( absc * absc+ordo*ordo <1) { 15 cpt++ ; 16 ggbapplet. evalcommand( SetColor [A_{ + i + }, red ] ) ; 17 } 18 e l s e ggbapplet. evalcommand( SetColor [A_{ + i + }, green ] ) ; 19 absc=2*math. random ( ) 1 ; 20 ordo=2*math. random ( ) 1 ; 21 } 22 ggbapplet. evalcommand( nbpointsin= +cpt ) ; On associe au bouton 2 de légende «Remise à zéro» le script : 1 var NbPoints=ggbApplet. getvalue ( j ) ; 2 3 f o r ( var i =0 ; i<nbpoints ; i++){ Script 11 JavaScript 4 i f ( ggbapplet. i s D e f i n e d ( A_{ + i + } ) ) ggbapplet. evalcommand( Delete (A_{ + i + }) ) ; 5 } 6 7 8 ggbapplet. evalcommand( j =0 ) ; 9 ggbapplet. evalcommand( nbpointsin =0 ) ; Jean-Manuel Mény IREM de LYON 11

4.2 Variante sur la version bouton. 4.2 Variante sur la version bouton. La version précédente a le défaut de recréer tous les points à chaque appel plutôt que de réellement ajouter des points. On peut modifier le script associé au bouton 1 de la façon suivante pour éviter cette création à partir de 0 : 1 var ajout =50 ; 2 3 var NbPoints=ggbApplet. getvalue ( j ) ; 4 Script 12 JavaScript 5 6 var absc=2*math. random ( ) 1 ; 7 var ordo=2*math. random ( ) 1 ; 8 var cpt=ggbapplet. getvalue ( nbpointsin ) ; 9 10 f o r ( var i=0 ; i<ajout ; i++){ 11 var i n d i c e p o i n t=i+nbpoints ; 12 ggbapplet. evalcommand( A_{ + i n d i c e p o i n t + }=( +absc+, +ordo+ ) ) ; 13 ggbapplet. evalcommand( ShowLabel [A_{ + i n d i c e p o i n t + }, f a l s e ] ) ; 14 i f ( absc * absc+ordo*ordo <1) { 15 cpt++ ; 16 ggbapplet. evalcommand( SetColor [A_{ + i n d i c e p o i n t + }, red ] ) ; 17 } 18 e l s e ggbapplet. evalcommand( SetColor [A_{ + i n d i c e p o i n t + }, green ] ) ; 19 absc=2*math. random ( ) 1 ; 20 ordo=2*math. random ( ) 1 ; 21 } 22 ggbapplet. evalcommand( nbpointsin= +cpt ) ; 23 24 NbPoints=NbPoints+a j o u t ; 25 ggbapplet. evalcommand( j= +NbPoints ) ; Jean-Manuel Mény IREM de LYON 12

5 Avec des commandes geogebra en ligne de saisie. Toutes les commandes suivantes sont à saisir dans la ligne de saisie. On utilise les commandes suivantes (voir wiki.geogebra.org pour les détails de ces commandes) : Séquence[ <Expression e>, <Variable k>, <de a>, <à b> ] AléaUniforme[ <Min>, <Max> ] Elément[ <Liste>, <Position n> ] GarderSi[ <Condition>, <Liste> ] Longueur[ <Objet> ] 1. On commence par définir la variable nbpoints en entrant par exemple 1 nbpoints=3 Script 13 ScriptGG Cet entier sera le nombre de points tirés au hasard dans notre carré d aire 4. On pourra l afficher en tant que curseur et régler de façon appropriée ce curseur. 2. On définit ensuite la liste des abscisses des points : Script 14 ScriptGG 1 Labsc=Séquence [ AléaUniforme [ 1, 1 ], j, 1, nbpoints ] 3. On définit de même la liste des ordonnées des points : Script 15 ScriptGG 1 Lordo=Séquence [ AléaUniforme [ 1, 1 ], j, 1, nbpoints ] 4. On définit ensuite la liste des points : Script 16 ScriptGG 1 Lpoints= Séquence [ ( Elément [ Labsc, j ], Elément [ Lordo, j ] ), j, 1, nbpoints ] Par un clic droit sur cette liste, on désactive l affichage de ces points. 5. On définit ensuite la liste des points se trouvant à l intérieur (strictement ici) du disque : Script 17 ScriptGG 1 Lin= GarderSi [ x (A) ^2 + y (A) ^2 < 1, A, Lpoints ] Par un clic droit sur cette liste puis propriétés, on affiche en rouge les points de cette liste. 6. On définit ensuite les points qui se trouve à l extérieur (au sens large ici) : Script 18 ScriptGG 1 Lout= GarderSi [ x (A) ^2 + y (A) ^2 >= 1, A, Lpoints ] Par un clic droit sur cette liste puis propriétés, on affiche en vert les points de cette liste. 7. On définit ensuite la variable retournant le nombre de points strictement à l intérieur du disque : 1 nbpointsin=longueur [ Lin ] Script 19 ScriptGG 8. On définit enfin le rapport : 1 rapport= 4* nbpointsin / nbpoints Script 20 ScriptGG 9. Il n y a plus qu à modifier la valeur de nbpoints Jean-Manuel Mény IREM de LYON 13

6 ScriptGG 6.1 Version 1 Après avoir défini la toile de fond, on peut créer deux boutons. Un bouton intitulé Réinitialisation qui permettra une remise à 0 et associé au script geogebra suivant (par clic) : 1 nbpoints=0 Script 21 ScriptGG 2 Labsc=Séquence [ AléaUniforme [ 1, 1 ], j, 1, nbpoints ] 3 Lordo=Séquence [ AléaUniforme [ 1, 1 ], j, 1, nbpoints ] 4 Lpoints= Séquence [ ( Elément [ Labsc, j ], Elément [ Lordo, j ] ), j, 1, nbpoints ] 5 Lin= GarderSi [ x (A) ^2 + y (A) ^2 < 1, A, Lpoints ] 6 Lout= GarderSi [ x (A) ^2 + y (A) ^2 >= 1, A, Lpoints ] 7 nbpointsin=0 8 rapport=0 1 ajout=50 et un bouton Ajout de points associé au script suivant (par clic) : 2 nbpoints=nbpoints+a j o u t Script 22 ScriptGG 3 Labsc=Séquence [ AléaUniforme [ 1, 1 ], j, 1, nbpoints ] 4 Lordo=Séquence [ AléaUniforme [ 1, 1 ], j, 1, nbpoints ] 5 Lpoints= Séquence [ ( Elément [ Labsc, j ], Elément [ Lordo, j ] ), j, 1, nbpoints ] 6 Lin= GarderSi [ x (A) ^2 + y (A) ^2 < 1, A, Lpoints ] 7 SoitCouleur [ Lin, rouge ] 8 Lout= GarderSi [ x (A) ^2 + y (A) ^2 >= 1, A, Lpoints ] 9 SoitCouleur [ Lout, vert ] 10 nbpointsin=longueur [ Lin ] 11 rapport= 4* nbpointsin / nbpoints 6.2 Version 2 Pour laisser le choix à l utilisateur du nombre de points à ajouter, on utilise l outil «insérer un champ de texte» Le bouton d intialisation et réinialisation sera associé au script suivant : 1 ajout=0 2 nbpoints=0 3 Script 23 ScriptGG 4 Lpoints= Séquence [ ( AléaUniforme [ 1, 1 ], AléaUniforme [ 1, 1 ] ), j, 1, nbpoints ] 5 Lin= GarderSi [ x (A) ^2 + y (A) ^2 < 1, A, Lpoints ] 6 Lout= GarderSi [ x (A) ^2 + y (A) ^2 >= 1, A, Lpoints ] 7 nbpointsin=0 8 rapport=0 Jean-Manuel Mény IREM de LYON 14

6.2 Version 2 et le bouton «ajout de points» au script suivant : Script 24 ScriptGG 1 Lpoints= Union [ CopierObjetLibre [ Lpoints ], Séquence [ ( AléaUniforme [ 1, 1 ], AléaUniforme [ 1, 1 ] ), j, nbpoints +1, nbpoints+ajout ] ] 2 Lin= GarderSi [ x (A) ^2 + y (A) ^2 < 1, A, Lpoints ] 3 SoitCouleur [ Lin, rouge ] 4 Lout= GarderSi [ x (A) ^2 + y (A) ^2 >= 1, A, Lpoints ] 5 SoitCouleur [ Lout, vert ] 6 7 nbpoints=longueur [ Lpoints ] 8 nbpointsin=longueur [ Lin ] 9 rapport= 4* nbpointsin / nbpoints Jean-Manuel Mény IREM de LYON 15