Vous êtes sur la page 1sur 5

SERIE N°3 : PROGRAMMATION EN LANGAGE C

1.1 Exercice 1

Oughriss mohamed

Ecrire un programme qui saisit 2 entiers et affiche successivement la somme , la différence, le produit et le quotient de ces 2 entiers.

Corrigé :

#include<stdio.h> int main(void)

{

 

int a,b; printf("Entrer deux nombres entiers :"); scanf("%d %d",&a,&b); printf("\nLa somme de %d et %d vaut %d",a,b,a+b); printf("\nLa difference de %d et %d vaut %d",a,b,a-b); printf("\nLe produit de %d et %d vaut %d",a,b,a*b); printf("\nLe quotient de %d et %d vaut f\n",a,b,(float)a/(float)b);

return 0;

}

1.2 Exercice 2

Ecrire un programme qui demande à l’utilisateur de donner le rayon d’un cercle et lui retourne sa surface et son périmètre.

Corrigé :

#include<stdio.h> #include<math.h> #define Pi 4*atan(1)

int main(void)

{

float r; printf("Entrer le rayon du cercle :"); scanf("%f",&r); printf("La surface du cercle vaut %f \n",Pi*r*r); printf("Le perimetre du cercle vaut %f\n",2*Pi*r); return 0;

}

1.3 Exercice 3

Ecrire un programme qui saisit deux entiers a et b et permute la valeur de ces deux entiers.

Corrigé :

#include<stdio.h>

int main(void)

{

/* il faut utiliser une variable tampon pour l'echange */ int a,b,tampon; printf("Entrer 2 entiers a et b:"); scanf("%d %d",&a,&b);

tampon=a; a=b; b=tampon; printf("a vaut maintenant %d\n",a); printf("b vaut maintenant %d\n",b); return 0;

}

1.5 Exercice 5

Ecrire un programme retournant la factorielle d’un nombre entier entré par l’utilisateur.

Corrigé :

#include<stdio.h> int main(void)

{

 

int i,n,res;

res=1;

printf("Entrer un entier :"); scanf("%d",&n);

for(i=n;i>1;i--)

{

res=res*i;

}

printf("%d ! vaut %d\n",n,res); return 0;

}

1.6 Exercice 6

Ecrire un programme qui résout les équations du second degré (ax 2 + bx + c = 0). Le programme demande a, b et c à l’utilisateur puis indique le nombre de solutions ainsi que leurs valeurs.

Corrigé :

#include<stdio.h>

#include<math.h>

int main(void)

{

float a,b,c,dis,res1,res2; printf("Entrer les coefficients a, b et c de l'equation ax2+bx+c : \n"); scanf("%f %f %f",&a,&b,&c);

dis=b*b-4*a*c;

printf("Le discriminant vaut %f \n",dis); if (dis<0)

{

printf("Discriminant negatif, pas de solutions reelles!\n");

}

else

{

if (dis==0)

{

res1=-b/(2*a);

printf("Le discriminant est nul, il y a donc une seule solution: %f

\n",res1);

}

else

{

res1=(-b-sqrt(dis))/(2*a);

res2=(-b+sqrt(dis))/(2*a);

printf("Le discriminant est positif, il y a donc deux solutions: %f et %f

\n",res1,res2);

}

}

return 0;

}

2.1 Exercice 1

LES TABLEAUX :

Ecrire un programme qui initialise un tableau d’entiers de dimension N puis calcule la moyenne des éléments du tableau.

Corrigé :

#include<stdio.h> #define N 10 int main(void)

{

 

int i,tab[N]; float moy;

moy=0;

printf("Entrer les valeurs du tableau \n");

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

{

printf("tab[%d] = ",i); scanf("%d",&tab[i]); printf("\n"); moy=moy+tab[i];

}

moy=moy/N; printf("La moyenne du tableau vaut %f\n",moy); return 0;

}

2.2 Exercice 2

Ecrire un programme qui saisit un entier a et range dans un tableau d’entier les valeurs de a i

avec i = 0,1,2, N

avec N la taille du tableau

Corrigé :

#include<stdio.h> #define N 5 int main(void)

{

int i,tab[N],a;

float moy;

moy=0;

printf("Entrer le coefficient a \n"); scanf("%d",&a);

tab[0]=a;

printf("tab[%d] = %d\n",0,tab[0]); for (i=1;i<N;i++)

{

tab[i] = tab[i-1]*a; printf("tab[%d] = %d \n",i,tab[i]);

}

return 0;

}

3.4 Exercice 4

Ecrire un programme qui lit successivement

un nombre (nombre1)

un opérateur (+,-,*,/)

un nombre (nombre2)

et qui retourne le résultat de l’opération: nombre1 operateur nombre2, puis propose d’arrêter ou de refaire le calcul.

Corrigé :

#include <stdio.h>

int main(void)

{

double n1,n2,res; char op,ch; do { printf("Entrer n1: ");

scanf("%lf",&n1);

printf("Entrer op: ");

/* on vide le buffer associé à stdin */ while ( getchar() != '\n'); scanf("%c",&op); printf("Entrer n2: ");

scanf("%lf",&n2);

if (op=='+')

res=n1+n2;

else if (op=='-')

res=n1-n2;

else if (op=='*')

res=n1*n2;

else if (op=='/')

res=n1/n2;

else

{

printf("l'operateur n'est pas valide\n"); continue;

}

printf("Le resultat de %f %c %f est %f\n",n1,op,n2,res); printf("\nVoulez-vous recommencez Oui ou Non: "); fflush(stdin); scanf("%c",&ch); printf("\n"); } while(ch!='n'); return 0;

}

2.5 Exercice 5

On considère le tableau T de N réels. Ecrire un programme qui affiche le rang dans le tableau d’un réel x donné, et ce dans les deux cas suivants:

on est assuré que le réel x existe dans le tableau,

il est possible que cet élément n’existe pas.

Corrigé :

#include <stdio.h> #define dim 10 int main(void)

{ double t[dim] = { 6.,7.,8.,9.,1.,0.,3.,2.,5.,4. }; double ti; int i; printf("Entrer un reel: "); scanf("%lf",&ti); for (i=0;i<dim;i++) if (t[i]==ti)

{

printf("le rang de %f dans le tableau est: %d \n",ti,i); break;

}

if(i==dim) printf("la valeur %f n'existe pas dans le tableau",ti); printf("\n"); return 0;

}