Exercice langage C application des structure alternative

Exercice (1) :

Ecrivez un programme qui lit trois valeurs entières (A, B et C) au clavier et qui affiche la plus grande des trois valeurs, en utilisant:

  1. if - else et une variable d'aide MAX
  2. if - else if - ... - else sans variable d'aide
  3. les opérateurs conditionnels et une variable d'aide MAX
  4. les opérateurs conditionnels sans variable d'aide

Solution Exercice (1) : 

1.

a) if - else et une variable d'aide MAX

#include
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);
printf("La valeur maximale est %i\n",
(A>((B>C)?B:C)) ? A : ((B>C)?B:C));

Exercice (2) :

Ecrivez un programme 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 Exercice (2) : 

1. 

#include
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{
AIDE = A;
A = B;
B = AIDE;
}
if (A{
AIDE = A;
A = C;
C = AIDE;
}
/* trier B et C */
if (B{
AIDE = B;
B = C;
C = AIDE;
}
printf("Après le tri : \tA = %i\tB = %i\tC = %i\n", A, B, C);
return 0;
}

Exercice (3) :

Ecrivez un programme 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 Exercice (3) : 

#include
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) || (Aprintf("Le signe du produit %i * %i est positif\n", A, B);
else if ((A0) || (A>0 && Bprintf("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 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

Solution Exercice (4) :  

#include
#include
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) || (A0 && fabs(A)|| (A>0 && Bfabs(B)))
printf("Le signe de la somme %i + %i est positif\n",A,B);
else if ((A0 && fabs(A)>fabs(B))
|| (A>0 && Bprintf("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 qui calcule les solutions réelles d'une équation du second degré ax2+bx+c = 0 en discutant la formule:

Utilisez une variable d'aide pour la valeur du discriminant b-4ac et décidez à l'aide de , si l'équation a une, deux ou aucune solution réelle. Utilisez des variables du type pour A, B et C.

Considérez aussi les cas où l'utilisateur entre des valeurs nulles pour A; pour A et B; pour A, B et C. Affichez les résultats et les messages nécessaires sur l'écran.

Solution Exercice (5) :  

#include
#include
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 + c = 0 */
{
printf("La solution de cette équation du premier degré est :\n");
printf(" x = %.4f\n", (double)C/B);
}
else if (Dprintf("Cette équation n'a pas de solutions réelles.\n");
else if (D==0) /* b^2-4ac = 0 */
{
printf("Cette équation a une seule solution réelle :\n");
printf(" x = %.4f\n", (double)-B/(2*A));
}
else /* b^2-4ac > 0 */
{
printf("Les solutions réelles de cette équation sont :\n");
printf(" x1 = %.4f\n", (-B+sqrt(D))/(2*A));
printf(" x2 = %.4f\n", (-B-sqrt(D))/(2*A));
}
return 0;
}

Exercice (6) : Structure alternative condition if

Considérez la séquence d'instructions suivante:

if (A>B) printf ("premier choix \n"); else
if (A>10) printf ("deuxième choix \n");
if (Belse printf ("quatrième choix \n");

a) Copiez la séquence d'instructions en utilisant des tabulateurs pour marquer les blocs if - else appartenant ensemble.

b) Déterminez les réponses du programme pour chacun des couples de nombres suivants et vérifiez à l'aide de l'ordinateur.

- A=10 et B=5

- A=5 et B=5

- A=5 et B=10

- A=10 et B=10

- A=20 et B=10

- A=20 et B=20

Solution Exercice (6) :  

if (A>B) printf ("premier choix \n"); else
if (A>10) printf ("deuxième choix \n");
if (Belse printf ("quatrième choix \n");

a) Copiez la séquence d'instructions en utilisant des tabulateurs pour marquer les blocs if - else appartenant ensemble.

if (A>B)
printf ("premier choix \n");
else
if (A>10)
printf ("deuxième choix \n");
if (Bprintf ("troisième choix \n");
else
printf ("quatrième choix \n");

b) Déterminez les réponses du programme pour chacun des couples de nombres suivants et vérifiez à l'aide de l'ordinateur.

A=10 et B=5 :

premier choix
troisième choix
A=5 et B=5 :troisième choix
A=5 et B=10 :quatrième choix
A=10 et B=10 :quatrième choix
A=20 et B=10 :premier choix
quatrième choix
A=20 et B=20 :deuxième choix
quatrième choix
Article publié le 02 Janvier 2011 Mise à jour le Mardi, 08 Novembre 2022 13:25 par Salim KHALIL