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