
GLO-1901 Examen Final 17 décembre 2012
(c) (10 points) Écrivez le code Cd’une fonction équivalente.
Rappel : la fonction cosinus (cos) se trouve dans le fichier d’en-tête math.h.
Solution:
#include <math.h>
double f(int n)
{
int i;
double result = 0;
for(i = 1; i <= n; i += 1) {
result += (2+cos(i))/(i*i);
}
return result;
}
Question 3 (20 points sur 100)
Soit la classe Portefeuille de votre tp6 qui contient entre autres choses les éléments
suivants :
1. un constructeur qui initialise un membre capital correspondant au capital initial du
portefeuille, et un membre titres, de type dictionnaire, pour contenir les quantités de
titres détenus dans le portefeuille ;
2. un opérateur [] qui permet d’accéder à la quantité d’un titre.
Vous disposez aussi du module Bourse et de sa fonction infoTitre qui retourne un
dictionnaire contenant différentes informations relatives à un titre boursier, dont l’attribut
valeur qui correspond à sa valeur.
On vous demande d’écrire le code Python de la fonction membre transiger qui reçoit un
titre et une quantité. Si le titre est invalide, une exception de type TitreInvalide doit être
soulevée. Si la quantité est positive, les titres doivent être achetés. Si le capital est insuffisant,
une exception de type CapitalInsuffisant doit être soulevée. Si la quantité est négative,
les titres doivent être vendus. Si les titres détenus dans le portefeuille sont insuffisants, une
exception de type TitreInvalide doit être soulevée. Si la quantité est nulle, une exception
de type AssertionError doit être soulevée.
Solution:
def transiger(self, titre, qtte):
# déterminer la valeur du titre
try:
valeur = Bourse.infoTitre(titre)[’valeur’]
except Bourse.TitreInvalide:
raise TitreInvalide()
Page 4 de 8