Probleme 1:

Question1

 

#include<stdio.h>

#include<conio.h>

#define N 5

int main()

{

int valide=1,i,j;

int T[N]={4,8,12,5,3};

i=0;

while ((i<N-1)&& (valide==1))

  {

    j=i+1;

    while((j<N)&& (valide==1))

      if (T[i]==T[j])

         valide=0;

         else

          j++;

      i++;

   }

  if (valide==1) printf("ens tabl");

  else

  printf("non ens tabl");

  getch();

  }

           

Question2

 

 

#include<stdio.h>

#include<conio.h>

#define N 5

int main()

{

int trouve=0,i,j,x=8;

int T[N]={4,8,12,5,3};

i=0;

while ((i<N)&& (trouve==0))

  {

    if(T[i]==x)

        trouve=1;

        else

        i++;

   }

  if (trouve==1) printf("%d appartient à T",x);

  else

  printf("%d n'appartient pas à T",x);

  getch();

  }

 

 


Question3:

//Tri simple

#include<stdio.h>

#include<conio.h>

#define N 5

int main()

{

int i,j,temp;

int T[N]={4,8,12,5,3};

for (i=0;i<N-1;i++)

  for(j=i+1;j<N;j++)

    if(T[i]>T[j])

      {

 

          temp=T[i];

          T[i]=T[j];

          T[j]=temp;

      }

      for(i=0;i<N;i++)

        printf("%d\t",T[i]);

 

  getch();

  }

 


                 

Question3

//Tri à bulles

#include<stdio.h>

#include<conio.h>

#define N 5

int main()

{

int i,temp,j=N;

int T[N]={4,8,12,5,3};

 

int trie=0;

while((j>1)&&(trie==0))

{

    trie=1;

  for(i=0;i<j-1;i++)

    if(T[i]>T[i+1])

      {

          temp=T[i];

          T[i]=T[i+1];

          T[i+1]=temp;

          trie=0;

      }

      j--;

      }

      for(i=0;i<N;i++)

        printf("%d\t",T[i]);

 

  getch();

  }

 

Question4 :

 

#include<stdio.h>

#include<conio.h>

#define N1 3

#define N2 6

int i,temp,j;

int T1[N1]={1,8,10};

int T2[N2]={1,4,10,16};

int T1inclusdansT2()

{

    int inclu=1;

    i=0;

    while((inclu==1)&& (i<N1))

    {

       j=0;

      while((T1[i]!=T2[j])&& (j<N2))

        j++;

        if(T1[i]!=T2[j])

        inclu=0;

        i++;

    }

    return inclu;

}

int main()

{

    if (T1inclusdansT2()==1)

      printf("inclu");

      else

      printf("non inclu");

  getch();

  }

                              

 

Question5:union

 

#include<stdio.h>

#include<conio.h>

#define N1 3

#define N2 4

int i,j,k;

int T1[N1]={1,8,10};

int T2[N2]={2,5,7,16};

int T[N1+N2];

void T1unionT2()

{

    for(i=0;i<N1;i++)

      T[i]=T1[i];

 

      for (j=0;j<N2;j++)

      T[N1+j]=T2[j];

 

    for(k=0;k<N1+N2;k++)

    printf("%d\t",T[k]);

 

    //le trier ensuite

 

}

int main()

{

T1unionT2();

  getch();

  }

                              

Question5 : fusion

 

#include<stdio.h>

#include<conio.h>

#define N1 3

#define N2 4

int i,j,k;

int T1[N1]={1,8,10};

int T2[N2]={2,5,7,16};

int T[N1+N2];

void T1fusionT2()

{

   /* Fusion des éléments de T1 et T2 dans T*/

 /* de façon à ce que T soit aussi trié. */

 int i=0,j=0,k=0;

 while ((i<N1) && (j<N2))

        if(T1[i]<T2[j])

            {

             T[k]=T1[i];

             k++;

             i++;

            }

        else

            {

             T[k]=T2[j];

             k++;

             j++;

            }

 /* Si i ou j sont arrivés à la fin de leur tableau, */

 /* alors copier le reste de l'autre tableau.          */

 while (i<N1)

        {

         T[k]=T1[i];

         k++;

         i++;

        }

 while (j<N2)

        {

         T[k]=T2[j];

         k++;

         j++;

        }

 

 /* Edition du résultat */

 printf("Tableau T :\n");

 for (k=0; k<N1+N2; k++)

     printf("%d ", T[k]);

 printf("\n");

 

}

int main()

{

T1fusionT2();

  getch();

  }

                              

Probleme2

Question1 :

 

#include<stdio.h>

#include<conio.h>

int distanceH(char s1[],char s2[],int M)

{

    int cpt=0,i;

    for (i=0;i<M;i++)

      if (s1[i]!=s2[i])

        cpt++;

        return cpt;

 

}

 

int main()

{

 

    char ch1[10]="aabbcc";

    char ch2[10]="xaybzc";

    printf("%d",distanceH(ch1,ch2,10));

 

  getch();

  }

                                                                                    

Question2

 

#include<stdio.h>

#include<conio.h>

#define L 4

#define NB 4

int distanceH(char s1[],char s2[],int M)

{

    int cpt=0,i;

    for (i=0;i<M;i++)

      if (s1[i]!=s2[i])

        cpt++;

        return cpt;

 

}

int distanceH_langage(char langage[NB][L])

{

    int min=255,i,j;

    for(i=0;i<NB-1;i++)

      for(j=i+1;j<NB;j++)

      if(distanceH(langage[i],langage[j],L)<min)

        min=distanceH(langage[i],langage[j],L);

return min;

}

 

int main()

{

 

    char langage[NB][L]={"aabb","xayy","tghy","xgyy"};

    printf("%d",distanceH_langage(langage));

 

 

  getch();

  }

 


Question 3-a

 

#include<stdio.h>

#include<conio.h>

#include<string.h>

#define L 4

#define NB 4

 

void binaire(char *bin,int N)

{

    int j,r,k;

    int i=7;

   for(k=0;k<8;k++)

      {

 

          r=N%2;

          bin[i]=(char)(r+'0');

          N=N/2;

          i--;

      }

 

      printf("%s",bin);

}

int main()

{

    char bin[8];

 

    binaire(bin,4);

 

  getch();

  }

question 3-b

 

#include<stdio.h>

#include<conio.h>

#include<string.h>

#define L 4

#define NB 4

 

void binaire(char *bin,int N)

{

    int j,r,k,M=N;

    int i=7;

   for(k=0;k<8;k++)

      {

 

          r=N%2;

          bin[i]=(char)(r+'0');

          N=N/2;

          i--;

      }

       bin[8]='\0';

      printf("le nombre %d en binaire est %s\n",M,bin);

}

int distanceH(char s1[],char s2[],int M)

{

    int cpt=0,i;

    for (i=0;i<M;i++)

      if (s1[i]!=s2[i])

        cpt++;

        return cpt;

 

}

int distancenombre(int A,int B)

{

    char *bin1,*bin2;

    binaire(bin1,A);

    binaire(bin2,B);

    return distanceH(bin1,bin2,8);

 

}

int main()

{

    char bin[8];

    //binaire(bin,4);

    printf("la distance de hamming est %d",distancenombre(7,4));

 

  getch();

  }