k = 0 res=5 5 ne divise pas 12 Retourner 0 k = 0 res=2 2
Transcription
k = 0 res=5 5 ne divise pas 12 Retourner 0 k = 0 res=2 2
Correction - TS. Évaluation 2 - ISN Question 1 (2 points) a. Présenter l’exécution de l’algorithme 1 sur les deux entrées suivantes : n = 12, m = 5 ; puis n = 12, m = 2. • n = 12, m = 5 k = 0 res=5 5 ne divise pas 12 Retourner 0 Algorithme 1: inconnu(n, m) ENTRÉE : Deux entiers naturels non nuls n et m. • n = 12, m = 2 SORTIE : Un entier naturel k. k = 0 res=2 2 divise 12 k=0+1 res = 2*2 4 divise 12 k= 1+1 res= 4*2 8 ne divise pas 12 Retourner 2 k =0 r es = m TANT QUE r es divise n k = k +1 r es = r es × m F IN TANT QUE Retourner k b. Que calcule l’algorithme 1 ? Expliquer votre réponse. L’algorithme 1 calcule, le plus grand entier naturel k tel que m k divise n. Lors du test de la boucle "Tant Que" (et donc lors de la sortie de la boucle), la propriété r es = m k+1 (1) est vérifiée par les variables k et r es , la variable r es contient donc la plus petite puissance de m qui ne divise pas n. D’après la propriété (1), nous obtenons le résultat sur la valeur de k retournée par l’algorithme. Question 2 (1 point) Lesquels des programmes ci-dessous écrits en Python-3, afficheront : 1, 2, 3, 4, 5, 6, 7, 8 Listing 1 – ↵ a =1 while a <9: a +=1 print ( a ) ? Listing 2 – ↵ a =1 while a <=8: print ( a ) a +=1 Listing 3 – ↵ for i in range (1 ,9) : print ( i ) Listing 4 – ↵ for i in range (1 ,8) : print ( i ) Il s’agit des deux programmes Listing 2 et Listing 3 Question 3 (2 points) 1. Une variable v est initialisée par : v =’2.0’ L’instruction type(v) renverra : a. int b. float 2. Le script suivant affichera : 1 2 3 4 5 c. str Entourer la bonne réponse d. list Entourer la bonne réponse a. ch = ’ TESTISN ’ r= ’’ for c in ch : r=r+c print ( r ) TESTISN b. NSITSET c. un message d’erreur d. aucune des réponses précédentes Question 4 (2 points) a. On définit la fonction python suivante : 1 2 3 4 5 def myst (a , b ) : a=a+b b =a - b a =a - b return (a , b ) b. On considère le petit script python suivant : 1 2 3 4 5 6 7 Que sera-t-il renvoyé par l’appel suivant ? >>> myst(3,5) (5, 3) myst échange a et b 8 9 10 a =10 if a <5: a =20 elif a >1: a =500 elif a >100: a =1 else : a =0 print ( a ) Quel sera l’affichage final ? 500 http://lycee.lagrave.free.fr/isn 1/2 Correction - TS. Évaluation 2 - ISN Question 5 (3 points) a. Écrire un algorithme qui prend 3 nombres réels distincts a, b et c en entrée et calcule le minimum min(a, b, c) de ces trois nombres. Algorithme 2: min(a, b, c) ENTRÉE : Trois nombres réels a, b, c. SORTIE : Le minimum de a, b, c. S I a < b A LORS S I a < c A LORS min = a S INON min = c F IN S I S INON S I b < c A LORS min = b S INON min = c F IN S I F IN S I Retourner min b. Combien de comparaisons seront effectuées à chaque exécution de l’algorithme ? Combien de comparaisons sont nécessaires pour trouver le minimum de n nombres distincts ? L’algorithme effectuera toujours 2 comparaisons. Pour trouver le minimum de n nombres, on peut facilement montrer que n − 1 comparaisons sont nécessaires et suffisantes : en effet, chaque comparaison élimine au plus 1 valeur et on peut écrire un algorithme tel que chaque comparaison élimine exactement une valeur. • Bonus. On initialise une variable s par s =’gabuzomeu’ i. Que sera-t-il renvoyé par l’appel suivant ? >>> print(len(s)) Cet appel affichera 9 ii. Que sera-t-il renvoyé par l’appel suivant ? >>> print(s[2]) Cet appel affichera b http://lycee.lagrave.free.fr/isn 2/2