Exercice langage C : Réaliser multiples Programmes

 

Travail à Faire:

  1. Réaliser un programme qui affiche la consommation d'un véhicule en litres aux 100 km, à partir d'une distance parcourue lue au clavier et d'un nombre de litres de carburant consommé lu au clavier
  2. Réaliser un programme qui affiche le discriminant d'une équation du second degré (ax2 + bx + c = 0)
    1. les valeurs a, b et c seront lues au clavier
  3. Réaliser un programme qui qui à partir d'une somme d'argent lue au clavier, donne le nombre minimal de pièces de 2 euros, de 1 euro, de 50 centimes, 20 centimes, 10 centimes, 5 centimes, 2 centimes et 1 centime qui compose cette somme.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/* Programme de calcul et d'affichage du discriminant d'une equation du
 * second degre, sous la forme ax2 + bx + c = 0, avec a,b,c lus au clavier */

#include 

int main() 
{
  double a, b, c, discriminant;
  printf("a: ");
  scanf("%lf", &a);
  printf("b: ");
  scanf("%lf", &b);
  printf("c: ");
  scanf("%lf", &c);

  /* pas d'operateur 'square' en C */
  discriminant = b*b - 4*a*c;

  printf("Discriminant de %.2fx2 + %.2fx + %.2f = %.2f\n", a, b, c, discriminant);

  (discriminant == 0) ? printf("Une seule racine\n"):0;
  (discriminant > 0) ?  printf("Deux racines reelles\n"):0;
  (discriminant < 0) ?  printf("Deux racines complexes\n"):0;

  return 0;
}
2)

/* Programme de calcul et d'affichage des pieces necessaires pour produire
 * une somme, lue au clavier */

#include 

int main() 
{
  double sdouble;
  int sEnCentime, nbPieces;
  printf("somme en euros: ");
  scanf("%lf", &sdouble);

  /* arrondi a l'entier le plus proche !
   *   en effet, les nombre decimaux sont rarement representes de maniere
   *   exacte. Par exemple, le nombre 0,3 aura une representation approchee
   *   de 0.300000011920928955 en float et de 0.299999999999999989 en double.
   *   Dans ces deux cas, ajouter 0.005, permettra d'obtenir 30 centimes.
   */
  sEnCentime = (sdouble + 0.005)*100;

  nbPieces = sEnCentime / 200;
  printf("Nombre de pieces de 2 euros : %d\n", nbPieces);
  sEnCentime %= 200;

  nbPieces = sEnCentime / 100;
  printf("Nombre de pieces de 1 euros : %d\n", nbPieces);
  sEnCentime %= 100;

  nbPieces = sEnCentime / 50;
  printf("Nombre de pieces de 50 centimes: %d\n", nbPieces);
  sEnCentime %= 50;

  nbPieces = sEnCentime / 20;
  printf("Nombre de pieces de 20 centimes: %d\n", nbPieces);
  sEnCentime %= 20;

  nbPieces = sEnCentime / 10;
  printf("Nombre de pieces de 10 centimes: %d\n", nbPieces);
  sEnCentime %= 10;

  nbPieces = sEnCentime / 5;
  printf("Nombre de pieces de 5 centimes: %d\n", nbPieces);
  sEnCentime %= 5;

  nbPieces = sEnCentime / 2;
  printf("Nombre de pieces de 2 centimes: %d\n", nbPieces);
  sEnCentime %= 2;

  printf("Nombre de pieces de 1 centime: %d\n", sEnCentime);

  return 0;
}
3)

/* Programme de calcul et d'affichage de la repartition en groupes de
 * personnes, d'effectifs equilibres, valeurs lues au clavier */

#include 

int main() 
{
  int groupes, personnes;
  printf("groupes: ");
  scanf("%d", &groupes);
  printf("personnes: ");
  scanf("%d", &personnes);

  printf("Nombre de grands groupes : %d et leur effectif %d\n",
    personnes % groupes, personnes / groupes);

  printf("Nombre de petits groupes : %d et leur effectif %d\n",
    groupes - personnes % groupes, 1 + personnes / groupes);

  return 0;
}