Travail pratique

Pages: 7 (1702 mots) Publié le: 21 mars 2013
ESIEE IN4A11 Programmation

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 :

/* intsomme_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 entierssi 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 : intfactorielle(int n) ;

3

PGCD (*)

Écrire une fonction qui retourne le plus grand commun diviseur (pgcd ) de deux nombres entiers positifs par l’algorithme d’Euclide : pgcd(a, b) = Prototype : int pgcd(int a, int b) ; a si b = 0 pgcd(b, a mod b) sinon

4

Conversion Fahrenheit - Centigrade (*)
5 Écrivez la fonction qui convertit les degrés Fahrenheit en degrés centigrades θC = 9 (θF − 32)Prototype : double F_vers_C(double F) ;

5

Volume d’une sphère (*)
Écrivez la fonction qui calcule le volume d’une sphère étant donné son rayon V = 4 πR3 3 Prototype : double volume_sphere(double rayon) ;

6

Conversion kilomètres-miles (*)
Écrivez la fonction qui convertit les kilomètres en miles (1 mile = 1,609 km) Prototype : double km_vers_mile(double km) ;

7

Plus petit diviseurpremier (**)
Écrire la fonction qui retourne le plus petit diviseur premier d’un nombre entier supérieur à 1. Prototype : int plus_petit_diviseur_premier (int n) ;

8

Racine carrée entière (**)

Écrire une fonction qui calcule la racine carrée entière d’un nombre entier positif par soustractions successives des nombres impairs. p p+1 √ Principe : Si (2i − 1) ≤ n < (2i − 1), alors p ≤ n < p +1
i=1 i=1

Exemple : racine de 43 43 − 1 = 42, 42 − 3 = 39, 39 − 5 = 34, 34 − 7 = 27, 27 − 9 = 18, 18 − 11 = 7 6 soustractions en tout, donc la racine entière de 43 est 6 Prototype : int racine_entiere(int n) ;

–3/8–

IN4A11

Exercices en C

Les types simples

9

Racine carrée (**)

Écrire une fonction qui calcule la racine carrée d’un nombre réel positif par l’algorithme deNewton. Principe : La suite définie par u0 = 1 a un + un un+1 = 2 √ converge vers a Prototype : double racine_carre(double x) ;

10

Suite bizarre (**)
1 3 = 4un − 1

Écrire la fonction qui calcule le nème terme de la suite initialisée par u0 = un+1

Testez pour n = 100. Quel est le résultat théorique ? Expliquez l’écart. Prototype : double suite_bizarre(int n) ;

11

Suite de...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • Travail pratique
  • Travail pratique
  • Travail pratique
  • TRAVAIL PRATIQUE
  • Travail pratique vb.net
  • Cas pratique droit du travail
  • Travail Pratique 1_INF1250
  • Travail pratique guerre froide

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !