Travail pratique
Algorithmique Exercices simples
Jean-Claude GEORGES
Année scolaire 2007-2008
IN4A11
Exercices en C
Les types simples
1
Exemple d’écriture d’une fonction
Écrire une fonction qui calcule la somme des n premiers nombres – à l’aide d’une boucle for ; – en utilisant la récursivité ; – en utilisant une formule. Exemple de solution :
/* int somme_nombres_iteratif(int n) * calcule la somme des n premiers nombres * Principe : accumulation dans une variable int des n premiers nombres * arguments : n entier positif * retour : somme des n premiers entiers si n>0 0 si n est négatif ou nul * JCG écrit le 22/03/2001 modifié le 1/09/2006 */ int somme_nombres_iteratif(int n) { int i, s=0; for (i=1;i0 0 si n est nul indéterminé si n est négatif * JCG écrit le 22/03/2001 modifié le 1/09/2006 */ int somme_nombres_recursif(int n) { if (n==0) return 0; else return n + somme_nombres_recursif(n-1); } /***********************************************************************/ /* int somme_nombres_formule(int n) * calcule la somme des n premiers nombres * Principe : S(n)=(n*(n+1))/2 * arguments : n entier positif * retour : somme des n premiers entiers si n>0 0 si n est nul somme des |n|-1 premiers entiers si n est négatif * JCG écrit le 22/03/2001 modifié le 1/09/2006 */ int somme_nombres_formule(int n) { return (n*(n+1))/2; } /***********************************************************************/ #include int main(void) { int n; scanf("%d",&n); printf("somme_nombres_iteratif(%d) = %d \n",n,somme_nombres_iteratif(n)); printf("somme_nombres_recursif(%d) = %d \n",n,somme_nombres_recursif(n)); printf("somme_nombres_formule (%d) = %d \n",n,somme_nombres_formule(n)); return 0; }
–2/8–
IN4A11
Exercices en C
Les types simples
2
Factorielle (*)
Écrire une fonction qui retourne la factorielle d’un entier positif ou nul (5! = 5 × 4 × 3 × 2 × 1). Que se passe-t-il en cas de dépassement de capacité ? Prototype : int