| Séance d'exercices 3, Programmation I |
| Sciences et Technologies du Vivant, Semestre 1 |
== et pas =
if ( ) ni après celles du for ( )
Une instruction cout ne se termine jamais par
l'opérateur <<, mais toujours par un des
éléments à afficher. Exemple:
cout << "Voici un nombre: " << n << endl; // correct cout << "Voici un nombre: " << n <<; // FAUX cout << "Voici un nombre: " << n; // correct
Si une boucle ne s'arrête pas, tapez Ctrl-C pour stopper le programme. Plusieurs causes sont possibles:
Créez un programme avec le code suivant:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char **argv)
{
srand(0);
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
return 0;
}
Lancez l'exécutable plusieurs fois pour vérifier que les mêmes nombres sont affichés.
Changez l'instruction srand(0); par srand(time(0)); et vérifiez que cette fois les nombres sont différents à chaque exécution.
N'oubliez pas d'ajouter #include <time.h> au début du
programme pour pouvoir utiliser la fonction time().
a) Créez un programme qui lit deux valeurs entières
et
, 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:
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) Écrivez un programme qui calcule les 10 premiers termes de
la suite
telle que:
| (1) |

b) Modifiez votre programme pour qu'il
calcule simultanément la suite
et la série
, où
. Vérifiez que
converge vers
.
123456789
123456789 123456789 . . . 123456789
1 12 123 1234 12345 123456 1234567 12345678 123456789
1
12
123
1234
12345
123456
1234567
12345678
123456789
Ecrivez un programme qui tire une valeur entière au hasard, comprise entre 0 et 10, puis demande à l'utilisateur de deviner la valeur qu'il a choisie. Le programme affichera un message indiquant alors si la valeur entrée est trop petite, trop grande, ou si l'utilisateur a trouvé la bonne valeur.
Exemple d'exécution:
J'ai choisi un nombre entre 0 et 10. Essayez de le deviner: 4 Mon nombre est plus grand.
Reprenez votre programme de la séance précédente qui calculait
les racines d'une équation du second degré. Ce programme
renvoyait une erreur à l'exécution au moment où il essayait de
calculer la racine carrée du discriminant
, quand
était négatif. L'instruction if va nous permettre
d'éviter cette erreur à l'exécution.
Modifiez votre programme pour qu'il affiche le message:
Je ne sais pas calculer les racines dans ce cas.
si
. Si
, le programme devra afficher les racines de l'équation.
Vérifiez que votre programme est correct: