BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ P
BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 1 Langage C Les outils de base de la programmation en langage C Exercice 1 : Ecrire un programme en langage C qui permute et affiche les valeurs de trois variables A, B, C de type entier qui sont entrées au clavier : A ==> B , B ==> C , C ==> A Solution : #include <stdio.h> main() { int A, B, C, AIDE; printf("Introduisez trois nombres (A, B, C) : "); scanf("%d %d %d", &A, &B, &C); /* Affichage à l'aide de tabulations */ printf("A = %d\tB = %d\tC = %d\n", A, B, C); AIDE=A; A=C; C=B; B=AIDE; printf("A = %d\tB = %d\tC = %d\n", A, B, C); return 0; } Exercice 2 : Ecrire un programme en langage C qui affiche le quotient et le reste de la division entière de deux nombres entiers entrés au clavier ainsi que le quotient rationnel de ces nombres. Solution : #include <stdio.h> main() { int A, B; printf("Introduisez deux nombres entiers : "); scanf("%d %d", &A, &B); printf("Division entiere : %d\n", A/B); printf("Reste : %d\n", A%B); BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 2 printf("Quotient rationnel : %f\n", (float)A/B); return 0; } Exercice 3 : Ecrire un programme en langage C qui affiche la résistance équivalente à trois résistances R1, R2, R3 (type double), - si les résistances sont branchées en série: Rsér = R1+R2+R3 - si les résistances sont branchées en parallèle: Rpar = (R1*R2*R3)/(R1*R2+R1*R3+R2*R3) Solution : #include <stdio.h> main() { double R1, R2, R3, RRES; printf("Introduisez les valeurs pour R1, R2 et R3 : "); scanf("%lf %lf %lf", &R1, &R2, &R3); RRES=R1+R2+R3; printf("Resistance resultante serielle : %f\n", RRES); RRES=(R1*R2*R3)/(R1*R2+R1*R3+R2*R3); printf("Resistance resultante parallele : %f\n", RRES); return 0; } Exercice 4 : Ecrire un programme en langage C qui calcule et affiche l'aire d'un triangle dont il faut entrer les longueurs des trois côtés. Utilisez la formule : S2 = P(P-A)(P-B)(P-C) où A, B, C sont les longueurs des trois côtés (type int) et P le demi-périmètre du triangle. Solution : #include <stdio.h> #include <math.h> main() { /* Pour ne pas perdre de précision lors de la division, */ /* déclarons P comme rationnel. */ int A, B, C; float P; BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 3 printf("Introduisez les valeurs pour A, B et C : "); scanf("%d %d %d", &A, &B, &C); /* En forçant la conversion de A, les autres opérandes */ /* sont converties automatiquement. */ P=((float)A+B+C)/2; printf("Surface du triangle S = %f\n",sqrt(P*(P-A)*(P-B)*(P-C))); return 0; } Exercice 5 : Ecrire un programme en langage C qui calcule la somme de quatre nombres du type int entrés au clavier. Solution : main() { int A; long SOM; SOM = 0; printf("Entrez le premier nombre : "); scanf("%d", &A); SOM+=A; printf("Entrez le deuxième nombre : "); scanf("%d", &A); SOM+=A; printf("Entrez le troisième nombre : "); scanf("%d", &A); SOM+=A; printf("Entrez le quatrième nombre : "); scanf("%d", &A); SOM+=A; printf("La somme des nombres entrés est %ld\n", SOM); return 0; } Exercice 6 : Ecrire un programme en langage C qui calcule et affiche la distance DIST (type double) entre deux points A et B du plan dont les coordonnées (XA, YA) et (XB, YB) sont entrées au clavier comme entiers. Solution : #include <stdio.h> BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 4 #include <math.h> main() { int XA, YA, XB, YB; double DIST; /* Attention: La chaîne de format que nous utilisons */ /* s'attend à ce que les données soient séparées par */ /* une virgule lors de l'entrée. */ printf("Entrez les coordonnées du point A : XA,YA "); scanf("%d,%d", &XA, &YA); printf("Entrez les coordonnées du point B : XB,YB "); scanf("%d,%d", &XB, &YB); DIST=sqrt(pow(XA-XB,2)+pow(YA-YB,2)); printf("La distance entre A(%d,% d) et B(%d, %d) est %.2f\n", XA, YA, XB, YB, DIST); return 0; } Exercice 7: Ecrire un programme en langage C qui lit un caractère au clavier et affiche le caractère ainsi que son code numérique. Solution : #include <stdio.h> main() { int C; printf("Introduire un caractère suivi de 'Enter'\n"); C = getchar(); printf("Le caractère %c a le code ASCII %d\n", C, C); return 0; } Les structures alternatives en langage c Exercice 1: Ecrivez un programme en langage C qui lit trois valeurs entières (A, B et C) au clavier et qui affiche la plus grande des trois valeurs, en utilisant: a) if - else et une variable d'aide MAX b) if - else if - ... - else sans variable d'aide c) les opérateurs conditionnels et une variable d'aide MAX BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 5 d) les opérateurs conditionnels sans variable d'aide Solution : a) if - else et une variable d'aide MAX #include <stdio.h> main() { int A, B, C; int MAX; printf("Introduisez trois nombres entiers :"); scanf("%i %i %i", &A, &B, &C); if (A>B) MAX=A; else MAX=B; if (C>MAX) MAX=C; printf("La valeur maximale est %i\n", MAX); return 0; } b) if - else if - ... - else sans variable d'aide int A, B, C; printf("Introduisez trois nombres entiers :"); scanf("%i %i %i", &A, &B, &C); printf("La valeur maximale est "); if (A>B && A>C) printf("%i\n",A); else if (B>C) printf("%i\n",B); else printf("%i\n",C); c) opérateurs conditionnels et une variable d'aide MAX int A, B, C; int MAX; printf("Introduisez trois nombres entiers :"); scanf("%i %i %i", &A, &B, &C); MAX = (A>B) ? A : B; MAX = (MAX>C) ? MAX : C; printf("La valeur maximale est %i\n", MAX); d) opérateurs conditionnels sans variable d'aide int A, B, C; printf("Introduisez trois nombres entiers :"); scanf("%i %i %i", &A, &B, &C); BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 6 printf("La valeur maximale est %i\n",(A>((B>C)?B:C)) ? A : ((B>C)?B:C)); Exercice 2: Écrivez un programme en langage C qui lit trois valeurs entières (A, B et C) au clavier. Triez les valeurs A, B et C par échanges successifs de manière à obtenir : val(A) val(B) val(C) Affichez les trois valeurs. Solution : #include <stdio.h> main() { /* Tri par ordre décroissant de trois entiers en échangeant les valeurs */ int A, B, C, AIDE; printf("Introduisez trois nombres entiers :"); scanf("%i %i %i", &A, &B, &C); printf("Avant le tri : \tA = %i\tB = %i\tC = %i\n", A, B, C); /* Valeur maximale -> A */ if (A<B) { AIDE = A; A = B; B = AIDE; } if (A<C) { AIDE = A; A = C; C = AIDE; } /* trier B et C */ if (B<C) { AIDE = B; B = C; C = AIDE; } printf("Après le tri : \tA = %i\tB = %i\tC = %i\n", A, B, C); return 0; } BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 7 Exercice 3: Ecrivez un programme en langage C qui lit deux valeurs entières (A et B) au clavier et qui affiche le signe du produit de A et B sans faire la multiplication. Solution : #include <stdio.h> main() { /* Afficher le signe du produit de deux entiers sans faire la multiplication */ int A, B; printf("Introduisez deux nombres entiers :"); scanf("%i %i", &A, &B); if ((A>0 && B>0) || (A<0 && B<0)) printf("Le signe du produit %i * %i est positif\n", A, B); else if ((A<0 && B>0) || (A>0 && B<0)) printf("Le signe du produit %i * %i est négatif\n", A, B); else printf("Le produit %i * %i est zéro\n", A, B); return 0; } Exercice 4: Ecrivez un programme en langage C qui lit deux valeurs entières (A et B) au clavier et qui affiche le signe de la somme de A et B sans faire l'addition. Utilisez la fonction fabs de la bibliothèque <math.h>. Solution : #include <stdio.h> #include <math.h> main() { /* Afficher le signe de la somme de deux entiers sans faire l'addition */ int A, B; printf("Introduisez deux nombres entiers :"); scanf("%i %i", &A, &B); if ((A>0 && B>0) || (A<0 && B>0 && fabs(A)<fabs(B)) || (A>0 && B<0 && fabs(A)>fabs(B))) BaW3di [WWW.FACEBOOK.COM/GROUPS/BAW3DIDEV] www.facebook.com/groups/BaW3diDev/ Page 8 printf("Le signe de la somme %i + %i est positif\n",A,B); else if ((A<0 && B<0) || (A<0 && B>0 && fabs(A)>fabs(B)) || (A>0 && B<0 && fabs(A)<fabs(B))) printf("Le signe de la somme %i + %i est négatif\n",A,B); else printf("La somme %i + %i est zéro\n", A, B); return 0; } Exercice 5: Ecrivez un programme en langage C qui calcule les solutions réelles d'une équation du second degré ax2+bx+c = 0. Solution : #include <stdio.h> #include <math.h> main() { /* Calcul des solutions réelles d'une équation du second degré */ int A, B, C; double D; /* Discriminant */ printf("Calcul des solutions réelles d'une équation du second \n"); printf("degré de la forme ax^2 + bx + c = 0 \n\n"); printf("Introduisez les valeurs pour a, b, et c : "); scanf("%i %i %i", &A, &B, &C); /* Calcul du discriminant b^2-4ac */ D = pow(B,2) - 4.0*A*C; /* Distinction des différents cas */ if (A==0 && B==0 && C==0) /* 0x = 0 */ printf("Tout réel est une solution de cette équation.\n"); else if (A==0 && B==0) /* Contradiction: c # 0 et c = 0 */ printf("Cette équation ne possède pas de solutions.\n"); else if (A==0) /* bx + uploads/Management/ exercice-corrige-langage-c.pdf
Documents similaires
-
11
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 02, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.7145MB