| Séance d'exercices 4, Programmation I |
| Sciences et Technologies du Vivant, Semestre 1 |
Ecrivez un programme qui demande trois valeurs entières à l'utilisateur, et affiche, le cas échéant, un de ces cinq messages:
Comment écrire le programme en n'utilisant que quatre instructions if (et quatre else) et pas d'opérateurs logiques?
Le but de cet exercice est d'écrire un programme posant des questions à l'utilisateur pour trouver à quel personnage pense l'utilisateur. Le programme ne peut poser que des questions dont la réponse est oui ou non (on supposera que l'utilisateur répondra aux questions du programme par 0 pour non, et 1 pour oui). Les 5 personnages possibles sont: Mlle Rose, le Professeur Violet, le Colonel Moutarde, le Révérend Olive et Mme Leblanc. Seul le Colonel Moutarde a des moustaches, tous portent des lunettes sauf Mlle Rose, et le Professeur Violet est le seul à avoir un chapeau.
Écrivez le programme pour qu'il n'utilise que 4 instructions if (et autant de else que nécessaire). Comment écrire le programme pour qu'il trouve la bonne réponse après 3 questions au maximum ?
Modifiez ce programme pour qu'il demande une nouvelle valeur tant que l'utilisateur n'a pas trouvé.
La suite de Syracuse repose sur un principe simple. Prenez un nombre au hasard:
Renouvellez cette opération plusieurs fois. Après suffisamment d'itérations, vous devriez finir par tomber sur la valeur 1. Par exemple, à partir de 17, on trouve la suite de valeurs: 52 26 13 40 20 10 5 16 8 4 2 1.
1: 0 iterations.
2: 1 iterations.
3: 7 iterations.
4: 2 iterations.
5: 5 iterations.
6: 8 iterations.
7: 16 iterations.
8: 3 iterations.
9: 19 iterations.
10: 6 iterations.
Compléter le programme suivant aux endroits indiqués par // ... pour que les deux affichages apres la boucle for soient corrects. Exécutez plusieurs fois le programme pour tirer des nombres aléatoires différents et tester les différents cas.
Comment écrire le programme sans utiliser de if dans la boucle for ?
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main(int argc, char **argv) {
bool au_moins_un_nombre_superieur_a_90;
bool aucun_nombre_inferieur_a_10;
srand(time(0));
// ...
for(int i = 0; i < 10; i++) {
int r = rand() % 100;
cout << r << ", ";
// ...
}
cout << endl;
if (au_moins_un_nombre_superieur_a_90)
cout << "Au moins un des nombres est superieur a 90." << endl;
if (aucun_nombre_inferieur_a_10)
cout << "Aucun nombre n'est inferieur a 10." << endl;
}
Ecrivez un programme qui permet à l'utilisateur de calculer le volume de différentes primitives géométriques. Votre programme devra afficher:
De quelle primitive voulez-vous calculer le volume ? Tapez: 1 pour une sphere 2 pour un parallelepipede rectangle 3 pour un cylindre
Utilisez pour cela l'instruction switch.
Calculez le nombre lu à rebours d'un nombre positif entré au clavier. Exemple: Entrée: 1234 Affichage: 4321.