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();
}