Algorithmique avanc´
ee et programmation C
Exercices de TD
3.0.1
N. Delestre
2
Table des mati`
eres
1 Rappels : chaˆ
ıne de caract`
eres, it´
erations, conditionnelles 5
1.1 estUnPrexe............................................ 5
1.2 Palindrome ............................................ 5
1.3 Position d’une sous-chaˆ
ıne .................................... 5
1.4 Racine carr´
ee d’un nombre : recherche par dichotomie . . . . . . . . . . . . . . . . . . . . . 6
2 Rappels : les tableaux 7
2.1 Plus petit ´
el´
ement......................................... 7
2.2 Sous-s´
equencescroissantes.................................... 7
2.3 Recherchedichotomique ..................................... 7
2.4 Lissagedecourbe ........................................ 7
3 Rappels : r´
ecursivit´
e 9
3.1 Palindrome ............................................ 9
3.2 Puissancedunnombre...................................... 9
3.3 Recherche du z´
ero d’une fonction par dichotomie . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4 Dessin r´
ecursif .......................................... 9
3.5 Inversionduntableau....................................... 9
4 Repr´
esentation d’un naturel 11
4.1 Analyse .............................................. 11
4.2 Conception pr´
eliminaire ..................................... 11
4.3 Conception d´
etaill´
ee ....................................... 11
5 Calculatrice 13
5.1 Analyse .............................................. 13
5.2 Conception pr´
eliminaire ..................................... 14
5.3 Conception d´
etaill´
ee ....................................... 14
6 Un peu de g´
eom´
etrie 15
6.1 LeTADPoint2D ......................................... 15
6.2 Polyligne ............................................. 15
6.2.1 Analyse.......................................... 16
6.2.2 Conception pr´
eliminaire ................................. 16
6.2.3 Conception d´
etaill´
ee ................................... 16
6.3 Utilisationdunepolyligne .................................... 17
6.3.1 Point `
a l’int´
erieur..................................... 17
6.3.2 Surface d’une polyligne par la m´
ethode de mont´
e-carlo................. 17
3
4TABLE DES MATI `
ERES
7 Tri par tas 19
7.1 Questcequuntas? ....................................... 19
7.2 Fonction estUnTas ........................................ 19
7.3 Proc´
edure faireDescendre ..................................... 19
7.4 Proc´
edure tamiser ......................................... 20
7.5 Proc´
edure trierParTas ....................................... 20
8 Sudoku 21
8.1 Conception pr´
eliminaire ..................................... 22
8.2 Conception d´
etaill´
ee ....................................... 22
8.3 Fonctions m´
etiers......................................... 22
9 Liste 25
9.1 SDDListeChainee ........................................ 25
9.1.1 Type et signatures de fonction et proc´
edure ....................... 25
9.1.2 Utilisation......................................... 25
9.2 Conception d´
etaill´
ee d’une liste ordonn´
ee d’entiers `
a l’aide d’une liste chain´
ee......... 25
9.3 Utilisation : Liste ordonn´
eedentiers............................... 25
10 Arbre Binaire de Recherche (ABR) 27
10.1 Conception pr´
eliminaire et utilisation d’un ABR . . . . . . . . . . . . . . . . . . . . . . . . . 27
10.2 Une conception d´
etaill´
ee:ABR ................................. 28
11 Arbres AVL 29
12 Graphes 31
12.1Lelabyrinthe ........................................... 31
12.1.1 Partiepublique ...................................... 31
12.1.2 Partie priv´
ee ....................................... 32
12.2 Skynet d’apr`
es Codingame c
................................... 33
12.2.1 Un arbre recouvrant minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.2.2 Lecheminlepluscourt.................................. 34
12.2.3 Skynetlevirus ...................................... 34
13 Programmation dynamique 37
13.1 L’algorithme de Floyd-Warshall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
13.2LadistancedeLevenshtein.................................... 38
13.2.1 Calculsurunexemple .................................. 38
13.2.2 Algorithme........................................ 38
Chapitre 1
Rappels : chaˆ
ıne de caract`
eres, it´
erations,
conditionnelles
Pour certains de ces exercices on consid`
ere que l’on poss`
ede les fonctions suivantes :
fonction longueur (uneChaine : Chaine de caracteres) : Naturel
fonction iemeCaractere (uneChaine : Chaine de caracteres, iemePlace : Naturel) : Caractere
bpr´
econdition(s) 0< iemeP lace et iemeP lace longueur(uneChaine)
1.1 estUnPrefixe
Proposez la fonction estUnPrefixe qui permet de savoir si une premi`
ere chaˆ
ıne de caract`
eres est pr´
efixe
d’une deuxi`
eme chaˆ
ıne de caract`
eres (par exemple pr´
eest un pr´
efixe de pr´
edire ).
1.2 Palindrome
Une chaˆ
ıne de caract`
eres est un palindrome si la lecture de gauche `
a droite et de droite `
a gauche est iden-
tique. Par exemple “radar”, “´
et´
e”, “rotor”, etc. La chaˆ
ıne de caract`
eres vide est consid´
er´
ee comme ´
etant un
palindrome
´
Ecrire une fonction qui permet de savoir si une chaˆ
ıne est un palindrome.
1.3 Position d’une sous-chaˆ
ıne
Soit l’analyse descendante pr´
esent´
ee par la figure 1.1 qui permet de rechercher la position d’une chaˆ
ıne de
caract`
eres dans une autre chaˆ
ıne ind´
ependemment de la casse (d’o`
u le suffixe IC `
a l’op´
eration positionSousChaineIC),
c’est-`
a-dire que l’on ne fait pas de distinction entre majuscule et minuscule.
Pour r´
esoudre ce probl`
eme il faut pouvoir :
obtenir la longueur d’une chaˆ
ıne de caract`
eres ;
obtenir la sous-chaˆ
ıne d’une chaˆ
ıne en pr´
ecisant l’indice de d´
epart de cette sous-chaˆ
ıne et sa longueur (le
premier caract`
ere d’une sous-chaˆ
ıne `
a l’indice 1) ;
savoir si deux chaˆ
ınes de caract`
eres sont ´
egales ind´
ependemment de la casse.
L’op´
eration positionSousChaineIC retournera la premi`
ere position de la chaˆ
ıne recherch´
ee dans la
chaˆ
ıne si cette premi`
ere est pr´
esente, 0sinon.
Par exemple :
positionSousChaineIC("AbCdEfGh","cDE") retournera la valeur 3;
positionSousChaineIC("AbCdEfGh","abc") retournera la valeur 1;
positionSousChaineIC("AbCdEfGh","xyz") retournera la valeur 0.
5
1 / 38 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 !