Exercice langage C: Les programmes de teste
Rédigé par GC Team, Publié le 16 Mars 2012, Mise à jour le Lundi, 07 Novembre 2022 13:14Travail à 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.
#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
.
#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;
}