Universit´e Bordeaux 2 Licence 1er semestre (2007/2008)
Algorithmes et structures de donn´ees : TD 7(corrig´e)
Types, chaˆınes de caract`eres, listes
Exercice 7.1 Chaˆınes de caract`eres
Consid´erer une chaˆıne de caract`ere dans la variable s.
1. Ecrire un algorithme qui d´ecide si le nombre de caract`eres dans cette chaˆıne de caract`ere
sest pair ou impair.
nombreCaracteres = len(s)
SI (nombreCaracteres%2==0) ALORS
print "le nombre de caract`eres est pair"
SINON
print "le nombre de caract`eres est impair"
2. Faites tourner votre algorithme pour chacune des affectations suivantes :
s = "soir"
s = "matin"
Exercice 7.2 Chaˆınes de caract`eres
Consid´erer une chaˆıne de caract`ere dans la variable s.
1. Ecrire un algorithme qui d´ecide s’il y a plus de voyelles que de consonnes dans cette chaˆıne
de caract`ere s.
s = "ici"
voyelles= ["a", "e", "i", "o", "u", "y"]
nombreVoyelles = 0
i = 0
nombreCaracteres = len(s)
TANT QUE i<nombreCaracteres FAIRE
j = 0
TANT QUE j < len(voyelles) FAIRE
SI (s[i] == voyelles[j]) ALORS
nombreVoyelles = nombreVoyelles + 1
j = j + 1
FIN TANT QUE
i = i + 1
FIN TANT QUE
nombreConsonnes = nombreCaracteres - nombreVoyelles
afficher("nombre de voyelles : ")
afficherLigne(nombreVoyelles)
afficher("nombre de consonnes : ")
afficherLigne(nombreConsonnes)
SI nombreVoyelles > nombreConsonnes ALORS
afficherLigne("Le mot contient plus de voyelles que de consonnes")
SINON SI nombreVoyelles < nombreConsonnes ALORS
afficherLigne("Le mot contient plus de voyelles que de consonnes")
SINON
afficherLigne("Le mot contient autant de voyelles que de consonnes")
2. Faites tourner votre algorithme pour chacune des affectations suivantes :
s = "ici"
s = "tennis"
s = "bonjour"
Exercice 7.3 Listes
Consid´erer une ligne d’un jeu de sudoku :
On pourrait stocker cette ligne de la grille dans la liste suivante :
ligne0 = [2,9,3,8,7,1,6,4,5]
1. Ecrire un algorithme qui v´erifie (dans le cas g´en´eral) si une ligne est conforme au r`egles
de sudoku.
ligne0 = [2,9,3,8,7,1,6,4,5] compteur = [0,0,0,0,0,0,0,0,0,0]
i = 0
TANT QUE i<=8 FAIRE
nombre = ligne0[i];
compteur[nombre] = compteur[nombre] + 1
i = i + 1
FIN TANT QUE
2
sudoku = VRAI
i = 1
TANT QUE i<=9 FAIRE
SI (compteur[i] != 1) ALORS
sudoku = FAUX
i = i + 1
FIN TANT QUE
SI sudoku == VRAI ALORS
afficher("La ligne de sudoku est bon")
else:
afficher("La ligne de sudoku est faux")
Exercice 7.4 Listes
Consid´erer une liste stock´e dans la variable liste qui contient des nombres entier.
1. Ecrire un algorithme qui d´ecide s’il y a une suite de trois occurences cons´ecutives du
nombre 6.
liste = [1,6,6,2,3,6]
maxSuite = 0
i = 0
TANT QUE i<len(liste) FAIRE
SI (liste[i] == 6) ALORS
suite = suite + 1
SI suite > maxSuite ALORS
maxSuite = suite
SINON
suite = 0
i = i + 1
FIN TANT QUE
SI maxSuite >= 3 ALORS
afficher("Il existe une suite de 3 fois 6")
else:
afficher("Il n’existe pas de suite de 3 fois 6")
2. Faites tourner votre algorithme pour chacune des affectations suivantes :
liste = [1,6,6,2,3,6]
liste = [1,2,6,6,6,3,6,6]
3
1 / 3 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 !