Corrigés XCAS Page 1 Avertissement 1) Pour écrire un programme, on ouvre une session Programme (Prg, Nouveau programme). 2) Pour exécuter le programme, on clique sur : 3) Pour ouvrir le tableur sous Tableur, Nouveau tableur. Les formules à entrer sont celles habituelles. Dans la suite, on se contente de donner les programmes (sauf cas particuliers). La démarche "utiliser un tableur" est décrite dans le fichier "corriges tableur". 10 3) On propose : Fonctions input("x =?",x); if (x<=10){v:=100*x} else{v:=750+25*x;}; print("le volume est :",V); volume(x):=if(x<=10){100*x} else{750+25*x}; On l'appelle dans la ligne de commande en tapant par exemple : volume(5). 4) On teste plusieurs valeurs de x et on procède par encadrements successifs pour trouver la valeur de x associée à V = 625. 11 2b) On peut éventuellement écrire un algorithme pour S:=100; for(n:=1;n<=10;n:=n+1){ S:=S+100+2*n;}; print("le capital est :",S); 3) On peut commencer par faire quelques essais en calculant des images, puis procéder par encadrements successifs : input("nombre d années =?",n); S:=100; S:=S+100+2*I;}; print("le capital est :",S); On peut ensuite éventuellement introduire une boucle Tant que : S:=100; while (S<1999) { n:=n+1; S:=S+100+2*n;}; print("nombre d années :",n); 13 4) b) On transcrit l'algorithme en langage x:=-3; x0:=-3; m:=34; while (x<=3) { x:=x+0.1; y:=3*x^2-2*x+1; if(y<m){x0:=x;m:=y;}; }; print("le min paraît être :",m); print("il est atteint en :",x0); 15 2) On peut commencer par faire quelques essais en calculant des images, puis procéder par encadrements successifs : input("nombre d années =?",n); P:=5000; P:=P*0.95;}; print("la population est :",P); On peut ensuite éventuellement introduire une boucle Tant que : P:=5000; while(p>2500){ n:=n+1; P:=P*0.95;}; print("nombre d années :",n); 16 2) b) On peut éventuellement écrire un algorithme pour input("nombre d années =?",n); C:=1000; C:=1.025*C;}; print("le capital est :",C); 3) On utilise le programme précédent en testant plusieurs valeurs de n, et en procédant par encadrements successifs. Prolongement : on peut éventuellement écrire un algorithme avant de le transcrire en langage C:=1000; while(c<2000){ n:=n+1; C:=1.025*C;}; print("nombre d années :",n); 4) On utilise le programme de la question 2) b) en testant plusieurs valeurs de n, et en procédant par encadrements successifs. Prolongement : on peut éventuellement écrire un algorithme avant de le transcrire en langage C:=1000; input("somme à atteindre =?",S); while(c<s){ n:=n+1; C:=1.025*C;}; print("nombre d années :",n);
Corrigés XCAS Page 2 18 6) On transcrit l'algorithme en langage input("précision =?",p); a:=-1;b:=0; while(b-a>p){ m:=(a+b)/2; y:=m^4-4*m-1; if(y>0){a:=m;} else{b:=m;};}; print("la solution est entre ",a," et ",b); Commentaire : Xcas étant un logiciel de calcul formel, les réels a et sont calculés de proche en proche sous forme exacte. Ainsi, en choisissant par exemple une précision de 0,01, Xcas affiche comme résultat : Si on souhaite afficher des valeurs approchées, on remplace la dernière ligne du programme par : print("la solution est entre ",evalf(a)," et ",evalf(b)); 20 3) On peut éventuellement écrire un algorithme pour input("durée en min =?",D); if(d<=120){a:=19.5;b:=22;} else{a:=19.5+0.45*(d-120); B:=22+0.37*(D-120);}; if(d<=180){c:=29;} else{c:=29+0.37*(d-180);}; if(a<=b and A<=C){ print("forfait A pour un montant de ",A);}; if(b<=a and B<=C){ print("forfait B pour un montant de ",B);}; if(c<=a and C<=B){ print("forfait C pour un montant de ",C);}; On a groupé ici les calculs des montants des forfaits A et B pour raccourcir la taille du programme. 4) On utilise le programme précédent en testant plusieurs valeurs de D et en procédant par encadrements successifs. On peut aussi penser à tracer les courbes représentatives des fonctions associées aux différents forfaits. Pour cela, on crée les fonctions forfaita, forfaitb et forfaitc, puis on trace leurs courbes représentatives sur l'intervalle [0 ; 200] : forfaita(d):=if(d<=120){19.5;} else{19.5+0.45*(d-120);}; forfaitb(d):=if(d<=120){22;} else{22+0.37*(d-120);}; forfaitc(d):=if(d<=180){29;} else{29+0.37*(d-180);}; plotfunc(forfaita(x),x=0..200,color=red); plotfunc(forfaitb(x),x=0..200,color=blue); plotfunc(forfaitc(x),x=0..200,color=green); 21 2) On peut éventuellement écrire un algorithme pour input("nombre de SMS =?",n); A:=20; B:=0.15*n; C:=12+0.05*n; if(a<=b and A<=C){ print("forfait A pour un montant de :",A);}; if(b<=a and B<=C){ print("forfait B pour un montant de :",B);}; if(c<=a and C<=B){ print("forfait C pour un montant de :",C);}; 3) On utilise le programme précédent en testant plusieurs valeurs de n et en procédant par encadrements successifs. On peut aussi penser à tracer les représentations graphiques des fonctions forfaita, forfaitb et forfaitc associées aux différents forfaits sur l'intervalle [0 ; 200] : forfaita(n):=20; forfaitb(n):=0.15*n; forfaitc(n):=12+0.05*n; plotfunc(forfaita(x),x=0..200,color=red); plotfunc(forfaitb(x),x=0..200,color=blue); Plotfunc(forfaitC(x),x=0..200,color=green); On peut aussi résoudre des équations. Par exemple : sol:=solve(forfaitb(x)=forfaitc(x),x); print("les forfaits B et C sont égaux pour une consommation de :",sol); 22 2) b) On peut éventuellement écrire un algorithme pour popa:=20000;popb:=80000; while(popa<popb){ n:=n+1;a:=popa;b:=popb; popa:=a*0.9+b*0.2; popb:=a*0.1+b*0.8;}; print("le nombre d années nécessaires est :",n);
Corrigés XCAS Page 3 3) On modifie le programme précédent de façon à obtenir les tailles des populations (popa et popb) des villes A et B en fonction du nombre d'années écoulées (n). La démarche peut être résumée par l'algorithme : Variables : n,i : entier ; popa,popb,a,b : réels ; Début Entrer(n) ; popa 20000 ; popb 80000 ; Pour i allant de 1 à n faire a popa ; b popb ; popa a 0,9+b 0,2 ; popb a 0,1+b 0,8 ; FinPour ; Afficher("la taille de la ville A est ",popa); Afficher("la taille de la ville B est ",popb); Fin. Il se transcrit en langage Xcas par : input("nombre d annees =?",n); popa:=20000;popb:=80000; a:=popa;b:=popb; popa:=a*0.9+b*0.2; popb:=a*0.1+b*0.8;}; print("la taille de la ville A est :",popa); print("la taille de la ville B est :",popb); On teste plusieurs valeurs pour répondre aux questions. Il est aussi possible d'utiliser le tableur d'xcas pour obtenir une représentation graphique de l'évolution des deux populations. Voici la démarche résumée : - dans B2 =B1*0.9+C1*0.2 - dans C2 =B1*0.1+C1*0.8 On recopie ces cellules vers le bas jusqu'à la ligne 32. Il faut ensuite créer les listes des valeurs des colonnes B et C. Pour cela : - dans D0 =(villea:=(b1):(b32)) (cela crée en même temps la liste villea) ; - dans D1 =(villeb:=(c1):(c32)) (cela crée en même temps la liste villeb). 23 3) b) On peut éventuellement écrire un algorithme pour input("masse en kg =?",M); if(m<800){c:=5000+12*m;} else{c:=5000+13.2*m;}; if(m<900){r:=20*m;} else{r:=20*m-100}; if(r>=c){ print("l entreprise réalise des bénéfices");} else{print("l entreprise ne réalise pas de bénéfice");}; On teste plusieurs valeurs de M et on procède par encadrements successifs pour résoudre le problème. On peut aussi penser à tracer les courbes représentatives des fonctions associées aux coûts et aux recettes. Pour cela, on crée les fonctions couts et recettes, puis on trace leurs courbes représentatives sur l'intervalle [0 ; 1000] : couts(m):=if(m<800){5000+12*m;} else{5000+13.2*m;}; recettes(m):=if(m<900){20*m;} else{20*m-100;}; plotfunc(couts(x),x=0..1000,color=red); plotfunc(recettes(x),x=0..1000,color=green); Pour obtenir la représentation graphique de l'évolution des deux villes, on tape dans la ligne de commande : plotlist(villea,affichage=1); plotlist(villeb,affichage=2);
Corrigés XCAS Page 4 Géométrie 26 3) c) On peut éventuellement écrire un algorithme pour a:=10; input("n =?",n); a:=sqrt((a-2)^2+4);}; print("l aire est :",a^2); Commentaire : Xcas est un logiciel de calcul formel, le réel a est calculé de proche en proche sous forme exacte. Ainsi, en choisissant comme entrée 3, Xcas affiche comme résultat : Si on souhaite afficher une valeur approchée, on remplace la dernière ligne du programme par : print("l aire est :",evalf(a^2)); 4) On utilise le programme de la question précédente et on teste à l'aide de quelques valeurs. 28 5) On peut éventuellement écrire un algorithme pour résumer la démarche du calcul de l'aire noircie totale à chaque étape avant de le transcrire en langage input("n =?",n); N:=1; a:=8; A:=16*sqrt(3); for(i:=2;i<=n;i:=i+1){ N:=N*3; a:=a/2; A:=A+N*a^2*sqrt(3)/4;}; print("l aire noircie totale est :",simplify(a)); Xcas est un logiciel de calcul formel. Le résultat affiché est la valeur exacte simplifiée de l'aire noircie totale. On peut tester plusieurs valeurs. Puis on peut éventuellement introduire une boucle Tant que : n:=1; N:=1; a:=8; A:=16*sqrt(3); while (A<0.9*64*sqrt(3)){ n:=n+1; N:=N*3; a:=a/2; A:=A+N*a^2*sqrt(3)/4;}; print("le nombre d étapes est :",n); 30 2) On peut éventuellement écrire un algorithme pour c:=(xb-xa)^2+(yb-ya)^2; b:=(xc-xa)^2+(yc-ya)^2; a:=(xb-xc)^2+(yb-yc)^2; if(a==b and a==c){ print("abc triangle équilatéral"); print("son périmètre est :",3*sqrt(a)); print("son aire est :",a*sqrt(3)/4);} else{print("abc non équilatéral");}; 31 2) On peut éventuellement écrire un algorithme pour ou xi:=(xa+xc)/2; yi:=(ya+yc)/2; xj:=(xb+xd)/2; yj:=(yb+yd)/2; if(xi==xj and yi==yj){ print("abcd parallélogramme");} else{print("abcd non parallélogramme");}; a:=(xb-xa)^2+(yb-ya)^2; b:=(xc-xb)^2+(yc-yb)^2; c:=(xd-xc)^2+(yd-yc)^2; d:=(xd-xa)^2+(yd-ya)^2; if(a==c and b==d){ print("abcd parallélogramme");} else{print("abcd non parallélogramme");}; 32 2) On peut éventuellement écrire un algorithme pour a:=(xb-xa)^2+(yb-ya)^2; b:=(xc-xb)^2+(yc-yb)^2; c:=(xd-xc)^2+(yd-yc)^2; d:=(xd-xa)^2+(yd-ya)^2; E:=(xC-xA)^2+(yC-yA)^2; if(a==c and b==d and a==b and E=a+b){ print("abcd est un carré"); print("son périmètre est :",4*sqrt(a)); print("son aire est :",a);} else{print("abcd n est pas un carré");}; Remarque : la lettre minuscule e désigne exp(1). 33 2) On peut éventuellement écrire un algorithme pour a:=(xb-xa)^2+(yb-ya)^2; b:=(xc-xb)^2+(yc-yb)^2; c:=(xd-xc)^2+(yd-yc)^2; d:=(xd-xa)^2+(yd-ya)^2; E:=(xC-xA)^2+(yC-yA)^2; if(a==c and b==d and a==b){ print("abcd est un losange");} else{print("abcd n est pas un losange");}; if(a==c and b==d and E=a+b){ print("abcd est un rectangle");} else{print("abcd n est pas un rectangle");}; if(a==c and b==d and a==b and E=a+b){ print("abcd est un carré");} else{print("abcd n est pas un carré");}; Remarque : la lettre minuscule e désigne exp(1).
Corrigés XCAS Page 5 35 2) On peut éventuellement écrire un algorithme pour if(xa==xb){ print("l équation est x = ",xa);} else{ m:=(yb-ya)/(xb-xa); p:=ya-m*xa; print("l équation est y= mx + p"); print("où m vaut :",m); print("et p vaut :",p);}; 36 3) On peut éventuellement écrire un algorithme pour input("a =? ",a); input("b =? ",b); input("c =? ",c); input("d =? ",d); if(a==c){if(b==d){ print("les droites sont confondues");} else{print("les droites sont strictement parallèles");}} else{x0:=(d-b)/(a-c); y0:=a*x0+b; print("les droites sont sécantes au point de coordonnées (x0;y0)"); print("où x0 vaut :",x0); print("et y0 vaut :",y0);}; 37 2) On peut éventuellement écrire un algorithme pour if(xa==xb and xa==xc){ print("les points sont alignés");} else{if(xa!=xb and xa!=xc){ if((xc-xa)*(yb-ya)==(xb-xa)*(yc-ya)) {print("les points sont alignés");} else{print("les points ne sont pas alignés");}} else{print("les points ne sont pas alignés");};}; 38 2) On peut éventuellement écrire un algorithme pour input("a =? ",a); input("b =? ",b); input("c =? ",c); input("d =? ",d); input("e =? ",E); input("f =? ",f); if(a*e-b*d!=0){ print("le système admet un couple solution unique (x;y)"); print("où x vaut :",(c*e-b*f)/(a*e-b*d)); print("et y vaut :",(a*f-d*c)/(a*e-b*d));} else{print("le système n admet pas de solution unique");}; Remarque : la lettre minuscule e désigne exp(1). Complément : Xcas sait résoudre des systèmes linéaires. Par exemple pour la question 3a) : linsolve([2x+3y=7,3x-y=5],[x,y]) 40 2) On peut éventuellement écrire un algorithme pour input("xu =? ",xu); input("yu =? ",yu); input("xv =? ",xv); input("yv =? ",yv); if(xu*yv==xv*yu){ print("les vecteurs sont colinéaires"); print("on a v=k*u avec k égal à :"); if(xu!=0){print(xv/xu);} else{print(yv/yu);}} else{print("les vecteurs ne sont pas colinéaires");}; 41 2) On peut éventuellement écrire un algorithme pour résumer la démarche avant de la transcrire en langage if((xb-xa)*(yd-yc)==(xd-xc)*(yb-ya)){ print("(ab) et (CD) sont parallèles");} else{print("(ab) et (CD) ne sont pas parallèles");}; 42 2) On peut éventuellement écrire un algorithme pour if(xb-xa==xc-xd and yb-ya==yc-yd){ print("abcd parallélogramme");} else{print("abcd non parallélogramme");}; 43 2) On peut éventuellement écrire un algorithme pour if((xb-xa)*(yc-ya)==(xc-xa)*(yb-ya)){ print("les points sont alignés");} else{print("les points ne sont pas alignés");};
Corrigés XCAS Page 6 Statistiques et probabilités 44 A) 2) On peut éventuellement écrire un algorithme pour input("note1 =?",note1); input("note2 =?",note2); m:=(2*note1+3*note2)/5; print("la moyenne est :",m); Commentaire : Xcas est un logiciel de calcul formel, le réel m est affiché sous forme fractionnaire. Ainsi, en choisissant comme entrées 10 et 11, Xcas affiche comme résultat : Si on souhaite afficher une valeur décimale, on remplace la dernière ligne du programme par : print("la moyenne est :",evalf(m)); 3) On teste quelques valeurs pour répondre aux questions. B) 1) On peut éventuellement écrire un algorithme pour input("coeff1 =?",coeff1); input("coeff2 =?",coeff2); m:=(coeff1*8+coeff2*13)/(coeff1+coeff2); print("la moyenne est :",evalf(m)); 46 2) On peut éventuellement écrire un algorithme pour input("nombre de lancers =?",N); P:=0; if(x<0.5){p:=p+1;};}; print("la fréquence de Pile est ",evalf(p/n)); lancer_pieces(n):={ local (P:=0),I,x; if(x<0.5){p:=p+1;};}; return evalf(p/n);}; On peut faire constater la fluctuation d'échantillonnage et la stabilisation de la fréquence de Pile lorsque le nombre de lancers devient assez grand en traçant la représentation graphique de la fonction lancers_piece sur l'intervalle [1 ; 1000]. Ainsi : L:=seq(lancer_pieces(k),k=1..1000); 47 2) On peut éventuellement écrire un algorithme pour input("nombre de lancers du dé =?",N); E:=[0,0,0,0,0,0,0]; k:=1+hasard(6); E[k]:=E[k]+1;}; for(i:=1;i<=6;i:=i+1){ print("la fréquence de ",I," est ",E[I]/N);}; On choisit ici de mettre les effectifs dans la liste E : pour k de 0 à 6, E[k] contient l'effectif du numéro k. 48 2) a) On peut éventuellement écrire un algorithme pour R:=0; for(i:=1;i<=100;i:=i+1){ if(x<0.6){r:=r+1;};}; print("la fréquence des boules rouges est ",R/100); 3) a) On peut éventuellement écrire un algorithme pour input("n =?",n); F:=[]; for(k:=1;k<=n;k:=k+1){ R:=0; for(i:=1;i<=100;i:=i+1){ if(x<0.6){r:=r+1;};}; F:=append(F,R/100);}; print("la liste des fréquences est ",F); On a choisi ici de placer les fréquences successives dans la liste F. Pour obtenir le nombre de fréquences appartenant à l'intervalle de fluctuation : input("n =?",n); N:=0; for(k:=1;k<=n;k:=k+1){ R:=0; for(i:=1;i<=100;i:=i+1){ if(x<0.6){r:=r+1;};}; if(r/100>=0.5 and R/100<=0.7){N:=N+1;};}; print("le nombre de fréquences dans l intervalle est ",N); Il peut être aussi intéressant, par exemple pour 2000 échantillons, de représenter graphiquement les fréquences d'apparition des boules rouges de chaque échantillon (contenue dans la liste F obtenue après avoir exécuté le programme au début de la question 3) a), en choisissant comme entrée 2000), et de placer les droites d'équation y = 0,5 et y = 0,7 pour représenter l'intervalle de fluctuation. Pour cela : inf_intervalle(x):=0.5; sup_intervalle(x):=0.7; plotlist(f); plot(inf_intervalle(x),x=0..2000,color=red); Plot(sup_intervalle(x),x=0..2000,color=red);
Corrigés XCAS Page 7 49 1) c) On peut éventuellement écrire un algorithme pour input("n =?",N); E:=[0,0,0,0,0,0,0,0,0]; a:=1+hasard(4); b:=1+hasard(4); E[a+b]:=E[a+b]+1;}; for(k:=2;k<=8;k:=k+1){ print("la fréquence de la somme ",k," est ",evalf(e[k]/n));}; On choisit ici de mettre les effectifs dans la liste E : pour k de 0 à 8, E[k] contient l'effectif de la somme k. 2) On peut tester le programme précédent et observer la distribution des fréquences de la somme possible. On peut aussi représenter graphiquement cette distribution, par exemple sur une simulation de 2000 lancers (les effectifs de chaque somme sont stockés dans la liste E obtenue par l'exécution du programme précédent avec comme entrée 2000) : diagramme_batons(e/2000) On obtient dans la fenêtre graphique : 3) a) On peut éventuellement écrire un algorithme pour input("nombre de parties =?",N); J:=0; M:=0; a:=1+hasard(4); b:=1+hasard(4); if(a+b==5){j:=j+9; M:=M-9;}; if(a+b==6){j:=j-10; M:=M+10;};}; print("le gain de Julie est ",J); print("le gain de Maxime est ",M); b) On peut créer une fonction donnant le gain de Maxime au bout de N parties : gain_maxime(n):={ local (G:=0),I,a,b; a:=1+hasard(4); b:=1+hasard(4); if(a+b==5){g:=g-9;}; if(a+b==6){g:=g+10;};}; return G}; Pour créer 1000 échantillons de taille 100 et représenter graphiquement le gain de Maxime sur ces 100 parties : L:=seq(gain_Maxime(100),k=1..1000); plotlist(l) 50 1) c) On peut éventuellement écrire un algorithme pour input("nombre de parties =?",N); G:=0; P:=1; for(i:=1;i<=6;i:=i+1){ a:=1+hasard(6); P:=P*(a-6);}; if(p==0){g:=g+1;};}; print("la fréquence de gain est :",G/N); jeu(n):={ local (G:=0),k,I,P,a; P:=1; for(i:=1;i<=6;i:=i+1){ a:=1+hasard(6); P:=P*(a-6);}; if(p==0){g:=g+1;};}; return G/N}; Pour tracer la représentation graphique de la fréquence de gain observée en fonction du nombre de parties sur l'intervalle [1 ; 500] : L:=seq(jeu(k),k=1..500);
Corrigés XCAS Page 8 51 1) c) On peut éventuellement écrire un algorithme pour input("nombre de lâchers =?",N); numero:=[0,0,0,0]; a:=hasard(2); b:=hasard(2); c:=hasard(2); numero[a+b+c]:=numero[a+b+c]+1;}; for(i:=0;i<=3;i:=i+1){ print("la fréquence du numéro ",I," est ",numero[i]/n);}; Ici les effectifs de chaque numéro sont stockés dans la liste numero. 52 3) b) On peut éventuellement écrire un algorithme pour input("nombre d expériences =?",N); eff:=[0,0,0,0,0]; x:=0; for(i:=1;i<=4;i:=i+1){ a:=hasard(2); if(a==1){x:=x+1;} else{x:=x-1;};}; if(x==-4){eff[0]:=eff[0]+1;}; if(x==-2){eff[1]:=eff[1]+1;}; if(x==0){eff[2]:=eff[2]+1;}; if(x==2){eff[3]:=eff[3]+1;}; if(x==4){eff[4]:=eff[4]+1;};}; for(i:=0;i<=4;i:=i+1){ print("la fréquence de l abscisse ",I," est ",eff[i]/n);}; 53 2) b) On peut éventuellement écrire un algorithme pour input("nombre de parties =?",N); eff:=[0,0,0]; a:=1+hasard(4); if(a==1){eff[1]:=eff[1]+1;} else{b:=1+hasard(3); if(b==1){eff[2]:=eff[2]+1;} else{eff[0]:=eff[0]+1;};};}; print("la fréquence du gain 2 euros est ",eff[0]/n); print("la fréquence du gain 1 euros est ",eff[1]/n); print("la fréquence du gain -2 euros est ",eff[2]/n); Ici les effectifs de chaque gain sont stockés dans la liste eff. 54 1) b) On peut éventuellement écrire un algorithme pour xa:=hasard(0,1); xb:=hasard(0,1); if(max(xa,xb)-min(xa,xb)>0.5){ print("d est réalisé");} else{print("d n est pas réalisé");}; 2) a) On peut éventuellement écrire un algorithme pour input("nombre d expériences =?",N); xa:=hasard(0,1); xb:=hasard(0,1); if(max(xa,xb)-min(xa,xb)>0.5){n:=n+1;};}; print("la fréquence de D est ",n/n); distanceab(n):={ local (n:=0),k,xa,xb; xa:=hasard(0,1); xb:=hasard(0,1); if(max(xa,xb)-min(xa,xb)>0.5){n:=n+1;};}; return n/n;}; Pour tracer la représentation graphique de la fréquence d'apparition de D en fonction du nombre de simulations sur l'intervalle [1 ; 500] : L:=seq(distanceAB(N),N=1..500); 55 3) On peut éventuellement écrire un algorithme pour input("nombre de rendez-vous =?",N); xr:=hasard(0,60); xj:=hasard(0,60); if(max(xr,xj)-min(xr,xj)<=10){n:=n+1;};}; print("la fréquence de rencontres est ",n/n); rencontre(n):={ local (n:=0),i,xr,xj; xr:=hasard(0,60); xj:=hasard(0,60); if(max(xr,xj)-min(xr,xj)>=10){n:=n+1;};}; return n/n}; Pour tracer la représentation graphique de la fréquence de rencontres en fonction du nombre de simulations sur l'intervalle [1 ; 500] : L:=seq(rencontre(N),N=1..500);
Corrigés XCAS Page 9 56 2) b) On peut éventuellement écrire un algorithme pour input("nombre de tirs =?",N); if(x^2+y^2<=1){n:=n+1;};}; print("la fréquence d atteinte de la partie colorée est ",n/n); tir(n):={ local (n:=0),i,x,y; if(x^2+y^2<=1){n:=n+1;};}; return n/n}; Pour tracer la représentation graphique de la fréquence d'atteinte de la partie colorée en fonction du nombre de simulations sur l'intervalle [1 ; 500] : L:=seq(tir(N),N=1..500); 57 2) b) On peut éventuellement écrire un algorithme pour input("nombre de tirs =?",N); if(x^2+y^2<=1 and (1-x)^2+(1-y)^2<=1){ n:=n+1;};}; print("la fréquence d atteinte de la partie colorée est ",n/n); tir(n):={ local (n:=0),i,x,y; if(x^2+y^2<=1 and (1-x)^2+(1-y)^2<=1){ n:=n+1;};}; return n/n}; Pour tracer la représentation graphique de la fréquence d'atteinte de la partie colorée en fonction du nombre de simulations sur l'intervalle [1 ; 500] : L:=seq(tir(N),N=1..500); 58 2) b) On peut éventuellement écrire un algorithme pour input("nombre de tirs =?",N); if(y<=x^2){n:=n+1;};}; print("la fréquence d atteinte de la partie colorée est ",n/n); tir(n):={ local (n:=0),i,x,y; if(y<=x^2){n:=n+1;};}; return n/n}; Pour tracer la représentation graphique de la fréquence d'atteinte de la partie colorée en fonction du nombre de simulations sur l'intervalle [1 ; 500] : L:=seq(tir(N),N=1..500);