Calcul du quotient de 2 nombres entiers.


Il est tout à fait possible de calculer le quotient de 2 nombres entiers avec un nombre illimité de décimales. En voici la marche à suivre:

Calculer et afficher la partie entière du quotient
   (devant la virgule) grâce à la division entière
et
traiter la partie décimale de la manière répétitive suivante:
  multiplier le reste de la division précédente par 1000
    (pour des tranches de 3 chiffres)
  calculer/afficher la partie entière du quotient


entier N, D, NT, Q, i
écrire "Introduisez le numérateur:"
lire N
écrire "Introduisez le dénominateur:"
lire D
écrire "Introduisez le nombre de tranches de 3 chiffres:"
lire NT
écrire N, "/", D
Q <-- N \ D
écrire " = ",Q," , "
N <-- N MOD D
pour i de 1 à NT faire
   N <-- N*1000
   Q <-- N \ D
   N <-- N MOD D
   si Q<10 alors écrire "00"
   sinon si  Q<100 alors écrire "0"
             fsi
   fsi
   écrire Q, " "
fpour
PROGRAM Quotient;

USES CRT;

VAR N,D,P,Q: LONGINT;
    NT,i:BYTE;

BEGIN
CLRSCR;
WRITE('Introduisez le numérateur de la fraction: ');
READLN(N);
WRITE('Introduisez le dénominateur de la fraction: ');
READLN(D);
WRITE('Introduisez le nombre de tranches de 3 chiffres, désirées dans la réponse: ');
READLN(NT);
P:=1000;                           {Pour des tranches de 3 chiffres                  }
WRITE(N,' / ',D);                  {Affiche le calcul à effectuer                    }
Q:=N DIV D;                        {Partie entière du quotient                       }
WRITE(' = ',Q,' , ');              {Affiche la partie entière du résultat            }
N:=N MOD D;                        {Reste de la division                             }
FOR i:=1 TO NT-1 DO                {Il faut arrondir le dernier chiffre ==> NT-1     }
BEGIN
  N:=N*P;                          {N est multiplié par 1000                         }
  Q:=N DIV D;                      {Partie entière du quotient                       }
  N:=N MOD D;                      {Reste de la division                             }
  IF Q<10 THEN WRITE('00',Q)       {Q comporte 1 chiffre. Il faut le précéder de 00. }
  ELSE IF Q<100 THEN WRITE('0',Q)  {Q comporte 2 chiffres. Il faut les précéder de 0.}
       ELSE WRITE(Q);              {Q comporte 3 chiffres.                           }
  WRITE(' ')                       {Marque la séparation des tranches de 3 chiffres. }
END;
N:=N*P;                            {N est multiplié par 1000                         }
Q:=TRUNC(N/D+0.5);                 {Partie entière arrondie du quotient              }
IF Q<10 THEN WRITE('00',Q)         {Q comporte 1 chiffre. Il faut le précéder de 00. }
ELSE IF Q<100 THEN WRITE('0',Q)    {Q comporte 2 chiffres. Il faut les précéder de 0.}
     ELSE WRITE(Q);                {Q comporte 3 chiffres.                           }
END.


Page précédente.

Page d'accueil.