INFO PYTHON 2.7 TEST 1 D'ALGO BTS1B 4 décembre 2013
A PREMIER TRAVAIL sur papier 30 mn
Voici un algorithme en Python 2 . 7
from random import*
def trim():
L=input("Entrer une liste de quatre prénoms " )
L1=input("Entrer un liste de quatre notes ")
L2=input("Entrer une seconde liste de quatre notes ")
M=[]
for i in range(0,4):
M.append((L1[i]+L2[i])/2.0)
L.insert(2*i+1,round(M[i],2))
print L
Vous êtes informé que round( 7.789456,2) donne 7.79
c-à-d arrondit au centième supérieur le nombre décimal 7.789456 et ne donne que deux décimales.
1. Quelles sont les valeurs successives de i ?
2. Que signifie M=[] ?
3. Qu'est-ce que L[0] ?
4. Pourquoi a-t-on divisé par 2.0 au lieu de 2 ?
Pouvait-on laisser 2 mais multiplier par 1.0 le numérateur
pour le même effet ?
5. Quel est l'effet produit par M.append((L1[i]+L2[i])/2.0) ?
6. Quelles sont les valeurs de 2*i+1 ?
7. Quel est l'effet produit par L.insert(5,round(M[2],2))?
8. Dans le cas où l'on entre,
L= ["joe","alice","Ronan","Silva"]
L1=[16,14,7,11]
L2=[12,15,13,9]
indiquer ce qu'affiche le script.
9. A présent la liste L1 est constituées de notes d'anglais et la liste L2
est la liste de notes d'informatique.
On admet que le coefficient de l'anglais est 3 et que le coefficient
de l'informatique est 8.
Modifier le script proposé pour avoir les moyennes pondérées des étudiants.
10. Que devrait -on changer si la classe comportait 24 étudiants?
------------------------------------------------------------------------------------------------------------
SECOND TRAVAIL sur ordinateur 30 minutes
Ecrire un script qui de demande l'entrée d'une liste de quatre prénoms,
de deux matières , des coefficients de chacune des matières, de deux listes
de quatre notes dans chaque matière et qui finalement affiche
la moyenne pondérée avec deux décimales de chaque étudiant avec son nom.
-----------------------------------------------------------------------------------------------------
REPONSE:
A PREMIER TRAVAIL
1. Les valeurs successives de i sont 0; 1 ;2 ; 3
2. M= [] signifie que M est la liste vide.
3. L[0] est le premier terme de la liste L. Il s'agit ici d'une chaîne
4. On a divisé par 2.0 au de 2 pour indiquer à Python 2.7 que l'on veut
un nombre décimal.
Toute à fait la multiplication du numérateur par 1.0 aurait produit le même effet.
5. L'effet produit par M.append((L1[i]+L2[i])/2.0)
consiste à ajouter à la fin de la liste M la moyenne arithmétique
de i + 1 ième notes des listes L1 et L2.
6. Les valeurs de 2*i+1 sont : 1 ; 3 ; 5 ; 7
En effet:
Pour i = 0 2*i+1 = 1
Pour i = 1 2*i+1 = 3
Pour i = 2 2*i+1 = 5
Pour i = 3 2*i+1 = 7
7. L'effet produit par L.insert(5,round(M[2],2)) consiste
à mettre dans la liste L en sixième position le troisième terme de la liste M.
8. Le script affiche :
>>> trim()
Entrer une liste de quatre prénoms ["Joe","Alice","Ronan","Silva"]
Entrer un liste de quatre notes [16,14,7,11]
Entrer une seconde liste de quatre notes [12,15,13,9]
['Joe', 14.0, 'Alice', 14.5, 'Ronan', 10.0, 'Silva', 10.0]
>>>
Cela s'apparente à un bulletin trimestriel de notes
9. On peut considérer:
from random import*
def trim():
L=input("Entrer une liste de quatre prénoms " )
L1=input("Entrer un liste de quatre notes ")
L2=input("Entrer une seconde liste de quatre notes ")
M=[]
for i in range(0,4):
M.append((3*L1[i]+8*L2[i])/11.0)
L.insert(2*i+1,round(M[i],2))
print L
On obtient par exemple:
>>> trim()
Entrer une liste de quatre prénoms ["Joe","Alice","Ronan","Silva"]
Entrer un liste de quatre notes [16,14,7,11]
Entrer une seconde liste de quatre notes [12,15,13,9]
['Joe', 13.09, 'Alice', 14.73, 'Ronan', 11.36, 'Silva', 9.55]
>>>
10.Pour 24 étudiants il faudrait remplacer 4 par 24.
B SECOND TRAVAIL -----------------------------------------------------------------------------
On peut considérer:
from random import*
def trim():
L=input("Entrer une liste de quatre prénoms : " )
a=raw_input("Donner la matière 1: ")
b=raw_input("Donner la matière 2 : ")
L1=input("Entrer un liste de quatre notes de la matière 1 : ")
L2=input("Entrer une seconde liste de quatre notes de la matière 2 : ")
c=input("Donner le coefficient de la matière 1 : ")
d=input("Donner le coefficient de la matière 2 : ")
M=[]
for i in range(0,4):
M.append(((c*L1[i]+d*L2[i])*1.0)/(c+d))
L.insert(2*i+1,round(M[i],2))
print L
On obtient par exemple:
>>> trim()
Entrer une liste de quatre prénoms : ["Joe","Alice","Ronan","Silva"]
Donner la matière 1 : anglais
Donner la matière 2 : informatique
Entrer un liste de quatre notes de la matière 1 : [16,14,7,11]
Entrer une seconde liste de quatre notes de la matière 2 : [12,15,13,9]
Donner le coefficient de la matière 1 : 3
Donner le coefficient de la matière 2 : 8
['Joe', 13.09, 'Alice', 14.73, 'Ronan', 11.36, 'Silva', 9.55]
>>>
-----------------------------------------------------------------------------------------------------------