"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre l 0 • Travaux pratiques
232
l 0.4 CALCUL FORMEL
Énoncé
a) Le problème
Le but de ce TP est de créer un algorithme de calcul formel sur les sommes de fractions. Plus précisément, il s'agit de demander à l'utilisateur une expression du type
alb+c/d (où a, b, c et d sont des nombres entiers naturels avec b 7:- 0 et d 7:- 0) et
d'afficher le résultat sous la forme d'une fraction simplifiée.
b) Les questions
1) Écrire une fonction somme(ch) qui à une chaîne ch du type 'a/b+c/d' (où a, b, cet
d sont des nombres entiers naturels avec b -=t. 0 et d -=t. 0) retourne la liste
[a*d+b*c,b*d] correspondant au numérateur et au dénominateur de la somme des
fractions a/b et c/d.
Par exemple, on devra avoir somme('l/2+ 1/3')=[5,6] .
2) Quel est le rôle de la fonction récursive p(a,b) suivante?
Fonction p(a,b: entiers) : entier
Rôle: ........................................................................ .
Début
Si b==O Alors
1
Retourner (a)
Sinon
1
Retourner (p(b,a%b))
FinSi
Fin fonction
3) Écrire une fonction fractionsimp(a,b) qui à des nombres entiers naturels a et b
(avec b 7:- 0) retourne la chaîne de caractères 'u/v' et où u/v est l'écriture simplifiée de
la fraction a/b. Par exemple, on devra avoir fractionsimp(2,6) = '1/3'.
4) Écrire un algorithme demandant à 1 ' utilisateur une somme du type a/b+c/d puis
calculant et affichant le résultat sous la forme d'une fraction simplifiée. Implémenter
sous Python puis exécuter le programme.
Corrigé
a) Algorithme
Nom de l'algorithme calcul_formel _somme_fractions
Rôle : calculer la somme de deux fractions avec résultat simplifié
Entrée : chaîne du type 'a/b+c/d'
Sortie : Affichage de la fraction sous forme simplifiée
Variables globales : expression, simp (chaînes), som (liste)
Précédent

- 240/302

Suivant