Boucles
Notions et points abordés :
Syntaxe |
Exécution |
Exemple |
for(expr1; expr2; expr3) instruction |
expr1 est une instruction exécutée une seule fois, en début de boucle. expr2 est une condition évaluée avant chaque itération. Si le résultat est faux alors la boucle se termine. expr3 est une instruction exécutée à la fin de chaque itération. |
int
i; for(i=1; i<=100; i++) |
Syntaxe |
Exécution |
Exemple |
while(expression) instruction
|
expression est une condition évaluée avant chaque itération. Si le résultat est faux alors la on sort de la boucle. |
int
i=1; |
Syntaxe |
Exécution |
Exemple |
do instruction while(expression) |
expression est une condition évaluée après chaque itération. Si le résultat est faux vrai alors on sort de la boucle. |
int
i=0; do |
Écrire un programme C qui lit un
entier n, calcule une des sommes suivantes et affiche le
résultat :
Factorielle
Écrire un
programme C qui
calcule la factorielle n! d’un nombre n lu au
clavier, tant que l'utilisateur le demande. Rappel : n! = 1.2. …
.n
et 0!= 1.
Nombres premiers
Écrire un programme C qui
affiche tous les nombres premiers de 1 à 100.
Rappel : Un nombre est premier s’il
n’est divisible que par 1 et par lui-même.
Suites
Écrire un programme C qui lit un entier n et affiche le n-ième élément de la suite suivante :
u0 = 1 ; un
= 2un-1 +3, n>0
Table de multiplication
Écrire un programme C qui affiche la table de multiplication d’un entier n lu au clavier.
X*Y | 1 2 3 4 5 6 7 8 9 10
------------------------------------------------
1 | 1 2 3 4 5 6 7 8 9 10
2 | 2 4 6 8 10 12 14 16 18 20
3 | 3 6 9 12 15 18 21 24 27 30
4 | 4 8 12 16 20 24 28 32 36 40
5 | 5 10 15 20 25 30 35 40 45 50
6 | 6 12 18 24 30 36 42 48 54 60
7 | 7 14 21 28 35 42 49 56 63 70
8 | 8 16 24 32 40 48 56 64 72 80
9 | 9 18 27 36 45 54 63 72 81 90
10 | 10
20 30 40 50 60 70 80
90 100
Compter les voyelles
Écrire un programme C qui calcule le nombre de voyelles dans un texte non accentué et terminé par un caractère #. On suppose que le texte n'est composé que de lettres minuscules non accentuées, que les mots ne sont séparés que par des espaces, qu'il n'y a aucune ponctuation et qu'il n'y a pas de caractère retour-chariot.
Deviner un nombre
Écrire un programme C qui tire au sort un nombre de 1 à 100 et demande à l’utilisateur de le deviner. Si l’utilisateur a trouvé le nombre, alors le jeu s’arrête ; sinon l’ordinateur répond "plus petit" ou "plus grand". L’utilisateur a le droit à cinq tentatives.
Deviner un nombre (version 2)
Écrire un programme C qui tire au sort un nombre de 1 à 100 et demande à l’utilisateur de le deviner. Si l’utilisateur a trouvé le nombre, alors le jeu s’arrête ; si l'écart entre le nombre recherché et la réponse de l'utilisateur est
plus petit que 30, alors l’ordinateur répond "très froid";
plus petit que 20, alors l’ordinateur répond "froid";
plus petit que 10, alors l’ordinateur répond "?";
plus petit que 5, alors l’ordinateur répond "chaud";
plus petit que 2, alors l’ordinateur répond "très chaud".
L’utilisateur a le droit à cinq tentatives pour deviner le nombre.
Le jeu des allumettes
Chaque joueur puise à tour de rôle de 1 à 3 allumettes dans un tas comprenant initialement N allumettes. Celui qui prend la dernière allumette gagne le jeu. Le programme vérifie la validité des choix des 2 joueurs et désigne le vainqueur.
Triplets
Écrire un programme C qui affiche les triplets d’entiers (i, j, k), tel que j < i < n (n donné par l’utilisateur) et i2+ j2= k2. Modifier le programme pour que (i, j, k) vérifie i3 + j3 = k3.
Puissance
Calculer la puissance n-ième de x (x^n), pour x et n des entiers lus au clavier.
Rectangle
Écrire un programme C qui demande la longueur et la largeur d’un rectangle et affiche :
le rectangle plein d’étoiles
******
******
******
******
******
* *
* *
******
Triangle
Écrire un programme C qui lit
un des côtés d’un triangle et affiche :
*
**
* *
* *
*****
Compte à rebours
Écrire un
programme C qui lit un
nombre positif entré au clavier comme une suite de chiffres
non nuls, terminée par zéro (Contrôler s'il s'agit
vraiment de
chiffres), et qui affiche le nombre à rebours.
Exemple :
./compte_a_rebours
Entrer une suite de chiffres (terminée par 0): 1 2 3 4 0
Le résultat est : 4321
PGCD
Écrire un
programme C qui
calcule le plus grand commun diviseur de deux entiers naturels
entrés au clavier
en utilisant l'algorithme d'Euclide (pgcd(a,b) = pgcd(b,a modulo b), si
a>b>0).