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