Pratiquer l’algorithmique THÈME 1 Qu’est-ce qu’un algorithme ? Activité 2. b) 2 – Tracé d’au moins deux hauteurs issues des sommets du triangle. – Tracé du point H, intersection des hauteurs tracées. 3 Traitement : le tracé des hauteurs. 1 1. Les points O et A. 2. Un carré de centre O et dont un sommet est A. 2 Éléments donnés : l’expression de f (x) et la valeur a. Question posée : « Donnez l’équation de la tangente à la courbe représentant f au point d’abscisse a. 3 Entrées : les coefficients A, B et C du trinôme. Traitements : le calcul du discriminant DELTA. Sorties : les valeurs a et b. 4 1.On peut déduire le sens de variation de la fonction f sur l’intervalle I. 5 Les entrées de ces deux algorithmes ne sont pas identiques. On ne peut donc pas dire que ces algorithmes sont équivalents. 6 • Créez dans l’ordre : le triangle ABC, deux bissectrices intérieures à ce triangle, le point d’intersection D des deux bissectrices, la perpendiculaire à l’un des côtés passant par le point D, le point d’intersection E entre cette perpendiculaire et le côté utilisé, le cercle de centre D passant par E. • Utilisez la commande « Créer un nouvel outil ». • Choisissez le cercle inscrit dans l’onglet « objets finaux », les points A, B et C dans l’onglet « objets initiaux ». © Nathan 2012 – Transmath Term. S Exercices f ’ est positive pour x −1 et pour x 2. Donc la fonction f est strictement croissante sur ]– ; −1] et [2 ; + [ et strictement décroissante sur [−1 ; 2]. Enseignement spécifique ● Pratiquer l'algorithmique 1 Variables et affectation THÈME 2 b) Oui. Voir la question 2. Activité 2. Avec AlgoBox : 1 On obtient f (4). 2 5 3 – EXE ÷ 2 – EXE Exercices 7 5 × 5 + 4 × 4 A A EXE 8 a)4 b) 4 + 2 B A EXE EXE EXE – 2 B × 2 – 5 ÷ A EXE + 5 EXE EXE A 9 A – 2 ; B – 3 ; C – 1 . 10 1. a) On peut envisager jusqu’à cinq variables : le premier nombre A, le carré B de ce premier nombre, le second nombre C, le carré D de ce second nombre, la somme E de B et D. THÈME 3 11 1.p, n, t, PHT et PTTC. 2. PHT PREND_LA_VALEUR n*p PTTC PREND_LA_VALEUR PHT*(1+t/100) 3. a) p, n, t. b) p PREND_LA_VALEUR n*p p PREND_LA_VALEUR p*(1+t/100) c) L’économie du nombre de variables dégrade la lisibilité de l’algorithme. L’instruction conditionnelle Activité 13 1. Il suffit d’ajouter une variable p et la ligne de traitement « p prend la valeur b-m*a ». 2. Avec AlgoBox : 1 2 3 4 5 6 7 8 9 Exercices © Nathan 2012 – Transmath Term. S 12 T.I. 10 11 12 13 14 15 16 17 Casio 18 19 20 21 22 2 Enseignement spécifique ● Pratiquer l'algorithmique VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE c EST_DU_TYPE NOMBRE d EST_DU_TYPE NOMBRE m EST_DU_TYPE NOMBRE p EST_DU_TYPE NOMBRE DEBUT_ALGORITHME AFFICHER «Saisissez les coordonnées du point A.» LIRE a LIRE b AFFICHER «Saisissez les coordonnées du point B.» LIRE c LIRE d // On calcule les paramètres de la droite m PREND_LA_VALEUR (d-b)/(c-a) AFFICHER «Le coefficient directeur de (AB) est » AFFICHER m p PREND_LA_VALEUR b-m*a AFFICHER «L’ordonnée à l’origine de (AB) est » AFFICHER p FIN_ALGORITHME 3. Avec AlgoBox : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 22 23 24 25 26 27 28 29 VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE c EST_DU_TYPE NOMBRE d EST_DU_TYPE NOMBRE m EST_DU_TYPE NOMBRE p EST_DU_TYPE NOMBRE DEBUT_ALGORITHME AFFICHER « Saisissez les coordonnées du point A.» LIRE a LIRE b AFFICHER « Saisissez les coordonnées du point B.» LIRE c LIRE d SI (a==c) ALORS DEBUT_SI AFFICHER « (AB) est parallèle à (Oy) et a pour équation x = » AFFICHER a FIN_SI SINON DEBUT_SINON m PREND_LA_VALEUR (d-b)/(c-a) AFFICHER « Le coefficient directeur de (AB) est » AFFICHER m p PREND_LA_VALEUR b-m*a AFFICHER « L’ordonnée à l’origine de (AB) est » AFFICHER p FIN_SINON FIN_ALGORITHME message PREND_LA_VALEUR «v= 0 u.» FIN_SI SINON DEBUT_SINON SI (c==0) ALORS DEBUT_SI k PREND_LA_VALEUR b/d message PREND_LA_VALEUR «u = «+k+» v.» FIN_SI SINON DEBUT_SINON k PREND_LA_VALEUR a/c message PREND_LA_VALEUR «u = «+k+» v.» FIN_SINON FIN_SINON SI (a*d-b*c==0) ALORS DEBUT_SI AFFICHER «u et v sont colinéaires.» AFFICHER message FIN_SI SI (a*c+b*d==0) ALORS DEBUT_SI AFFICHER «u et v sont orthogonaux.» FIN_SI FIN_ALGORITHME 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 15 T.I. 14 a)Cet algorithme teste la colinéarité ou l’orthogonalité de deux vecteurs définis par leurs coordonnées. Ligne 15 : « … colinéaires. » Ligne 19 : « … orthogonaux. » b) et c) Le programme AlgoBox final peut être : 10 11 12 13 14 15 16 17 18 19 20 21 VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE c EST_DU_TYPE NOMBRE d EST_DU_TYPE NOMBRE k EST_DU_TYPE NOMBRE message EST_DU_TYPE CHAINE DEBUT_ALGORITHME AFFICHER « Entrez les coordonnées du vecteur u.» LIRE a LIRE b AFFICHER « Entrez les coordonnées du vecteur v.» LIRE c LIRE d SI (a==0 et b==0) ALORS DEBUT_SI AFFICHER «u est nul.» FIN_SI SI (c==0 et d==0) ALORS DEBUT_SI AFFICHER «v est nul.» Casio © Nathan 2012 – Transmath Term. S 1 2 3 4 5 6 7 8 9 16 1. Entrées Sorties A B C A B H 4 8 7 4 7 8 8 7 4 4 7 8 8 4 7 7 4 8 4 7 8 4 7 8 Enseignement spécifique ● Pratiquer l'algorithmique 3 2. Cet algorithme affecte à la variable H la plus grande des valeurs A, B, C initialement saisies. Avec AlgoBox : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VARIABLES a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE c EST_DU_TYPE NOMBRE h EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE a LIRE b LIRE c h PREND_LA_VALEUR c SI (a<b) ALORS DEBUT_SI SI (b>c) ALORS DEBUT_SI h PREND_LA_VALEUR b b PREND_LA_VALEUR c THÈME 4 4 Le dixième carré a un côté inférieur à 0,5. Exercices 17 1. et 2. T.I. Casio © Nathan 2012 – Transmath Term. S 34 35 FIN_SI FIN_SI SINON DEBUT_SINON SI (a>c) ALORS DEBUT_SI h PREND_LA_VALEUR a a PREND_LA_VALEUR c FIN_SI FIN_SINON SI (h*h==a*a+b*b) ALORS DEBUT_SI AFFICHER «Le triangle est rectangle.» FIN_SI SINON DEBUT_SINON AFFICHER «Le triangle n’est pas rectangle.» FIN_SINON FIN_ALGORITHME La boucle conditionnelle Activité Remarque. Dans le langage de programmation CASIO, les instructions d’une boucle « Do-LpWhile » sont exécutées une première fois, puis tant que la condition est vérifiée. 18 1.Au début du jeu, le lièvre et la tortue sont derrière la ligne de départ. Un dé est lancé. Si le résultat de ce 4 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Enseignement spécifique ● Pratiquer l'algorithmique lancer est 6, alors le lièvre arrive directement sur la case « Arrivée » et remporte la manche. Sinon, la tortue avance d’un nombre de cases égal au résultat du lancer. Si la tortue arrive sur la case « Arrivée », alors elle remporte la manche. On relance le dé jusqu’à ce que l’un des protagonistes remporte la manche. 2. Avec AlgoBox : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 VARIABLES T EST_DU_TYPE NOMBRE L EST_DU_TYPE NOMBRE D EST_DU_TYPE NOMBRE GL EST_DU_TYPE NOMBRE GT EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE DEBUT_ALGORITHME i PREND_LA_VALEUR 0 GT PREND_LA_VALEUR 0 GL PREND_LA_VALEUR 0 TANT_QUE (i<1000) FAIRE DEBUT_TANT_QUE i PREND_LA_VALEUR i+1 D PREND_LA_VALEUR 0 T PREND_LA_VALEUR 0 L PREND_LA_VALEUR 0 TANT_QUE (T<7 ET L!=7) FAIRE DEBUT_TANT_QUE SI (D==6) ALORS DEBUT_SI L PREND_LA_VALEUR 7 GL PREND_LA_VALEUR GL+1 FIN_SI SINON DEBUT_SINON T PREND_LA_VALEUR T+D FIN_SINON SI (T>=7) ALORS DEBUT_SI 34 35 36 37 38 39 40 GT PREND_LA_VALEUR GT+1 FIN_SI D P REND_LA_VALEUR ALGOBOX_ALEA_ ENT(1,6) FIN_TANT_QUE FIN_TANT_QUE AFFICHER « Nombre de parties gagnées par le lièvre : » AFFICHER GL AFFICHER « Nombre de parties gagnées par la tortue : » AFFICHER GT FIN_ALGORITHME 3. 1 2 3 4 5 6 7 8 9 VARIABLES T EST_DU_TYPE NOMBRE L EST_DU_TYPE NOMBRE D EST_DU_TYPE NOMBRE GL EST_DU_TYPE NOMBRE GT EST_DU_TYPE NOMBRE gagnant EST_DU_TYPE CHAINE DEBUT_ALGORITHME / /La tortue et le lièvre sont derrière la ligne de départ. 10 T PREND_LA_VALEUR 0 11 D PREND_LA_VALEUR 0 12 TANT_QUE (T<7 ET L!=7) FAIRE 13 DEBUT_TANT_QUE 14 / /On lance un dé tant qu’il n’y a pas de vainqueur. 15 D PREND_LA_VALEUR ALGOBOX_ALEA ENT(1,6) 16 AFFICHER D 17 / /Si le dé indique 6 alors le lièvre arrive directement sur la case arrivée et gagne la partie. 18 SI (D==6) ALORS 19 DEBUT_SI 20 L PREND_LA_VALEUR 7 21 gagnant PREND_LA_VALEUR «le lièvre.» 22 FIN_SI 23 SINON 24 DEBUT_SINON 25 //Sinon la tortue avance du nombre de cases indiquées par le dé. 26 T PREND_LA_VALEUR T+D 27 FIN_SINON 28 SI (T>=7) ALORS 29 DEBUT_SI 30 //Si la tortue franchit la ligne d’arrivée alors elle gagne la partie. 31 gagnant PREND_LA_VALEUR «la tortue.» 32 FIN_SI 33 FIN_TANT_QUE 34 AFFICHER «Le gagnant est : » 35 AFFICHER gagnant 36 FIN_ALGORITHME 4. La tortue semble avantagée. En modifiant le programme, on peut conjecturer que pour 10 ou 11 cases, le jeu est plus équitable. 19 1.Avec AlgoBox : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 VARIABLES u EST_DU_TYPE NOMBRE v EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE b EST_DU_TYPE NOMBRE p EST_DU_TYPE NOMBRE DEBUT_ALGORITHME u PREND_LA_VALEUR 2 v PREND_LA_VALEUR 1 LIRE p TANT_QUE (u-v>p) FAIRE DEBUT_TANT_QUE a PREND_LA_VALEUR (u+v)/2 b PREND_LA_VALEUR 4/(u+v) u PREND_LA_VALEUR a v PREND_LA_VALEUR b FIN_TANT_QUE AFFICHER v AFFICHER u FIN_ALGORITHME 2. On modifie les lignes suivantes : 8 14 u PREND_LA_VALEUR 5 b PREND_LA_VALEUR 10/(u+v) 20 1. Selon les habitudes de programmation, les répon­ses peuvent être variées. Voici un algorithme utilisant les opérateurs de base : Variables a, b et c sont de type numérique Entrée Lire a et b Tant que a>0 R prend la valeur a a prend la valeur a-b Fin de boucle Sortie Afficher R 2. La structure « jusqu’à » n’existe pas pour tous les langages de programmation. On utilise alors une structure « tant que » en s’assurant que les instructions de la boucle seront exécutées au moins une fois. Exemple avec AlgoBox : 3. PGCD(660 ; 1 050) = 30 et PGCD(4 410 ; 2 100) = 210. Enseignement spécifique ● Pratiquer l'algorithmique 5 © Nathan 2012 – Transmath Term. S 31 32 33 THÈME 5 La boucle incrémentale Activité 1 a) Ligne 6 : u prend la valeur 5 3. On peut envisager plusieurs solutions avec une structure conditionnelle. On peut aussi changer la formule de calcul de la note pour prendre en compte une pénalité P (P 0) : Ligne 10 : Tant que i < p Ligne 11 : u prend la valeur 0.9u. b)T.I. Casio 23 1. a) Hormis 1, le plus petit diviseur de N peut 2.T.I. être 2. Dans ce cas, N est le plus grand des diviseurs de 2 N, hormis N lui-même. b) On peut tester si le reste de la division euclidienne de N par I est nul (voir la question 1. de l’exercice 20 ). Casio c) Avec AlgoBox : Exercices 21 1. T.I. © Nathan 2012 – Transmath Term. S Casio 2. Non car il serait nécessaire de connaitre par avance le nombre d’itérations de la boucle. 22 1.Répondre aléatoirement à chaque question revient à attribuer à chaque réponse la note aléatoire 0 ou 1. La fonction ALGOBOX_ALEA_ENT(0,1) retourne aléatoirement 0 ou 1. On simule ici par une boucle une réponse aléatoire aux dix questions successives. 2. Il s’agit d’un problème d’initialisation de la variable Note. La ligne 14 doit être déplacée entre les lignes 9 et 10. 6 Enseignement spécifique ● Pratiquer l'algorithmique 2. a) Avec AlgoBox : Commentaire. On convient que dans le cas N = 1 (un seul diviseur), le joueur marque aussi 1 point. L’algorithme proposé permet le calcul du score à l’issue des 100 parties. Une autre approche est possible en faisant afficher le gain algébrique moyen : score . gain moyen = nombre de parties c) En modifiant l’algorithme pour simuler un grand nombre de parties et en effectuant plusieurs simulations, on peut conjecturer une valeur de p proche de 10. Commentaire. On note G la variable aléatoire qui indique le gain algébrique lors d’une partie. Dire que le jeu est équitable signifie que E(G) = 0. L’utilisation du programme de la question 2. a) permet de dénombrer le nombre de diviseurs des entiers de 1 à 100 : 1 2 21 4 31 2 41 2 51 4 61 2 71 2 81 5 91 4 1 11 2 6 22 4 32 4 42 8 52 6 62 4 72 12 82 4 92 6 2 12 2 2 23 2 33 4 43 2 53 2 63 6 73 2 83 2 93 4 3 13 3 4 24 8 34 4 44 6 54 8 64 7 74 4 84 12 94 4 4 14 2 4 25 3 35 4 45 6 55 4 65 4 75 6 85 4 95 4 5 15 4 5 26 4 36 9 46 4 56 8 66 8 76 6 86 4 96 12 6 16 2 2 27 4 37 2 47 2 57 4 67 2 77 4 87 4 97 2 7 17 4 6 28 6 38 4 48 10 58 4 68 6 78 8 88 8 98 6 8 18 3 2 29 2 39 4 49 3 59 2 69 4 79 2 89 2 99 6 9 19 4 6 30 8 40 8 50 6 60 12 70 8 80 10 90 12 100 9 10 20 Ainsi entre 1 et 100, il existe : • 20 nombres entiers ayant au moins 7 diviseurs, • 25 nombres premiers, • 55 nombres entiers ayant entre 3 et 6 diviseurs ou bien égal à 1. Loi de G: k P(G = k) −10 0,25 1 0,55 p 0,2 D’où E(G) = 0,2p – 1,95. Ainsi, E(G) = 0 ⇔ 0,2p – 1,95 = 0 ⇔ p = 9,75. La conjecture sur la valeur entière de p qui rende ce jeu le plus équitable possible est en accord avec ce résultat. © Nathan 2012 – Transmath Term. S b) Avec AlgoBox : Enseignement spécifique ● Pratiquer l'algorithmique 7