Travaux pratiques : calculs sur les entiers Université Bordeaux I Module I20

Travaux pratiques, semaine 2


Calculs sur les entiers


1  Coefficients du binôme

  1. Ecrire un programme qui comporte la fonction factorielle et une fonction binome1 qui calcule :
    Cnk = n!
    k!(n-k)!

    La fonction principale doit lire la valeur de n, et afficher toutes les valeurs de Cnk, pour 0 £ k £ n.

    Quelle est la plus petite valeur de n pour laquelle la fonction binome1 est incorrecte (à cause d'un débordement) ?

  2. Ajouter une fonction binome2 qui, par exemple, calcule
    C73 = 7 ×6 ×5
    3 ×2 ×1
    sous la forme 7 / 3 * 6 / 2 * 5 / 1 (respecter l'ordre des opérations).

    Examiner les résultats en remplaçant binome1 par binome2 dans la fonction principale, et expliquer.

  3. Ajouter une fonction binome3 qui, par exemple, calcule C73 sous la forme 5 / 1 * 6 / 2 * 7 / 3.

    Examiner les résultats en remplaçant binome2 par binome3 dans la fonction principale. Expliquer pourquoi ce mode de calcul est toujours correct (tant qu'il n'y a pas de débordement).

  4. Ajouter une fonction binome4 qui, par exemple, calcule C73 sous la forme 7 / 1 * 6 / 2 * 5 / 3.

    Examiner les résultats en remplaçant binome3 par binome4 dans la fonction principale. Ce mode de calcul est-il toujours correct (au sens de la question précédente) ?

  5. Quelle est la plus petite valeur de n pour laquelle il existe k tel que la la fonction binome3 calcule une valeur incorrecte de Cnk (à cause d'un débordement) ?

2  Arithmétique circulaire

  1. Ecrire la fonction puissance, qui calcule an, pour a et n entiers naturels, en utilisant le type int.

    Ecrire une fonction principale qui calcule et affiche tous les entiers compris entre 215-8 et 215+7, en format normal (%d), sans signe (%u), et hexadécimal (%x).

    Observer et expliquer les résultats.

  2. Recommencer en remplaçant l'exposant 15 par 16. Observer et expliquer les résultats.

  3. Recommencer en remplaçant le type int par long, l'exposant 15 par 31, et 16 par 32.


File translated from TEX by TTH, version 1.96.
On 20 Sep 1999, 17:25.