North American Private University AU: 2024-2025
IIT: International Institute of Technology Section: 1-GI
Département de Génie Informatique
Travaux Dirigés -3- Structures Répétitives
Algorithmique et Progrmmation en C
Exercice 1
Soit le petit programme suivant :
#include <stdio.h>
main()
{
int i, n, som ;
som = 0 ;
for (i=0 ; i<4 ; i++)
{ printf ("donnez un entier ") ;
scanf ("%d", &n) ;
som += n ;
}
printf ("Somme : %d\n", som) ;
}
Ecrire un programme réalisant exactement la même chose, en employant, à la place de l’instruction
f or :
• une instruction while,
• une instruction do...while.
Exercice 2
Ecrire un programme qui affiche la moyenne d’une suite d’entiers positifs entrés au clavier. On arrêtera
la saisie quand le nombre -1 est entré, comme dans l’exemple suivant :
Entrez un entier positif : 5
Entrez un entier positif : 2
Entrez un entier positif : 3
Entrez un entier positif : -1
La moyenne de ces 3 entiers vaut 3.333333
Exercice 3
Ecrire un programme qui calcule xn , où x est un nombre réel de type double et n un entier, tous deux
entrés au clavier. On écrira le programme en utilisant une boucle f or. Penser à traiter le cas où n
est une valeur négative.
1
Exercice 4
Écrire un programme qui détermine la n-ième valeur Un (n étant fourni en donnée) de la ”suite de
Fibonacci” définie comme suit :
U1 = 1
U2 = 1
Un = Un−1 + Un−2 pour n>2
Exercice 5
Ecrire un programme qui affiche le PGCD (Plus Grand Commun Diviseur) de deux entiers entrés au
clavier. Penser à proposer deux solutions différentes.
Exercice 6
Deux nombres a et b sont dits nombres amis si la somme des diviseurs de a est égale à b et la somme
des diviseurs de b est égale à a. Par exemple 220 et 284 sont des nombres amis. Ecrire un programme
qui vérifie si deux entiers distincts et strictement positifs sont amis ou non.
Exercice 7
Ecrire un programme qui affiche les n premiers nombres entiers premiers. n une valeur positive
supérieure à 10 saisie au clavier. Si l’utilisateur choisit n = 5, le programme affichera les valeurs
2, 3, 5, 7, 11.
Exercice 8
Pour un entier n strictement positif on associe n/2 si n est pair et 3n + 1 si n est impair. En réappli-
quant cette transformation à l’entier obtenu, on définit un algorithme dit de Syracuse. On admettra
que pour tout entier n strictement positif de départ on finisse toujours par arriver à 1.
Ecrire un programme C qui permet de
• saisir un entier n strictement positif
• afficher la liste des entiers obtenus jusqu’à 1 selon l’algorithme de Syracuse,
• afficher le nombre de fois qu’il est nécessaire d’appliquer la transformation pour y arriver.
Voici un exemple de déroulement de l’algorithme:
Entrer un entier (strictement positif) : 12
6 3 10 5 16 8 4 2 1
Le nombre de transformation nécessaire avant d’arriver à 1 est : 9
2
Exercice 9
• Écrire un programme qui calcule la racine carrée entière d’un nombre entier positif par sous-
tractions successives des nombres impairs.
Exemple: racine carrée de 43:
43-1=42, 42-3=39, 39-5=34, 34-7=27, 27-9=18, 18-11=7
6 soustractions en tout, la racine carrée entière de 43 est 6.
• Écrire un programme qui calcule la racine carrée d’un nombre réel positif par la méthode de
Newton.
Un + Ua √
Principe: la suite définie par U0 = 1 et Un+1 = 2
n
converge vers a
Exercice 10
x 2 3
Calcul d’une valeur approchée de la fonction exponentielle. On admettra que : ex = 1 + 1! + x2! + x3! ...
i
Ou encore : ex = ni=0 ai avec ai = xi!
P
On arrêtera le calcul dès que la valeur de ai devient inférieur à une valeur donnée . Écrire un
programme qui calcule la valeur approchée de ex .
Exercice 11
On souhaite écrire un programme qui calcule une valeur approchée du nombre d’or utilisé par les an-
ciens comme nombre idéal pour la sculpture et l’architecture. Si l’on considère deux suites numériques
(U) et (V) telles que pour n strictement supérieur à 2 :Un = Un−1 + Un−2 et Vn = UUn−1 n
On montre que la suite (V ) tend vers une limite appelé nombre d’or:
nbOr = 1, 61803398874989484820458683436564
L’algorithme s’arrête quand on atteint une précision . U0 = 1, U1 = 2