Corrigé Theme 2 - Université Lyon 2

Transcription

Corrigé Theme 2 - Université Lyon 2
Année universitaire 2010-2011
NTE 6 : Informatique appliquée
Licence de sciences économiques et de gestion : 3e année
Pierre-Henri GOUTTE
THÈME 2 : FONCTION PERSONNALISÉE - ENCHAÎNEMENT LINÉAIRE
EXERCICE 2 : ÉCRITURE D’UNE FONCTION NON PARAMÉTRÉE
Option Explicit
Function Hasard() As Byte ' Le type Byte est un entier compris entre 0 et 255
Dim Aleatoire As Single ' Le type Single est un réel
Randomize (Now) ' Randomize est une procédure qui initialise le tirage au sort
Aleatoire = Rnd() ' Rnd est une fonction qui tire au sort un réel compris entre 0 et 1
Aleatoire = (Aleatoire * 99) + 1 ' Le nombre devient un nombre réel compris entre 1 et 100
Hasard = Int(Aleatoire) ' Hasard mémorise un nombre entier compris entre 1 et 100
End Function
EXERCICES 3 ET 4 : ÉCRITURE D’UNE FONCTION PARAMÉTRÉE.
A. Exercice guidé
Option Explicit
Function Section(Diamètre As Single) As Single
' Déclaration des constante et variable locales
Const PI = 3.14
Dim Rayon As Single
' Calcul
Rayon = Diamètre / 2
Section = PI * Rayon * Rayon
End Function
B. Exercice non guidé.
Function Cylindre(Diamètre As Single, Hauteur As Single) As Single
' Déclaration des constante et variables locales
Const PI = 3.14
Dim Rayon As Single
Dim HauteurEnMm As Single
Dim Disque As Single
' Calculs
Rayon = Diamètre / 2
HauteurEnMm = Hauteur * 1000
Disque = PI * Rayon * Rayon
Cylindre = Disque * HauteurEnMm
Imprimé le mardi 19 avril 2011
End Function
EXERCICE SUR L’INSERTION DE FONCTIONS DANS DES FONCTIONS
C. L’insertion d’une fonction personnalisée dans une autre fonction personnalisée
Function Cylindre_2(Diamètre As Single, Hauteur As Single) As Single
' Déclaration d'une variable locale
Dim HauteurEnMm As Single
' Calculs
HauteurEnMm = Hauteur * 1000
Cylindre_2 = Section(Diamètre) * HauteurEnMm
End Function
D. Rappels : Le formatage des données
E. L’insertion d’une fonction standard dans une fonction personnalisée
Function LongueurEscalier(Angle As Integer, Hauteur As Single)
' Déclaration d’une variable locale
Dim AngleRadian As Single
' Calculs
AngleRadian = WorksheetFunction.Radians(Angle)
LongueurEscalier = Hauteur / Sin(AngleRadian)
End Function
Function Emprise(Angle As Integer, Hauteur As Single) As Single
' Déclaration d'une variable locale
Dim AngleRadian As Single
' Calculs
AngleRadian = WorksheetFunction.Radians(Angle)
Emprise = Hauteur / Tan(AngleRadian)
End Function
APPLICATIONS : QUELQUES FONCTIONS FINANCIÈRES
F. La conversion Francs Euros : gestion d’une constante
Option Explicit
Function ConversionFE(Franc As Single) As Single
' Déclaration d'une constante
Const Maastricht = 6.55957 ' Taux de conversion défini par le traité de Maastricht
' Calcul
ConversionFE = Franc / Maastricht
End Function
Pierre-Henri GOUTTE ©
Thème 2 : Les fonctions personnalisées
page 2 sur 3
G. La fonction de conversion EuroConvert
H. Une fonction de conversion Livre Sterling Dollar US
Function ConversionLD(Prix As Single, LivreEuro As Single, DollarEuro As Single) As Single
Déclaration d'une variable locale
Dim Taux As Single
' Calculs
Taux = LivreEuro / DollarEuro ' Calcul du taux de conversion
ConversionLD = Prix * Taux ' Calcul du prix exprimé en Dollar US
End Function
I. Les taux d’intérêts effectif et nominal
Function Taux_Effectif(Tx_nominal As Single, Nb_periodes As Byte) As Single
' Déclaration des variables locales
Dim V1 As Single
Dim V2 As Single
Dim V3 As Single
' Calculs intermédiaires
V1 = Tx_nominal / Nb_periodes
V2 = 1 + V1
V3 = V2 ^ Nb_periodes
' Valeur de retour
Taux_Effectif = V3 - 1
End Function
Function Taux_Effectif_Périodique(Taux_annuel As Single, Nombre_Périodes As Byte) As Single
Taux_Effectif_Périodique = ((1 + Taux_annuel) ^ (1 / Nombre_Périodes)) - 1
End Function
Pierre-Henri GOUTTE ©
Thème 2 : Les fonctions personnalisées
page 3 sur 3