E22 BTS SIO Sujet mai 2017
PREMIER TRAVAIL 30 minutes sur papier
Lire l'algorithme puis répondre aux questions.
1 VARIABLES: a un nombre décimal 2 n entier naturel 3 u nombre décimal 4 L liste 5 INITIALISATION : n = 0 6 L=[] 7 TRAITEMENT: Saisir a 8 u = a 9 L=[a] 10 Pour i allant de 1 à n 12 Si u est pair alors u = u/2 13 Sinon u=3*u+1 14 Si u not in L alors mettre u dans L 15 Pour tout indice i d'un terme de L 16 Pour tout indice j d'un terme de L et i ≥ j 17 Si L[i] < L (j] alors L[i] ↔ L (j] 18 SORTIE: Afficher L |
QUESTIONS
1. a. Pour n= 4 et a = 1 exécuter à la main le programme.
b. Pour n= 5 et a = 2 exécuter à la main le programme.
2.a. Ecrire, si possible en Python 2 . 7 ce programme.
b. Exécuter le programme pour n= 1000.
c. Que remarquez-vous à propos de L?
3. Modifier cet algorithme pour qu'il donne la somme S
des éléments de L.
4. Quel est l'effet des lignes de 15 à 17 ?
SECOND TRAVAIL 30 minutes sur ordinateur
1. Un étudiant a proposé un programme, en Python 2.7,
qu'il a malencontreusement effacé partiellement.
Pouvez-vous le reconstituer, afin d'obtenir un programe
qui donne l'écriture binaire d'un entier naturel n?
from random import* |
a. Pourquoi a-t-il mis q= - 1 et non pas q=0 ?
b. Par quoi pouvait-il remplacer q=int(n/2) ?
c. Quelle est la nature de str(r) ?
2. Il prétend que pour n = 57 l'algorithme donne
111001. A-t-il raison?
----------------------------------------------------------