EST-Salé Algorithmique et langage C
TP 3 : Les instructions itératives
Exercice 1
Editer, compiler et exécuter le programme C suivant :
int I = 0;
while (I <10)
{ printf("%d \n", I);
I++; }
• Que fait le programme ?
……………………………………………….……………………………………………….…………………………………
• Remplacer les deux instructions suivantes par une seule:
printf("%d \n", I);
I++;
……………………………………………….……………………………………………….…………………………………
• Faire des modifications pour :
Afficher les nombres de 0 à 30 : …….……………………………………………….………………………………
Afficher les nombres de 0 à 20 en initialisant I à 0 : …….……………………………………………….……………
Afficher les nombres de 30 à 0 : …….……………………………………………….………………………………
Afficher les nombres de 0 à 20 avec un pas de 2 : …….……………………………………………….………………
Exercice 2
Soit les instructions suivantes :
float N;
do {
printf("Donnez un nombre entre 1 et 10 :");
scanf("%f", &N);
printf("Le nombre entré est :%f ", N); }
while (N<1 || N>10);
Que fait le programme ?
……………………………………………….……………………………………………….…………………………………
Exercice 3
Soit les instructions suivantes :
int n, t;
for (t=0, n=1 ; n<101; n++)
t+=n;
printf("La somme des nombres de 1 à 100 est %d\n", t);
Que fait le programme ?
……………………………………………….……………………………………………….…………………………………
Exercice 4
Que fait l'algorithme suivant ?
# include <stdio.h>
main () {
int N,i;
printf ("Entrez un nombre : ") ;
scanf ("%i",&N) ;
for( i = 1; i<=10 ;i++ )
printf ("%i x %i = %i \n", N,i,N*i) ;
}
……………………………………………….……………………………………………….…………………………………
Professeur : Halima HOUSNY 1
EST-Salé Algorithmique et langage C
Exercice 5
Ecrire les programmes C suivants :
1. Ecrire un programme C qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur
moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier.
Résoudre ce problème en utilisant :
a) while
b) do – while
c) for
Laquelle des trois variantes est la plus naturelle pour ce problème ?
2. Ecrire un programme C qui calcule la factorielle N! = 1x2x3...(N-1)xN d'un entier naturel N en respectant
que 0!=1.
a) Utiliser while
b) Utiliser for.
3. Écrire un programme C qui permet, à partir de 3 coefficients réels (a, b, c) entrés par l'utilisateur de
calculer les racines de l’équation du 2ème degré ax²+bx+c=0.
4. Écrire un programme C qui permet de dire si une année est bissextile ou non. Une année est bissextile si
elle est divisible par 4 et non divisible par 100 ou divisible par 400.
Exemple : L'année 2004 est bissextile alors que l'année 1700 n'est pas bissextile.
5. Écrire le programme C permettant d’afficher tous les multiples de 9 inférieurs à 485.
6. Modifier l’algorithme et le programme précédent pour afficher tous les multiples d'un nombre a inférieurs
à b. ( a et b sont donnés par l’utilisateur)
7. Écrire le programme C permettant de calculer, pour un entier N> 0, la somme : SN = 1 + 2 + 3 + … + N
8. Écrire le programme C permettant de calculer la somme : Sn = 1 + 1/2 + 1/3 + …… + 1/n
9. Écrire le programme C permettant d’afficher le minimum d’une suite de 10 réels saisis au clavier.
10. Écrire le programme C qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse
convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et
inversement, « Plus grand ! » si le nombre est inférieur à 10.
11. Écrire le programme C qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce
nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
12. Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les cinq nombres suivants.
Par exemple :
Entrez le nombre de départ : 17
Les cinq nombres suivants sont :
18
19
20
21
22
Professeur : Halima HOUSNY 2