Corrigé Algorithme 2 - A - 2012

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 3

Université de Ngaoundéré Année académique 2011/2012

Faculté des sciences Semestre 4


ALGORITHMIQUE 2 : (MIL4AR01/ MIL4CS01)
Durée : 2 heures

Exercice 1 : Généralités (6 pts)

1. Définir les concepts suivants:


 Algorithmes : C’est un procédé de calcul automatique composé d’un ensemble fini
d’étapes, chaque étape étant formée d’un nombre fini d’étapes élémentaires, qui
permet de résoudre le problème en donnant la sortie requise.
 Algorithme récursif : Une fonction ou un algorithme sont dits récursifs lorsqu’ils
sont auto-référents : ils font références à eux-mêmes dans leur définition.
 Structure de donnée abstraite : Une structure de donnée abstraite est définie par
l’ensemble des opérations prévues sur la structure. Chaque opération est décrite
par sa signature, c’est-à-dire l’énoncé des types des objets qu’elle reçoit et qu’elle
renvoie.
 Structure de donnée concrète : Une structure de données concrète correspond à
l’implémentation d’une structure de donnée abstraite
2. Donner les différences majeures entre collection et ensemble.
 La collection regroupe un certain nombre d’enregistrements. Certains enregistrements
peuvent être dupliqués. Dans un ensemble au contraire, chaque enregistrement est
unique.
3. Montrer comment la pile s’implémente avec un tableau. Écrire les algorithmes des
différentes opérations. Analyser la complexité en temps des différentes opérations.
Donner les avantages et les inconvénients de cette implémentation. (Voir cours)

Exercice 2 : Une application des listes (7 pts) (Voir Corrigé de TD)

1. Ecrire un algorithme effectuant la lecture d’un polynôme et sa représentation en machine


sous la forme d’une liste chaînée dont chaque maillon représente un monôme. Par
exemple, la figure ci-contre est une représentation possible du polynôme 3X 6 - 2X + X 4 +4

1 4
3 6
-2 1
4 0
2. Ecrire une fonction qui renvoie le degré d’un polynôme donné P.
3. Dans la suite on considère que POLY est un type expressément défini pour représenter les
polynômes.
Université de Ngaoundéré Année académique 2011/2012
Faculté des sciences Semestre 4
ALGORITHMIQUE 2 : (MIL4AR01/ MIL4CS01)
Durée : 2 heures

3.1. Ecrire la fonction POLYplus (P1, P2:POLY):POLY qui construit et rend comme
résultat le polynôme qui est la somme des polynômes représentés par P1et P2.
3.2. Ecrire la fonction POLYdiff (P1, P2:POLY):POLY qui construit et rend comme résultat
le polynôme qui est la différence des polynômes représentés par P1et P2.

Exercice 3: Séquences de caractères (7 pts)


Etant donnés un texte et un motif sous la forme de séquences de caractères, déterminer le
nombre de fois où le motif apparait dans le texte. Par Exemples :
 Le motif "elle" apparait 2 fois dans le texte "quelle belle journée" ;
 Le motif "aa" apparait 4 fois dans le texte "aaaaa".
1. Donner un algorithme itératif qui compte le nombre d’un motif dans un texte.
Fonction NombreMotif (Motif, Texte :Chaine) :entier
Variables : Iterat, NbrMotif, LongTexte, LongMotif, j :entier ;
Début
NbrMotif0;
LongMotiflongeur(Motif) ;
LongTextelongeur(Texte) ;
Iterat0 ; j0 ;
Tantque (Iterat<LongTexte- LongMotif) faire
si(Texte(Iterat) Motif(j)alors
Iterat  Iterat+1;
sinon
Tantque(Texte(Iterat)=Motif(j)) et(jLongMotif)faire
Iterat  Iterat+1; jj+1;
ftq
si (j>LongMotif)alors
NbrMotif NbrMotif+1;
fsi
Iterat  Iterat-j; j0;
fsi
ftq
retourne(NbrMotif)
fin

2. Donner la version itérative de votre algorithme.


Université de Ngaoundéré Année académique 2011/2012
Faculté des sciences Semestre 4
ALGORITHMIQUE 2 : (MIL4AR01/ MIL4CS01)
Durée : 2 heures

fonction NombreMotif(Motif, Texte :Chaine ; LongTexte, LongMotif, Iter , J


:entier) :entier
début
si (LongTexte < LongMotif - J) alors
retourne(0)
sinon
si(Texte(Iter)  Motif(J) alors
retourne(NombreMotif(Motif, Texte, LongTexte -1+J, LongMotif,
Iter +1, 0)+0)
sinon
si (J< LongMotif) alors
retourne(NombreMotif(Motif, Texte, LongTexte -1, LongMotif,
Iter, J+1)+0)
sinon
retourne(NombreMotif(Motif, Texte, LongTexte +J, LongMotif,
Iter, 0)+1)
fsi
fsi
fsi
fin

3. Faire l’analyse de la complexité de ces algorithmes.

Vous aimerez peut-être aussi