Sunteți pe pagina 1din 4

Exercice 1 #include<stdio.h> #include<conio.h> #include<string.

h> char adn[8]; int i,j, p[4]; char comp[8]; void aff_base(void) { printf("\n les bases qui composent ce brin sont : \n"); for(i=0; i< strlen(adn)+1; i++) switch(adn[i]) { case 'A' : printf("\nAdenine");break; case 'T' : printf("\nThymine");break; case 'G' : printf("\nGuanine");break; case 'C' : printf("\nCytosine");break; }} void compl_brin(void) char inv[8]; x=strlen(adn); for(i=0; i<x; i++) {fflush(stdin); inv[i]=adn[x-1-i];} inv[x]='\0'; for(i=0; i<x; i++) { switch(inv[i]) { case 'A' : comp[i]='T';break; case 'T' : comp[i]='A';break; } }

case 'G' : comp[i]='C';break; case 'C' : comp[i]='G';break; }} comp[x]='\0'; } void calcul(void) { for(i=0; i<4; i++) p[i]=0; for(i=0; i<strlen(adn); i++) switch(adn[i]) { case 'A' : p[0]++; break; case 'T' : p[1]++; break; case 'G' : p[2]++; break; case 'C' : p[3]++; break;

for(i=0; i<4; i++) printf(" \np[%d]= %d ",i, p[i]);

int palindrome(void) { int i=0 , j,l, test=1; l=strlen(adn); j=l-1; for(i=0 ; i< l/2 ; i++) { if(adn[i]==adn[j]) j--; else { test=0; break; } } return test; }

int main() { int choix; int m, z; char y[8], rep; do { printf("\n entrer le brin adn desire : "); scanf("%s", adn); do{ z=1; printf(" \n\n\n-----Faites votre choix\n\n\n"); printf(" -1-\tAffichage de la liste des bases \n") ; printf(" -2-\tBrin ADN complementaire\n"); printf(" -3-\tNombres des differentes bases du brin\n"); printf(" -4-\tTest du palindrome\n"); printf(" -0-\tQuitter\n"); printf("\n\n\t\t\t CHOIX : "); scanf("%d",&choix); switch(choix) { case 1 : aff_base(); break; case 2 : { compl_brin(); strcpy(y,comp ); printf("\nle brin comple de %s est : %s\n",adn, y); }break; case 3 : { calcul(); printf("\n\nDans le brin, il y a :

%d adenine\n\t\t%d thymine",p[0],p[1]); printf("\n\t\t%d guamine\n\t\t%d cytosine\n",p[2],p[3]); }break; case 4 : { m= palindrome(); if (m==0) printf("\n\n ce brin : %s n est pas un palindrome.\n\n ", adn); else printf("\n\n ce brin : %s est un palindrome.\n\n ", adn); } break; case 0 : z=0; break; } }while(z!=0); printf("\n\n voulez vous saisir un autre brin ? ( o/n) "); fflush(stdin); scanf("%c", &rep); }while(rep!='n'); getch(); return 0; } Exercice2 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #define MAX 1000

typedef struct { char nom_art[20]; int code; float prix; }article;

int iTrouve; /* Boolen indiquant si l'lment est trouv */ /* Initialisation des variables*/ iPremier=0; iDernier=n; iTrouve=0;

article art[MAX]; int n, i; void tri(void) { article v; int j; for(i=0; i<n-1; i++) for(j=i+1; j<n; j++) if(art[i].code >art[j].code) { v= art[i]; art[i]= art[j]; art[j]= v; } }

/* Tant qu'on a pas trouve l'lment recherch ou que le sous-tableau */ /* contient plus de 1 lment */ while((iPremier <= iDernier)&&(iTrouve==0)) { /* Calcul de la position de l'lment du milieu */ iMilieu=(iPremier+iDernier)/2; /* Si l'lment du milieu est l'lment recherch */ if(art[iMilieu].code==code) {iTrouve =1; q= art + iMilieu;} else {

article *recher_dichot( int code) { article *q; q=NULL; int iPremier; /* Indice du premier lment du sous-tableau analys */ int iDernier; /* Indice du dernier lment du sous-tableau analys */ int iMilieu; /* Indice de l'lment du milieu du sous-tableau analys */

/* Si la valeur recherche est plus petite */ /* que la valeur du l'lment du milieu */ /* Alors on regarde le sous-tableau de gauche */ if(art[iMilieu].code>code) iDernier = iMilieu -1; /* sinon on regarde le sous-tableau de droite*/

else iPremier = iMilieu +1; } }

} tri(); affiche(); do{ printf("\n\n\n veuillez saisir le code a rechercher : "); scanf("%d", &c); p=recher_dichot(c);

return(q); }

void affiche(void) { printf("\n\n\n"); printf("-----Affichage du tableau trie-----\n\n\n"); printf("Nom_art\tCode\tPrix\n\n"); for(i=0; i<n; i++) printf("\n %s\t%d\t%.2f",art[i].nom_art,art[i].code, art[i].prix); } int main() { article *p; int c; printf(" donner le nombre des articles a saisir : "); scanf("%d", &n); printf("\n\n remplissage du tableau :\n\n"); for(i=0; i<n; i++) { printf(" pour article n: %d donner num nom et le prix : ",i+1); scanf("%d%s%f", &art[i].code,&art[i].nom_art,&art[i].prix); }

if(p==NULL) printf(" \n\n\n\taucun article ne repond a ce code \n"); else printf("\n\n\n\tl article correspondant a ce code est : %s\t%d\t%.2f",p->nom_art,p->code, p->prix); }while(p==NULL); getch(); return 0;

S-ar putea să vă placă și