informatique - S2 2009
TP 2 - Boucles
département Mesures Physiques - IUT1 - Grenoble1. La boucle for
On considère le programme suivant :
#include <ansi_c.h>
main() {
int i;
for (i=0 ; i<10 ; i++) {
printf("%d\n",i);
} }
(a) L’exécuter pas-à-pas pour en comprendre le fonctionnement, (b) Le modifier pour afficher les entiers compris entre 10 et 20,
(c) Le modifier pour afficher, du plus grand au plus petit, les nombres compris entre 16 et -3,
(d) Le modifier pour qu’il affiche les racines carrées des entiers entre 0 et 20.
2. La boucle while
On considère le programme suivant :
#include <ansi_c.h>
main() {
char reponse;
Cls();
while { reponse != ’n’ ) {
printf("Je vous affiche un nombre au hasard : %d\n", rand());
printf("Voulez-vous contiuer (o/n) ?\n");
scanf("%c", &reponse);
} }
(a) L’exécuter pas-à-pas pour en comprendre le fonctionnement, (b) L’exécuter une nouvelle fois : que constatez-vous ? Comment cor-
riger ce problème ? 3. Puissance entière
Ecrire un programme qui demande à l’utilisateur un entier strictement positifnet un réelx, puis affiche la valeur dexn.
Modifier le programme pour qu’il fonctionne correctement pour un en- tiernquelconque (positif, négatif ou nul).
4. Suite de Syracuse
Ecrire un programme qui demande à l’utilisateur de choisir un entier u0puis affiche successivement les termes de la suite(un)définie par
un+1 =
un
2 siunest pair, 3un+ 1
2 sinon.
Le tester avec plusieurs valeurs pouru0. Que remarque-t-on ?