Exercice langage C: Les programmes de teste

Travail à Faire:

a) Créez un programme qui lit deux valeurs entières x et y, et qui effectue l'un après l'autre les cinq tests indiqués ci-dessous. Pour chacun des tests, afficher un texte court si le test est vrai, ne rien afficher sinon.

Tests:

  • x est égal au double de y
  • x est pair
  • x est pair et y est impair
  • x est compris (strictement) entre -15 et +10

b) Ajoutez maintenant le code pour indiquer si  est plus grand que 50, compris entre 5 et 50, compris entre -5 et +5 ou plus petit que -5. Chaque limite fait partie de l'intervalle placé à sa droite. Par exemple, +5 fait partie de l'intervalle [+5;+50[, +50 n'en fait pas partie.

Comment écrire le programme sans utiliser d'opérateurs logiques (&& ou ||) ? Indice: utilisez des if imbriqués.


a) Notez l'usage de < ``strictement plus petit'' et <= ``plus petit ou egal''. N'oubliez pas la différence entre l'affectation (=) et l'égalité (==). Plusieurs conditions peuvent être testées dans une seule instruction if, à l'aide des opérateurs && (et) et || (ou). Pour tester si un nombre est pair, il suffit de vérifier s'il est divisible par 2, i.e. si le reste de sa division entière par 2 est 0.

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
#include 

using namespace std;

int main(int argc, char **argv) {
  int x, y;

  cout << "Entrez x: ";
  cin >> x;

  cout << "Entrez y: ";
  cin >> y;

  if (x == 2 * y)
    cout << "x = 2y" << endl;

  if (x % 2 == 0)
    cout << "x est pair" << endl;

  if ((x % 2 == 0) && (y % 2 ==  1))
    cout << "x est pair et y est impair" << endl;

  if (-15 < x && x < 10)
    cout << "x est compris (strictement) entre -15 et +10" << endl;

  return 0;
}

b) Afin de ne pas utiliser d'opérateurs logiques (&& et ||), il faut employer efficacement les instructions de test if et else. Souvenez-vous que les instructions if peuvent être suivies d'un bloc d'instructions dans lequel figurent d'autres instructions if.



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
#include 

using namespace std;

int main(int argc, char **argv) {
  float x;

  cout << "Entrez une valeur: ";
  cin >> x;

  if (x >= 50)
    cout << "x >= 50" << endl;
  else {           // si x < 50
    if (x >= 5)
      cout << "5 <= x < 50" << endl;
    else {         // si x < 5
      if (x >= -5)
        cout << "-5 <= x < 5" << endl;
      else         // si x < -5
        cout << "x < -5" << endl;
    }
  }

  return 0;
}