Vous êtes sur la page 1sur 16

Sujet : New Version

Correction Des TDs :


« algorithme et programmation_2 »

MIPC_S3

Réalisée par :

DOUNIA HANYN.
Exercice 1 :
#include<stdio.h>

#include<math.h>

main()

int i,n,Rst,Som;

Som=0;

i=0;

printf("entrez un nombre en binaire: \n");

scanf("%d",&n);

while(n!=0)

Rst=n%10;

Som+=Rst*pow(2,i);

n=n/10;

i++;

printf("le nombre en decimale est %d: \n",Som);


Exercice 2:
#include<stdio.h>

#include<math.h>

main()

int Rst,n=100,Cont=0,Som,Z;

Z=n;

while(Cont<4)

{ Z++;

n=Z;

Som=0;

while(n>0)

{ Rst=n%10;

Som+=pow(Rst,3);

n=n/10;

if(Z==Som)

printf(" %d est un nombre d amstrong \n",Z);

Cont++;

}
Exercice 3 :
#include<stdio.h>

main()

int i,X,Y,n;

printf("Donner le rang : ");

scanf("%d",&n);

X=1;

for(i=1;i<=n;i++) {

Y=X;

if(i%2==0) X=2*Y;

else X=2*Y+1;

printf("le therme du rang %d est: %d ",n,X);

}
Exercice 1 :
#include<stdio.h>

#include<math.h>

float Lecture()

{ float r;

printf("entrez un nombre reel: \n");

scanf("%f",&r);

return (r);

float Delta(float a,float b,float c)

float D;

D=(b*b - 4*a*c);

return (D);

int NombreRacine(float D)

if(D==0) return 1;

if(D>0) return 2 ;

else return 0;}


float Racine_1(float a,float b,float c)

{float Y_1;

float D=Delta(a,b,c);

Y_1=((-b+sqrt(D))/(2*a));

return Y_1;

float Racine_2(float a,float b,float c)

{ float Y_2;

float D=Delta(a,b,c);

Y_2=(-(b+sqrt(D))/(2*a));

return Y_2;

void AfficheRacine(float a,float b,float c)

float D=Delta(a,b,c);

if(NombreRacine(D)==1)

{ printf("admet une solution double : %.01f\n",Racine_1(a,b,c) );}

if(NombreRacine(D)==2)

printf("admet deux solutions : %.01f\n%.01f\n",Racine_1(a,b,c),Racine_2(a,b,c));

if(NombreRacine(D)==0)

printf("pas de solutions reelles \n");

}
main()

float a,b,c;

printf("L'equation est de la forme suivante:\n aX*X+bX+c=0\n");

a=Lecture();

b=Lecture();

c=Lecture();

printf("L'equation :\n %.01fX*X+%.01fX+%.01f=0 ", a,b,c);

AfficheRacine(a,b,c);

Exercice 2 :
#include<stdio.h>

#include<math.h>

int Lecture()

{ int n;

printf("entrez un rang positive : \n");

scanf("%d",&n);

return (n);

int Fibo_Sans_recursivite(int n)

{ int W,I, U1=1, U2=1;

for(i=3; i<=n ; i++){

W=U2+U1;

U1=U2;

U2=W; }
return W;

int Fibo(int n)

if(n==1 || n==2) return 1;

else return(Fibo(n-1)+Fibo(n-2));

void Afficher( int n){

if (n==1) printf("la %d er valeur de la suite est : 1",n);

else if (n==2) printf("la %d eme valeur de la suite est : 1",n);

else printf("la %d eme valeur de la suite est : %d",n, Fibo(n));

//else printf("la %d eme valeur de la suite est :%d",n,Fibo_Sans_recursivite(n));

main()

int n;

int rslt;

n=Lecture();

Afficher(n);

}
Exercice 1 :
#include<stdio.h>

#include<stdlib.h>

#define max 50

void Lire(int A[],int d)

{ int i; for(i=0;i<d;i++)

{ printf("A[%d]= ",i);

scanf("%d",&A[i]);

void Afficher(int A[],int d)

{ int i; for(i=0;i<d;i++)

{ printf("%d ",A[i]);}

void Trie_Selection(int A[],int d)

{ int i,j,min,temp;

for(j=0;j<d- 1;j++) {

min=j;

for(i=j+1;i<d;i++){ if(A[i]<A[min]) min=i; }


temp=A[j];

A[j]=A[min];

A[min]=temp;

void Trie_Bulles(int A[],int d)

{int Con,Var,i; do{

Con=0; for(i=0;i<d-1;i++)

{if(A[i]>A[i+1])

Var=A[i+1]; A[i+1]=A[i];

A[i]=Var, Con=1;

}while(Con==1);

void Trie_Insertion(int A[],int d)

{ int i,j,k,X;

for(j=1;j<d;j++)

{ for(i=0;i<j;i++)

{ if(A[j]<A[i])

{ X=A[j];

for(k=j;k>i;k--)
{ A[k]=A[k-1];}

A[i]=X;

main()

int A[max];

int d,Choix_Menu;

printf("entrez la dimension du tableau: \n");

scanf("%d",&d); printf("**=====Menu=====**\n\n");

printf(" 1:Lecture \n 2:Affichage \n 3:Trie par selection \n 4:Trie a bulles \n


5:Trie Par Insertion \n 6:Quitter \n ");

do{

printf("\n choisir votre choix SVP : ");

scanf("%d",&Choix_Menu);

switch(Choix_Menu)

case 1: Lire(A,d);

break;

case 2: Afficher(A,d);

break;

case 3: Trie_Selection(A,d);

printf("Trie_Selection: \n");

Afficher(A,d);

break;
case 4: Trie_Bulles(A,d);

printf("Trie_Bulles: \n");

Afficher(A,d);

break;

case 5: Trie_Insertion(A,d);

printf("Trie_insertion: \n");

Afficher(A,d);

break;

}while(Choix_Menu>0 && Choix_Menu<6);

}
Exercice 1 :

#include<stdio.h>

#include<stdlib.h>

#define max 50

void Saisir (int A[][max] , int d)

{ int i,j; for(i=0;i<d;i++)

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

{printf("A[%d][%d]= ",i,j);

scanf("%d",&A[i][j]);

void Affichage(int A[ ][max],int d)

{ int i,j; for(i=0;i<d;i++)

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

{ printf("%d ",A[i][j]);

}
printf("\n");

int Dominant(int A[][max],int d)

{ int i,j,som; for(i=0;i<d;i++)

{ som=0; for(j=0;j<d;j++)

{ if(i!=j) som+=A[i][j];

if(A[i][i]<som) return 0;

return 1;

main()

int A[max][max]; int d;

printf("entrez la dimension de la Matrice : \n");

scanf("%d",&d);

Saisir( A,d) ;

printf("\n l affichage de la Matrice : \n");

Affichage(A,d) ;

if(Dominant( A,d)==0 )

printf("la matrice n'est pas diagonale dominante ");

else printf("la matrice est diagonale dominante ");

}
Exercice 2:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#define max 20

void Saisir(char ch[])

{ int i,j;

printf("entrez la chaine "); gets(ch);

void Affichage(char ch[])

puts(ch);

char* Convertir(char ch[])

int d, i;

d=strlen(ch);

char*ch_1;

int z=d+1;

ch_1=(char*)malloc(z*sizeof(char));

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

{ if(ch[i]>=65 && ch[i]<=90)

{*(ch_1+i)=ch[i]+32;}

*(ch_1+d)='\0';

return ch_1; }
main()

{ int d;

char ch[max];

char* ch_1;

Saisir(ch) ;

printf("Votre chaine en Majuscule\n");

Affichage(ch) ;

ch_1=Convertir(ch);

printf("la chaine en Minuscule\n");

Affichage(ch_1) ; }

TRÉS BON COURAGE

Vous aimerez peut-être aussi