INFO TEST ALGO lundi 9 février 2015 BTS1B
PARTIE A
Voici un algorithme en Python 2.7
from random import*
from string import*
def jeux2():
L=["chaise","vaisseau","voiture","invitation"]
a=choice(L)
n=len(a)
D=[]
for i in range(n):
D.append(a[i])
C=[]
for i in range(n):
C.append("-")
while C!=D:
p=raw_input("Donner une lettre")
for i in range(n):
if p==a[i]:
C[i]=p
print C
QUESTION :
1. Que veut dire C=[ ] ? C est une liste vide
2.Que signifie C!=D ? La liste C n'est pas égale à la liste D
3. Que signifie C[ i] ? C'est le terme d'indice i de la liste C
4. Que fait C.append("-") ? Cela ajoute "-" à la fin de la liste C
5. a=choice(L) a quel effet ? a est l'une des chaîne de L au hasard
6. Que représente n quand on écrit n=len(a) ? n est le nombre de termes de a
7.Que donne ce script ? Il permet au joueur d'afficher la chaîne cachée
8. Qu'est-ce qui distingue a de D ? a est une chaîne de caractères et D est la liste de ses caractères
9. Quand on écrit : for i in range(n): i est un entier compris entre 0 et n - 1
quelles sont les valeurs prises par i ?
10. Si l'on changeait seulement les chaînes dans L
le script tournerait-il ? OUI . Le script trouve lui-même le nombre de chaîne de L.
Si l'on remplaçait le print C de la dernière ligne par
E=join(C) Au lieu d'avoir une liste de caractères pour la chîne à trouver
print E on aurait les lettres collées sans crochet
quel serait l'affichage ?
---------------------------------------------------------------------------------------
PARTIE B
1.Écrire un script en Python2.7 qui permet d'avoir le plus grand
élément de la liste L= [ 13,5,8,22,20].
from random import*
def maxim():
L=[ 13,5,8,22,20]
maxi=L[0]
for i in range(len(L)):
if maxi<L[i]:
maxi=L[i]
print maxi
2. Écrire un script qui permet d'ordonner dans
l'ordre croissant la liste L=[ 13,5,8,22,20].
from random import*
def ordre():
L=[ 13,5,8,22,20]
for i in range(len(L)):
for j in range(i,len(L)):
if L[i]>L[j]:
L[i],L[j] = L[j],L[i]
print L
----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Autre variante du programme de la partie A
from random import*
from string import*
def jeux2():
L=["chaise","vaisseau","voiture","invitation"]
a =choice(L)
print a
n=len(a)
D=[]
for i in range(n):
D.append(a[i])
C=[]
for i in range(n):
C.append("-")
while C!=D:
p=raw_input("Donner une lettre ")
for i in range(n):
if p==a[i]:
C[i]=p
E=join(C)
print E
On obtient:
>>> jeux2()
vaisseau
Donner une lettre v
v - - - - - - -
donner une lettre a
v a - - - - a -
donner une lettre i
v a i - - - a -
donner une lettre s
v a i s s - a -
donner une lettre e
v a i s s e a -
donner une lettre u
v a i s s e a u
>>>
On peut supprimer la ligne print a pour ne
pas connaître d'avance le mot de la liste.
--------------------------------------------------------------------------