SERIE N°3 : PROGRAMMATION EN LANGAGE C Oughriss mohamed
1.1 Exercice 1 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é (ax2 + 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; }
LES TABLEAUX : 2.1 Exercice 1 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
2.2 Exercice 2 Ecrire un programme qui saisit un entier a et range dans un tableau d’entier les valeurs de ai 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
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
Related Documents