Fractions |
On veut mettre en place un module de calcul dans l'ensemble des nombres rationnels. Pour cela on crée un type enregistrement à deux champs num et den de type LongInt.
type fraction=record num : LongInt; den : LongInt; end;
On définit deux constantes représentant 0 et 1 :
Const zero:fraction = (num:0;den:1); un:fraction = (num:1;den:1);
afficher(f:fraction)
qui affiche une fraction a/b
sous la forme "a" si b=1, "Erreur" si b=0 et "a/b" dans les autres cas.
lire(var f:fraction)
qui permet à l'utilisateur d'entrer une
fraction f.
approx(f:fraction):Real
qui fournit une valeur approchée de f.
Soient a et b deux entiers positifs (b non nul). On veut calculer le plus grand commun diviseur (PGCD) de a et b dans le but de simplifier une fraction a/b.
Pour cela on considère la division euclidienne de a par b qui fournit le quotient entier q et le reste r tels que a = bq+r et r < b.
Vérifier que PGCD(a,b) = PGCD(b,r).
En appliquant cette propriété tant que r est non nul, on finit par obtenir
PGCD(a,b) = PGCD(r,0). Or PGCD(r,0)=r.
PGCD(a,b:LongInt):LongInt
qui fournit le PGCD de a et b.
simplifier(var f:fraction)
qui simplifie la fraction f et
rend son dénominateur positif.
addition(f1,f2:fraction; var f:fraction)
qui place dans f la
somme des fractions f1 et f2.
soustraction(f1,f2:fraction; var f:fraction)
qui place dans f la
différence des fractions f1 et f2.
multiplication(f1,f2:fraction; var f:fraction)
qui place dans f le
produit des fractions f1 et f2.
division(f1,f2:fraction; var f:fraction)
qui place dans f le
quotient des fractions f1 et f2.
Les nombres de Bernoulli (bn) sont définis par les relations :
bernoulli
qui affiche les valeurs exactes des bj
pour j allant de 0 à 7.