BTS−SIO:TD 5 Correction 2015-2016
I Exercice 1 : la fonction trouve()
Écrire une petite fonctiontrouve()qui fera exactement le contraire de ce que fait l’opérateur d’indexage (c’est-à-dire les crochets [ ]). Au lieu de partir d’un index donné pour retrouver le caractère correspondant, cette fonction devra retrouver l’index correspondant à un caractère donné.
Attention, il faut penser à tous les cas possibles ! Il faut notamment veiller à ce que la fonction renvoie une valeur particulière (par exemple la valeur −1) si le caractère recherché n’existe pas dans la chaîne traitée.
Une réponse : N˚
a b c d e f g h - - - - - 1 2 3
def trouve(chaine,car) : i=0
while (i<len(chaine)) and (chaine[i] !=car) : i=i+1
if i==len(chaine) : index=−1 else :
index=i return index
#
#—————-Fin fonction——————————————
#
#—————-Début programme principal ——————
#
mot=input("Saisir un mot : ")
lettre=input("De quelle lettre rechercher le rang ? ")
print("Le rang est ",trouve(mot,lettre)) #fonction appelée à la ligne 3
On a rempli le tableau d’avancement du programme avec le mot vodka et la lettrek dont il faut trouver le rang :
N˚de ligne 1 2 3
N˚ligne (fonction) a b c b c b c b d f g h
mot vodka
lettre k
i 0 1 2 3
conditionwhile OK OK OK OK
condition if OK OK
index 3
affichage 3
• • •
II Exercice 5 : la fonction EstUnChiffre()
Écrivez une fonction EstUnChiffre() qui renvoie « vrai », si l’argument transmis est un chiffre, et « faux
» sinon. Tester ainsi tous les caractères d’une chaîne en parcourant celle-ci à l’aide d’une boucle for.
Une réponse :
My Maths Space 1 sur 2
BTS−SIO:TD 5 Correction 2015-2016
N˚
a b c d - - - - - 1 2 3 4
def EstUnChiffre(car) : if ’0’ <= car <= ’9’ :
return True else :
return False
#
#—————-Fin fonction——————————————
#
#—————-Début programme principal ——————
#
c=input("Chiffres dans le mot suivant ? ") for r in range(0,len(c)) :
if EstUnChiffre(c[r])==True : # fonction appelée à la ligne 3 print("Il y a un chiffre en position ",r+1)
Tableau d’avancement : N˚de ligne
N˚ligne (fonction) test fonction valeur fonction
c ab1dK35s
r condition test
affichage
III Exercice 6 palindrome
N˚
1 2 3 4 5 6 7 8 9 10
mot=input("palindrome ? ") compt=0
mil=len(mot)//2 for r in range(0,mil) :
if mot[r]==mot[len(mot)-1-r] : compt=compt+1
if compt==len(mot)//2 : print("YES") else :
print("NO")
My Maths Space 2 sur 2