Université A. Belkaïd
Tlemcen
Faculté des Sciences
Examen final
d'Informatique2
Durée : 1h30
Documents non autorisés
Année universitaire 2014-2015
1re année licence ST
Informatique2 (S2)
Mardi 12 mai 2015
Exercice 1 (15 pts) :
La suite de Syracuse d'un nombre entier N > 0 est
définie de la manière suivante :
et pour tout entier naturel n :
D'après la conjecture de Collatz, quelle que soit la
valeur de N cette suite finit toujours par atteindre la
valeur 1.
Cette conjecture n'a pas encore été démontrée par les
mathématiciens.
On veut écrire un programme qui se présente comme
dans l'exemple d'exécution ci-dessous :
Donnez un entier > 0 : 13
Nombre de valeurs ? 15
13 40 20 10 5 16 8 4 2 1 4 2 1 4 2
1) (5 pts) Compléter l'organigramme ci-contre, qui
permet d'afficher les n premières valeurs de cette
suite pour une valeur v de départ. Recopier pour cela
les instructions données (dans le désordre) dans le
tableau ci-dessous à leur bonne place dans
l'organigramme :
afficher « Donnez un entier > 0 » cc + 1
afficher « Nombre de valeurs ? » vv / 2
afficher v c < n
afficher v v ← 3v + 1
lire n c ← 1
lire vdébut
v est pair fin
2) (6 pts) Écrire le programme Python
correspondant à cet organigramme (l'algorithme n'est
pas demandé) sans utiliser le mot-clé while
Remarque : on suppose que les valeurs de v et n données
par l'utilisateur seront des entiers supérieurs à 0 (il n'est
pas nécessaire de les tester)
Examen final d'Informatique2 – L1 ST 2014-2015 page 1/3
début
(0,25)
afficher « Donnez un entier > 0 »
(0,25)
lire v
(0,25)
afficher « Nombre de valeurs ? »
(0,25)
lire n
(0,25)
afficher v
(0,25)
c ← 1
(0,5)
c < n
(0,5)
vrai
faux
v est pair
(0,5)
vrai faux
vv / 2
(0,5)
v ← 3v + 1
(0,5)
afficher v
(0,25)
cc + 1
(0,5)
fin
(0,25)
Première LMD ST (S2) ~ Faculté des Sciences (Univ. Tlemcen)
(0,5) v = int(input("Donnez un entier > 0 : "))
(0,5) n = int(input("Nombre de valeurs ? "))
(0,5) print(v, end=" ")
(1pt) for c in range(1,n):
(0,75) if v % 2 == 1: # ou bien if v % 2:
(0,75) v = 3*v + 1
(0,25) else:
(0,75) v = v // 2
(0,5) print(v, end=" ")
(+0,5 si tout est juste)
3) (4 pts) Réécrire tout le programme Python en le modifiant pour que le nombre de valeurs ne soit pas
demandé à l'utilisateur mais pour que le programme s'arrête une fois que la valeur 1 est atteinte.
Le mot-clé while n'est pas interdit dans cette question.
(0,5) v = int(input("Donnez un entier > 0 : "))
(0,5) print(v, end=" ")
(3pts) while v != 1:
(0,5) if v % 2 == 1:
(0,5) v = 3*v + 1
(0,5) else:
(0,5) v = v // 2
(0,5) print(v, end=" ")
(+1 si tout est juste)
Examen final d'Informatique2 – L1 ST 2014-2015 page 2/3
Première LMD ST (S2) ~ Faculté des Sciences (Univ. Tlemcen)
Université A. Belkaïd
Tlemcen
Faculté des Sciences
Examen final
d'Informatique2
Durée : 1h30
Documents non autorisés
Année universitaire 2014-2015
1re année licence ST
Informatique2 (S2)
Mardi 12 mai 2015
Exercice 2 (5 pts) : (choisir une seule réponse juste par question)
Étant donné le programme Python suivant où l'on définit une fonction qui s’appelle nombre() :
def nombre(a):
n = len(a)
c = 0
for i in range(n):
if a[i] == 0:
c += 1
return c
x = [1, 0, 2, 0, 0, 4]
b = nombre(x)
print("b =", b)
2.1 - À quoi sert la fonction len() ?
Donner le maximum d’une liste
Donner le nombre d’éléments contenus dans une liste
Afficher les éléments d’une liste
2.2 - Les variables n, i et c de la fonction nombre sont des :
Variables locales
Variables globales
Paramètres formels
2.3 - Les variables x et b du programme sont des :
Variables locales
Variables globales
Paramètres formels
2.4 - Si l’utilisateur exécute ce programme, il obtiendra :
b = 6
b = 4
b = 3
2.5 - Quelle est la différence entre la définition d'une fonction et celle d'une procédure ?
Une fonction commence avec le mot-clé def et une procédure avec le mot-clé proc.
Une fonction contient toujours le mot-clé return alors qu’une procédure non.
Une fonction vient toujours avant le programme principal et la procédure après le programme
principal.
Examen final d'Informatique2 – L1 ST 2014-2015 page 3/3
Première LMD ST (S2) ~ Faculté des Sciences (Univ. Tlemcen)
1 / 3 100%