ENSAM-Casablanca Programmation langage C 2ème Année Préparatoires
Département informatique Intégrés – 2022/2023
TP3
R e m a r q u e s:
• Les exercices sont principalement à base de fonctions, le prototype de
chaque fonction dépend de votre réflexion.
• Les fonctions doivent impérativement être accompagnées d’un programme
principal qui illustre leur utilisation (même si ce n’est pas demandé
explicitement !!!).
Exercice 1 :
Écrire la fonction NombreChiffre du type int qui obtient une valeur entière N (positive
ou négative) du type long comme paramètre et qui fournit le nombre de chiffres de N
comme résultat.
Exemple d’exécution :
Introduire un nombre: 123
Le nombre 123 a 3 chiffres.
Introduire un nombre: 580499
Le nombre 580499 a 6 chiffres.
Exercice 2 :
Un nombre entier est parfait s'il est égal à la somme de ses diviseurs (sauf lui-même).
Ex : 6 = 1 + 2 + 3 est parfait.
1. Écrire une fonction somme_div qui retourne la somme des diviseurs d'un
nombre passé en paramètre.
2. Écrire une fonction parfait qui teste si un nombre passé en paramètre est
parfait et qui retourne 1 s'il l'est et 0 sinon.
Exercice 3 :
Écrire une fonction récursive som_car qui calcule la somme des n premiers carrés.
Par exemple, si n vaut 3, ce sous-programme calculera 12 + 22 + 32. Cette fonction
n’est définie que pour un n supérieur strictement à 0.
– Un seul paramètre n, qui doit être positif.
1/1
ENSAM-Casablanca Programmation langage C 2ème Année Préparatoires
Département informatique Intégrés – 2022/2023
– cas de base : n=1.
– variation de n à chaque appel : -1
Exercice 4 :
Écrire une fonction Syracuse(n) définie par la suite:
qui affiche les n termes de cette suite.
• Version itérative ( int Syracuse_it(int n))
• Version récursive ( int Syracuse_rec(int n))
Exercice 5 :
Écrire une fonction récursive « int Ackerman_rec(int m, int n) » calculant la valeur de la
fonction d’Ackermann :
la fonction d’Ackermann définie pour m>0 et n>0 par :
• A(m,n) = A(m-1,A(m,n-1)) pour m>0 et n>0
• A(0,n) = n+1 pour n>0
• A(m,0) = A(m-1,1) pour m>0
Exercice 6 :
Écrire une fonction triangle permettant d'afficher un triangle d’un allure isocèle
formé de N lignes comme suivant :
Nombre de lignes : 8
*
*o*
*ooo*
*ooooo*
*ooooooo*
*ooooooooo*
*ooooooooooo*
***************
2/1