TD-Prog Fractions

Préambule

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);

Affichage et entrée d'une fraction

  1. Ecrire la procédure 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.
  2. Ecrire la procédure lire(var f:fraction) qui permet à l'utilisateur d'entrer une fraction f.
  3. Ecrire la fonction approx(f:fraction):Real qui fournit une valeur approchée de f.

PGCD

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.
  1. Ecrire la fonction PGCD(a,b:LongInt):LongInt qui fournit le PGCD de a et b.
  2. Ecrire la procedure simplifier(var f:fraction) qui simplifie la fraction f et rend son dénominateur positif.
  3. Vérification. Ecrire un programme qui demande d'entrer une fraction et l'affiche sous forme simplifiée.

Opérations

  1. Ecrire la procédure addition(f1,f2:fraction; var f:fraction) qui place dans f la somme des fractions f1 et f2.
  2. Ecrire la procédure soustraction(f1,f2:fraction; var f:fraction) qui place dans f la différence des fractions f1 et f2.
  3. Ecrire la procédure multiplication(f1,f2:fraction; var f:fraction) qui place dans f le produit des fractions f1 et f2.
  4. Ecrire la procédure division(f1,f2:fraction; var f:fraction) qui place dans f le quotient des fractions f1 et f2.

Application au calcul des nombres de Bernoulli

Les nombres de Bernoulli (bn) sont définis par les relations :
bernoulli


Correction
Retour