Professional Documents
Culture Documents
Algorithme Et Programmtion 2
Algorithme Et Programmtion 2
len(S) —p)
Exemple :
Soit S="TAGCT"
Aprés 1’appel sous_chaine(s,m,3), M devient "CT"
Aprés 1’appel sous_chaino(S,M,0), M devient “TAGCT*
Aprés 1’appel sous_chaine(S,M,4), M devient "T"
. Soit la structure suivante
typedef struct{
char suff[100]; /*0
int position;
}euffixe;
= Ecrire la fonction void liste-suffizes(char* S, suffize T/]), qui recoit. en paramtre
une chaine de caractéres $ non vide, un tableau des suffixes T (remarquer que la
longueur du tableau T est égale la longueur de la chaine de caractéres S) et qui
permet d’extraire tous les suffixes de $ et de les stocker dans le tableau T.
Exemple : soit la chaine S="TAGCT"
Apres Vappel de la fonction liste-suffizes(S,7) on obtient le tableau T suivant :
[t=CC"TAcet™ oF, CraGcT™ 1}, ("CCT 2}, C"eT" 3}, (°7T" 499)
Ecrire la fonction void trier(suffize Ti], int N), qui regoit en paramétre le tableau
T des suffixes d'une chaine de caractire de longueur N, crée selon le principe décrit
dans la question 2. La fonction trier, trie les éléments de T dans 'ordre alphabétique
croissant des suffixes.
Exemple :
[t-CO"TAGCT™ 0}, ("AGOT" 1}, ("GOT 2}, C"CT" 3}, C97", 4)
Apres l’appel de la fonction trier(T,5) le tableau T devient :
[t=€C" accor" 1}, ("CT 3}, {"GCT" 2}, {"T" 4}, {"TAGCT" ,0}}EE
10.
Ecrire une fonction int position(suffize Ti), char* S, int N), qui utilise le principe
de la recherche dichotomique dans le tableau des suffixes T trié dans Vordre al-
phabétique croissant des suffixes. Si S est un suffixe alors la fonction retourne la
position du motif $ et -1 sinon.
Exemple :
Soit {"AGCT" ,1},{"CT",3},{"GCT" ,2},{"T" 4}, {"TAGCT" ,O}}
position(T,"CT",5) renvoie 3.
position(T,"GCT",5) renvoie 2.
position(T,"TAGCT",5) renvoie 0
position(T,"TATCG",5) renvoie
. Ecrire la fonction void sauvgarder(suffize T{j, int N, char* nom-fichier) permet-
tant’de sauvgarder tous les suffixes dans un fichier texte dont le nom est passé en
arguement.
Eerie un programme principal de test (main) ot vous appellez toutes les fonctions
définies plus haut, avec des exemples de votre choix.
wee#include You might also like