Technologies Info/Comm. 2 - Examen 2014-2015

Durée de l'examen : 2 heures.

Avant de commencer, lisez et appliquez scrupuleusement les instructions suivantes. Pour évitez les erreurs de saisie, copiez les commandes demandées avec votre souris.

Écrivez un script en Python qui demande à l'utilisateur de saisir deux nombres entiers et qui affiche le plus grand des deux.
# SOLUTION
a = int(input("Saisissez un premier nombre: "))
b = int(input("Saisissez un deuxième nombre: "))
if a > b:
   print(a)
else:
   print(b)
Écrivez un script en Python qui demande à l'utilisateur de saisir une chaîne de caractères et qui affiche le nombre de caractères "A" ou "a" qu'elle contient.
# SOLUTION 1
chaine = input("Saisissez une chaîne: ")
i = 0
compteur = 0
while i < len(chaine):
   if (chaine[i] == "A") or (chaine[i] == "a"):
      compteur = compteur + 1
   i = i + 1
print(compteur)
# SOLUTION 2
chaine = input("Saisissez une chaîne: ")
i = 0
compteur = 0
while i < len(chaine):
   if chaine[i] in ["A","a"]:
      compteur = compteur + 1
   i = i + 1
print(compteur)
# SOLUTION 3
chaine = input("Saisissez une chaîne: ")
i = 0
Aa = ""
while i < len(chaine):
   if chaine[i] in ["A","a"]:
      Aa = Aa + chaine[i]
   i = i + 1
print(len(Aa))
Écrivez un script en Python qui demande à l'utilisateur de saisir deux chaînes de caractères et qui affiche celle qui contient le plus de voyelles.

Indication : vous initialiserez une variable nbv1 à 0 et écrirez une boucle qui balaie les caractères de la première chaîne saisie en rajoutant 1 à nbv1 si le caractère courant est une voyelle. Il suffira de faire de même pour la deuxième chaîne avec une nouvelle variable nbv2 puis de comparer nbv1 et nbv2 pour déterminer la chaîne à afficher.
# SOLUTION 1 
voyelles = ["A","E","I","O","U","Y","a","e","i","o","u","y"]
chaine1 = input("Saisissez une première chaîne : ")
chaine2 = input("Saisissez une première chaîne : ")
nbv1 = 0
nbv2 = 0
i = 0
while i < len(chaine1):
   if chaine1[i] in voyelles:
      nbv1 = nbv1 + 1
   i = i + 1
i = 0
while i < len(chaine2):
   if chaine2[i] in voyelles:
      nbv2 = nbv2 + 1
   i = i + 1
if nbv1 > nbv2:
   print(chaine1)
else:
   print(chaine2)
# SOLUTION 2
def CompterVoyelles(chaine):
   voyelles = ["A","E","I","O","U","Y","a","e","i","o","u","y"]
   nbv = 0
   i = 0
   while i < len(chaine):
      if chaine[i] in voyelles:
         nbv = nbv + 1
      i = i + 1
   return nbv

chaine1 = input("Saisissez une première chaîne : ")
chaine2 = input("Saisissez une première chaîne : ")
if CompterVoyelles(chaine1) > CompterVoyelles(chaine2):
   print(chaine1)
else:
   print(chaine2)
Écrivez un script en Python qui demande à l'utilisateur de saisir une chaîne de caractères, qui construit une nouvelle chaîne qui ne contient que les lettres d'indices pairs de la chaîne saisie et l'affiche. Exemple: si l'utilisateur saisit la chaîne "algorithme", c'est la chaîne "agrtm" qui s'affichera.

Indication : après avoir saisie la chaîne de l'utilisateur, créez une chaîne vide puis balayez tous les caractères de cette chaîne dans une boucle dans laquelle il suffira de tester si votre compteur de boucle est pair pour rajouter ou non le caractère à la nouvelle chaîne. On rappelle qu'un nombre N est pair si et seulement si la condition N%2 == 0 est satisfaite.
# SOLUTION
chaine = input("Saisissez une chaîne: ")
pairs = ""
i = 0
while i < len(chaine):
   if i % 2 == 0:
      pairs = pairs + chaine[i]
   i = i + 1
print(pairs)
Écrivez une fonction Python chercher(chaine,lettre) qui retourne la première position de la lettre lettre si elle apparaît dans la chaîne chaine et -1 sinon. Si votre fonction a été écrite correctement les instructions suivantes dans votre script
mot = "Python"
print(chercher(mot,"y"))
print(chercher(mot,"a"))

donneront l'affichage suivant:
1
-1
Dans la solution ci-dessous, on sort de la boucle dès que l'on a trouvé la lettre dans la chaîne ou que l'on a atteint la fin de la chaîne sans trouver la lettre. Le test final permet de déterminer pourquoi on est sorti de la boucle et donc de décider si l'on a trouvé la lettre ou non :
# SOLUTION
def chercher(chaine,lettre):
   i = 0
   while (i < len(chaine)) and (chaine[i] != lettre):
      i = i + 1	  
   if i < len(chaine):
      return i
   else
      return -1

chaine = input("Saisissez une chaîne: ")
lettre = input("Saisissez la lettre à chercher: ")
print(chercher(chaine,lettre))