Les fichiers de cette série devront se trouver dans le répertoire ~/Desktop/myfiles/cpp/serie04. Si ce n'est pas déjà fait, créez un sous-répertoire serie04 dans le répertoire ~/Desktop/myfiles/cpp.
Rappelez-vous le fonctionnement de ces séries : elles ont des niveaux et le but n'est pas de tout faire. Revoir si nécessaire les instructions à ce sujet données la semaine passée.
Par ailleurs, remarquez qu'il n'est pas nécessaire d'imprimer
systématiquement les séries; la forme électronique (dans votre navigateur) permet d'utiliser les
liens, ainsi que le copier-coller avec le bouton central de la souris.
De plus, si vraiment vous préférez lire un énoncé sur papier, vous avez tout intéret
à utiliser le livre d'exercices C++ par la pratique;
vous gagnerez un temps considérable pendant les TPs en évitant d'imprimer les
séries et votre lecture sera facilitée par la mise en page nettement plus soignée
(vous bénéficierez en plus des ajouts qu'offre le livre par rapport aux séries).
Écrivez un programme tables.cc affichant les tables de multiplication de 2 à 10.
Votre programme devra produire la sortie suivante à l'écran :
Tables de multiplication Table de 2 : 1 * 2 = 2 ... 10 * 2 = 20 ... Table de 5 : 1 * 5 = 5 2 * 5 = 10 ... ... Table de 10 : 1 * 10 = 10 ...
Utilisez deux structures d'itération for imbriquées l'une dans l'autre.
L'objectif de cet exercice est de résoudre le problème suivant :
Lorsqu'une balle tombe d'une hauteur initiale h, sa
vitesse à l'arrivée au sol est
.
Immédiatement après le rebond, sa vitesse est v1=eps*v (où eps
est une constante et v la vitesse avant le rebond).
Elle remonte alors à la hauteur
.
Le but est d'écrire un programme (rebonds1.cc) qui calcule la hauteur à laquelle la balle remonte après un nombre nbr de rebonds.
On veut résoudre ce problème, non pas du point de vue formel (équations) mais par simulation du système physique (la balle).
Utilisez une itération for et des variables v, v1, (les vitesses avant et après le rebond), et h, h1 (les hauteurs au début de la chute et à la fin de la remontée).
Écrivez le programme rebonds1.cc qui affiche la hauteur après le nombre de rebonds spécifié.
Votre programme devra utiliser la constante g, de valeur 9,81 et demander à l'utilisateur d'entrer les valeurs de
Essayez les valeurs H0 = 25, eps = 0.9, NBR = 10. La hauteur obtenue devrait être environ 3.04.
Remarque :
On se demande maintenant combien de rebonds fait cette balle avant que la hauteur à laquelle elle rebondit soit plus petite que (ou égale à) une hauteur donnée h_fin.
Écrivez le programme rebonds2.cc qui affiche le nombre de rebonds à l'écran.
Il devra utiliser une boucle do...while, et demander à l'utilisateur d'entrer les valeurs de :
Essayez les valeurs H0=10, eps=0.9, h_fin=2. Vous devriez obtenir 8 rebonds.
Écrivez le programme premier.cc qui demande à l'utilisateur d'entrer un entier n strictement plus grand que 1, puis décide si ce nombre est premier ou non.
Vérifier si le nombre n est pair (si oui, il n'est pas premier sauf si c'est 2).
Pour tous les nombres impairs inférieurs ou égaux à la racine carrée de n, vérifier s'ils divisent n. Si ce n'est pas le cas, alors n est premier.
Si n n'est pas premier, votre programme devra afficher le message: "Le nombre n'est pas premier, car il est divisible par D ", où D est un diviseur de n autre que 1 et n.
Sinon, il devra afficher le message: "Je crois fortement que ce nombre est premier".
Testez votre programme avec les nombres : 2, 16, 17, 91, 589, 1001, 1009, 1299827 et 2146654199. Indiquez ceux qui sont premiers.
Les résultats devraient ressembler à ceci :
2 est premier 16 n'est pas premier, car il est divisible par 2 17 est premier 91 n'est pas premier, car il est divisible par 7 589 n'est pas premier, car il est divisible par 19 1001 n'est pas premier, car il est divisible par 7 1009 est premier 1299827 est premier 2146654199 n'est pas premier, car il est divisible par 46327
L'objectif de cet exercice est de résoudre le problème suivant :
Une banque prête une somme S0 à une personne X. Chaque mois, X rembourse un montant r (sur la somme empruntée) et paye par ailleurs (en plus) un intérêt ir*S, où S est la somme restant à rembourser (avant déduction du remboursement mensuel).
Quelle est la somme des intérêts encaissés par la banque quand X a remboursé la totalité de son prêt ?
Écrivez le programme pret.cc qui calcule la somme des intérêts encaissés et la durée en mois du remboursement, puis qui affiche ces informations à l'écran !
Contraintes :
Testez votre programme avec les valeurs suivantes : S0=30000, r=1200, ir=0.01 (i.e. 1%). La somme des intérêts encaissés (sur 25 mois) est alors de 3900.
a) Écrivez un programme qui calcule les 10 premiers termes de la suite Un telle que:
U0 = 1, Un+1 = | Un |
n+1 |
U0 = 1
U1 = 1
U2 = 0.5
U3 = 0.1666667
U4 = 0.0416667
U5 = 0.0083333
U6 = 0.0013889
U7 = 0.000198413
U8 = 2.48016e-5
U9 = 2.75573e-06
U10 = 2.75573e-07
b) Modifiez votre programme pour qu'il calcule simultanément la suite Un et la série Vn, où
Vn = | n | Ui . |
∑ | ||
i = 0 |
Vérifiez que Vn converge vers e = exp(1) = 2.71828...
a) Ecrivez un programme qui affiche les valeurs 1 à 9 en ligne, à l'aide d'une boucle for:
123456789
b) Modifiez le programme pour qu'il affiche 9 lignes similaires, à l'aide de 2 boucles for:
123456789 123456789 . . . 123456789
c) Comment modifier le programme pour qu'il affiche un triangle ?
1 12 123 1234 12345 123456 1234567 12345678 123456789
d) Modifiez une dernière fois votre programme, pour qu'il affiche une pyramide inversée:
1 12 123 1234 12345 123456 1234567 12345678 123456789
Utilisez des boucles afin de construire un triangle isocèle formé par le caractère étoile (*). Affichez-en n lignes, où n sera entré au clavier par l'utilisateur.
Exemple: pour n = 5 :
* *** ***** ******* *********