Licence Culture Humaniste et Scientifique, 2013–2014
Universités Bordeaux 3 & 1
Contrôle continu informatique — Durée : 2h
Répondre aux questions dans un seul fichier python, qu’on appellera prenom-nom.py.
Un fichier modèle est fourni. Il est demandé :
de le récupérer ici http://www.labri.fr/~zeitoun/enseignement/13-14/CHS/Skel.py,
de le sauvegarder sous le nom prenom-nom.py,
de le compléter suivant les exercices ci-dessous.
Le fichier fourni contient :
la première ligne de chaque fonction à écrire, mais le corps de chaque fonction ne contient
qu’une instruction
return
(sauf celle de l’exercice 5.2 qui contient plus), qu’il faut modifier.
des lignes d’affichage, permettant de tester les fonctions une fois écrites. Pour pouvoir vérifier
les programmes, les résultats de ces tests sont fournis page suivante.
Exercice 1
Écrire une fonction
f1
qui prend en argument 2 entiers
a
et
b
, et renvoie la valeur
ab ab.
On rappelle les opérateurs
//
et
%
:
a// b
retourne le quotient de la division entière de
a
par
b
et
a%ble reste de cette division.
Exercice 2
Écrire une fonction
f2
qui prend en argument 3 entiers
a
,
b
et
c
, et renvoie la valeur
a+bsi cest pair, et absi cest impair.
On rappelle les opérateurs suivants sur les listes (tous ne vous seront pas forcément nécessaires) :
len(L) renvoie la longueur de la liste L,
L[i] est le (i+ 1)ème élément de la liste L(le premier élément étant L[0]),
L[-i] est l’élément L[len(L)-i] (par exemple, L[-1] est le dernier élément de la liste),
L1 + L2
est la liste formée des éléments de
L1
, suivis de ceux de
L2
. Par exemple,
[1,2] + [3]
s’évalue en la liste [1,2,3],
L[i:]
est la liste
L
privée de ses
i
premiers éléments. Par exemple, si
L
vaut
[1,2,3]
,
L[1:]
est
la liste [2, 3].
Exercice 3
Écrire une fonction
longueur_paire
qui prend en argument une liste
L
, et qui renvoie
True si cette liste est de longueur paire et False sinon.
Exercice 4 1.
Écrire une fonction
demi
qui prend en argument un entier
n>
0, et renvoie la
partie entière de n/2. Par exemple, si nvaut 6 ou 7, cette fonction doit renvoyer 3.
2.
Écrire une fonction
reste_et_parite
qui prend en argument un entier
n
, et qui renvoie la
liste [
n/
2
,
0] si
n
est pair, et la liste [
E
(
n/
2)
,
1] si
n
est impair, où
E
(
n/
2) désigne la partie
entière de n/2, calculée à la question 1.
3.
Écrire une fonction
decomposition_base_2
qui prend en argument un entier
n
, et renvoie la
liste de sa décomposition en base 2. Par exemple,
decomposition_base_2(13)
doit renvoyer
la liste [1, 1, 0, 1].
1
Exercice 5 1.
Écrire une fonction non récursive
double_liste
qui prend en argument une liste
d’entiers
L
et renvoie la liste où chaque entier est doublé. Ainsi,
double_liste[1,2,3,4,5]
doit renvoyer [2,4,6,8,10].
2. Écrire une fonction double_liste_rec faisant la même chose, de façon récursive.
Exercice 6 1.
Écrire une fonction non récursive
renverse_liste
qui prend en argument une
liste d’entiers
L
et renvoie la liste renversée. Par exemple,
renverse_liste[1,2,3,4,5]
doit
renvoyer [5,4,3,2,1].
2. Écrire une fonction renverse_liste_rec faisant la même chose, de façon récursive.
Exercice 7 1.
Écrire une fonction
completer
qui prend en argument 2 listes de chiffres entre 0
et 9, et qui renvoie ces 2 listes, la plus courte ayant été complétée par des
0
à gauche pour avoir
2 listes de même longueur. Par exemple,
completer([1,2], [3,4,5])
doit renvoyer
[0,1,2],
[3,4,5].
2.
En utilisant la fonction précédente, écrire une fonction
addition
qui prend en argument 2 listes
de chiffres entre 0 et 9, et qui renvoie la liste représentant l’addition des deux nombres dont
la suite des chiffres est donnée par les arguments. Par exemple, avec les arguments
[1,2,3]
et
[2,0]
, qui représentent les entiers 123 et 20, elle doit renvoyer
[1,4,3]
qui représente
143 = 123 + 20.
Résultats attendus avec le fichier fourni.
f1 (3 ,8) = 13
f2 (2 ,3 ,4) = 5
f2 (3 ,4 ,5) = -1
demi (6) = 3
demi (7) = 3
reste_e t_ pa ri te (6) = [3 , 0]
reste_e t_ pa ri te (7) = [3 , 1]
decomposition_base_2(13) = [1, 0, 1, 1]
decomposition_base_2(15) = [1, 1, 1, 1]
doub l e _ l i s te ([1 ,2 ,3 ,4 ,5]) = [2 , 4 , 6, 8 , 10]
double_liste_rec ([1 ,2 ,3 ,4 ,5]) = [2 , 4 , 6, 8 , 10]
renverse_liste ([1 ,2 ,3 ,4 ,5]) = [5 , 4, 3 , 2 , 1]
renverse_lis t e _ r e c ([1 ,2 ,3 ,4 ,5]) = [5 , 4, 3 , 2, 1]
co m pleter ([1 ,2 ,3] , [2 ,0]) = ([1 , 4, 3] , [0 ,2 ,0])
ad dition ([1 ,2 ,3] , [2 ,0]) = [1 , 4 , 3]
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !