Corrigés des exercices

Dimension: px
Commencer à balayer dès la page:

Download "Corrigés des exercices"

Transcription

1 Corrigés des exercices Chapitre 2 1. Résultats du programme calcul3() La figure 14.1 donne le déroulement de l exécution du programme calcul3(). Étape 1 Étape 2 Étape 3 Étape 4 x 40 x 40 x 51 x 51 y 8 y 8 y 6 y 6 z z 32 z 32 z 45 x=40 y=8 z=x-y x=x+11 y=y-2 z=x-y Figure 14.1 Les 4 étapes. À l étape 2, la variable z prend la valeur 32. À l étape 4, la variable z prend la valeur Résultats du programme calcul4() Six variables sont définies par le programme calcul4() : x, y, z, x1, y1 et z1. Elles sont toutes de type Double. Le déroulement de l exécution du programme est le suivant : 1. x = 2/3 : 2/3 est calculé, puis sa valeur est affectée à x. Le résultat est donné avec 15 décimales. 2. y = 4/7 : 4/7 est calculé, puis affecté à y. La variable y vaut alors z = x + y : la somme x + y est tout d abord calculée. Elle vaut La variable z prend alors cette valeur. 4. x1 = Round(x, 2) : cette affectation utilise la fonction Round(x, nb). Celle-ci calcule la valeur arrondie de x avec nb décimales, soit 2 décimales. Elle fournit comme résultat 0.67 et x1 prend la valeur y1 = Round(y, 2) : de la même façon, la fonction Round(y, 2) calcule la valeur arrondie de y avec 2 décimales. La variable y1 vaut alors 0.57.

2 2 Introduction à la programmation avec VBA 6. z1 = x1 + y1 : z1 vaut la somme , c est-à-dire 1.24 qui est le résultat calculé par le programme. 3. Extraction des chiffres d un nombre Le tirage au hasard d un nombre compris entre 1000 et 9999 est obtenu en utilisant la fonction Int(9000 * Rnd() ) et en affectant ce résultat à la variable étudiée. Pour obtenir le chiffre de l unité, puis celui de la dizaine, puis celui de la centaine et enfin celui du millier, il faut effectuer des divisions entières à l aide des opérateurs \ et Mod. Voici le texte du programme. Il utilise les variables val (valeur du nombre à étudier), nbu (valeur de l unité), nbd (valeur de la dizaine), nbc (valeur de la centaine), nbm (valeur du millier) et les variables x et y comme variables auxiliaires. Listing 14.1 : chiffres4() Sub chiffres4() Dim val As Integer, x As Integer, y As Integer Dim nbu As Integer, nbd As Integer, nbc As Integer, nbm As Integer Randomize val = Int(9000 * Rnd() ) 'nb compris entre 1000 et 9999 nbu = val Mod 10 x = val \ 10 nbd = x Mod 10 y = x \ 10 nbc = y Mod 10 nbm = y \ 10 MsgBox val & " : " & nbu & " " & nbd & " " & nbc & " " & nbm Chapitre 3 1. Prénom, année de naissance et âge Le programme prenom_age() est défini avec trois variables : prenom de type String : la valeur est donnée par l utilisateur. annee de type Integer : la valeur est aussi donnée par l utilisateur. age de type Integer : la valeur est calculée par le programme. Si l on veut qu il affiche comme résultat "Alexandre tu as 23 ans. Bonne chance!", il faut que la chaîne de caractères à afficher grâce à l instruction MsgBox soit structurée de la façon suivante : prenom & " tu as " & age & " ans. Bonne chance!" La chaîne est constituée de la valeur de la variable prenom, puis de la chaîne " tu as ", puis de la valeur de la variable age, et enfin de la chaîne " ans. Bonne chance!". Notez que les deux chaînes contiennent des espaces de façon que les mots de la chaîne finale soient séparés les uns des autres.

3 Corrigés des exercices 3 Voici le texte du programme. Listing 14.2 : prenom_age() Sub prenom_age() Dim prenom As String Dim annee As Integer, age As Integer prenom = InputBox("quel est ton prénom?") annee = InputBox("quelle est ton année de naissance?") age = annee MsgBox prenom & " tu as " & age & " ans. Bonne chance!" Si l on veut que le résultat soit affiché sur deux lignes au sein de la boîte de dialogue, il faut introduire le caractère spécial vbcr de la façon suivante : MsgBox prenom & " tu as " & age & " ans." & vbcr & "Bonne chance!" 2. Numéro de Sécurité sociale Soit ch la variable qui enregistre le numéro de Sécurité sociale donnée par l utilisateur, et soit les variables sexe, annee, mois, departement, numero_registre et cle les variables de type String qui vont servir à mémoriser les diverses informations issues du numéro de Sécurité sociale. Tout numéro de Sécurité sociale se présente comme l indique la figure N SS Positions Figure 14.2 structure d un numéro de sécurité sociale. Pour extraire chaque information du numéro de Sécurité sociale, il faut employer plusieurs fois la fonction Mid(ch, d, n) qui extrait n caractères de la chaîne ch à partir de la position d. Les caractères étant numérotés à partir de 1, les nombres 1, 3, 6, 9, 12 et 20 donnent les positions des débuts de chaque partie à considérer. Le programme est donc le suivant. Listing 14.3 : numero_ss() Sub numero_ss() Dim ch As String Dim sexe As String, annee As String, mois As String Dim departement As String, numero_registre As String Dim cle As String ch = InputBox("Numéro de Sécurité Sociale " & vbcr _ & "(avec un espace entre chaque élément)?") sexe = Mid(ch, 1, 1)

4 4 Introduction à la programmation avec VBA annee = Mid(ch, 3, 2) mois = Mid(ch, 6, 2) departement = Mid(ch, 9, 2) numero_registre = Mid(ch, 12, 7) cle = Mid(ch, 20, 2) MsgBox "Sexe : " & sexe & vbcr _ & "Annee : " & annee & vbcr _ & "Mois : " & mois & vbcr _ & "Département : " & departement & vbcr _ & "Numéro registre : " & numero_registre & vbcr _ & "Clé : " & cle 3. Calculs concernant un emprunt Soit les variables suivantes : montant : le montant de l emprunt. taux : le taux d intérêt annuel ; d où la variable t définie par t = taux / 12 qui donne le taux mensuel. nb_annees : durée de l emprunt ; d où la variable nb définie par nb = nb_annees * 12 qui donne le nombre de mois de la durée de l emprunt. mensualite : mensualité à payer. Le calcul de la mensualité est donné par la formule : mensualite = (montant * t) / (1 - (1 + t) ^ -nb) Le programme emprunt() effectue les trois calculs demandés : a. calcul de la mensualité ; b. calcul de la valeur cible : montant emprunté ; c. calcul de la valeur cible : nombre de mois. Les deux derniers calculs sont faits en reformulant la formule initiale : new_montant = (new_mensualite * (1 - (1 + t) ^ -nb)) / t new_nbmois = (-Log(1 - (montant * t / new_mensualite))) / Log(1 + t) Listing 14.4 : emprunt() Sub emprunt() Dim montant As Double, new_montant As Double Dim taux As Double, t As Double Dim mensualite As Double, new_mensualite As Double Dim nb_annees As Integer Dim nb As Integer, new_nbmois As Double '--- Calcul mensualité --- montant = InputBox("Montant de l'emprunt?") taux = InputBox("Taux d'intérêt annuel (exemple : 5,5)?") taux = taux / 100

5 Corrigés des exercices 5 nb_annees = InputBox("Durée de l'emprunt (nb années)?") t = taux / 12 nb = nb_annees * 12 mensualite = (montant * t) / (1 - (1 + t) ^ -nb) MsgBox Round(mensualite, 2) '--- Valeur cible = montant emprunté --- new_mensualite = InputBox("Quelle mensualité souhaitez-vous? ") new_montant = (new_mensualite * (1 - (1 + t) ^ -nb)) / t MsgBox Round(new_montant, 2) '--- Valeur cible = nombre de mois --- new_mensualite = InputBox("Quelle mensualité maximale souhaitez-vous? ") new_nbmois = (-Log(1 - (montant * t / new_mensualite))) / Log(1 + t) MsgBox Round(new_nbmois, 2) Chapitre 4 Équation du second degré L équation du second degré ax 2 + bx + c = 0 est définie avec les coefficients numériques a, b et c, le coefficient a devant être différent de 0. Les valeurs des racines dépendent de la valeur du discriminant b 2 4 a c. Soit discrim la variable qui donne la valeur du discriminant. Trois cas sont à distinguer pour calculer les racines de l équation : Si la valeur de discrim est positive, les racines sont données par les valeurs de r1 et r2. Si la valeur de discrim est nulle, les deux racines sont égales. Si la valeur de discrim est négative, il n y a pas de racines réelles. Avant l étude de ces trois cas, il convient de vérifier si le coefficient a est bien différent de 0. Le programme est structuré par une instruction conditionnelle imbriquée qui examine tous les cas présentés ci-dessus. Listing 14.5 : eq2degre() Sub eq2degre() Dim a As Double, b As Double, c As Double Dim discrim As Double, r1 As Double, r2 As Double a = InputBox("donne la valeur du coef a : ") b = InputBox("donne la valeur du coef b : ") c = InputBox("donne la valeur du coef c : ") discrim = b * b - 4 * a * c If a = 0 Then MsgBox "a=0 : calcul impossible!" ElseIf discrim > 0 Then r1 = (-b - Sqr(discrim)) / (2 * a) r2 = (-b + Sqr(discrim)) / (2 * a) MsgBox "r1=" & r1 & " " & "r2=" & r2

6 6 Introduction à la programmation avec VBA ElseIf discrim = 0 Then r1 = -b / (2 * a) r2 = r1 MsgBox "r1=r2=" & r1 Else MsgBox "Pas de racines réelles" End If Exemples : si a = 1, b = 6.2 et c = 9.25, les racines valent r1 = 2.5 et r2 = 3.7 ; si a = 1, b = 13 et c = 42.25, le discriminant est nul et r1 = r2 = Deux nombres sont-ils proches? Soit x et y deux variables dont les valeurs sont des nombres aléatoires donnés par la fonction Int(500 * Rnd() + 1), et soit seuil la variable dont la valeur positive est donnée par l utilisateur à l aide de l instruction InputBox. Pour résoudre le problème, il faut tout d abord calculer la valeur absolue de la différence x y. Soit diff la variable qui reçoit la valeur x y. Si da différence est négative, il suffit d attribuer la valeur diff à la variable diff en écrivant If diff < 0 Then diff = diff. Cette instruction If Then (sans Else) rend alors positive la valeur de la différence, donnant ainsi la valeur absolue (la valeur absolue d un nombre est toujours positive). La comparaison peut ensuite être faite entre cette valeur positive et la valeur du seuil à l aide d une instruction conditionnelle If Then Else End If. Le programme nbsproches() fournit alors les résultats. Listing 14.6 : nbs proches() Sub nbsproches() Dim x As Integer, y As Integer Dim seuil As Integer, diff As Integer Randomize x = Int(500 * Rnd() + 1) 'de 1 à 500 y = Int(500 * Rnd() + 1) seuil = InputBox("valeur du seuil positive : ") diff = x - y If diff < 0 Then diff = -diff If diff < seuil Then MsgBox "OK " & x & " et " & y & " sont proches" Else MsgBox "NON " & x & " et " & y & " ne sont pas proches" End If Exemple : si x vaut 102 et y vaut 341, et si l utilisateur donne 200 comme valeur de la variable seuil, les deux nombres x et y sont proches car la variable diff vaut +139, valeur inférieure à 200.

7 Corrigés des exercices 7 3. Une loterie de 1 à 500 Soit nb la variable dont la valeur est tirée au hasard par la fonction Int(500 * Rnd() + 1) qui donne un résultat compris entre 1 et 500. Quatre cas sont à distinguer selon les valeurs de la variable nb : de 1 à 200 : gain de 10 ; 201 ou 202 : gain de ; de 203 à 400 : gain de 20 ; de 401 à 500 : gain de 15. Plusieurs formulations sont possibles pour examiner ces quatre cas. Nous en avons choisi deux. La première est définie avec une succession d instructions If Then (sans Else). La seconde est structurée par l instruction Select Case Voici le premier programme. Listing 14.7 : loterie1() Sub loterie1() Dim nb As Integer, gain As Integer Randomize nb = Int(500 * Rnd() + 1) If nb >= 1 And nb <= 200 Then gain = 10 If nb = 201 Or nb = 202 Then gain = 1000 If nb >= 203 And nb <= 400 Then gain = 20 If nb >= 401 Then gain = 15 MsgBox "Vous avez gagné " & gain & " car nb = " & nb Voici le second programme défini avec l instruction Select Case... Listing 14.8 : loterie2() Sub loterie2() Dim nb As Integer, gain As Integer Randomize nb = Int(500 * Rnd() + 1) Select Case nb Case 1 To 200 gain = 10 Case 201, 202 gain = 1000 Case 203 To 400 gain = 20 Case 401 To 500 gain = 15 End Select MsgBox "Vous avez gagné " & gain & " car nb = " & nb

8 8 Introduction à la programmation avec VBA Notez les deux formulations lorsque le programme examine si la variable nb vaut 201 ou 202 : L instruction conditionnelle définit la condition avec l opérateur logique Or : If nb = 201 Or nb = 202 Then gain = 1000 L instruction Select Case donne les deux valeurs possibles en les énumérant : Case 201, 202 gain = 1000 Chapitre 5 1. Somme et moyenne de plusieurs nombres Le programme est construit avec quatre variables : x reçoit la valeur du nombre donné par l utilisateur, som permet de calculer la somme des nombres x, nb permet de compter le nombre des nombres donnés par l utilisateur, et moy donne la moyenne de ces nombres. Le texte du programme est le suivant. Listing 14.9 : somme_nbpos() Sub somme_nbspos() Dim x As Double, som As Double, moy As Double Dim nb As Integer som = 0 nb = 0 x = InputBox("Donnez un nombre positif :" & vbcr _ & "Pour arrêter le processus, tapez -1") While x <> -1 som = som + x nb = nb + 1 x = InputBox("Donnez un nombre positif :" & vbcr _ & "Pour arrêter le processus, tapez -1") Wend If nb > 0 Then moy = som / nb MsgBox "somme = " & som & vbcr _ & "moyenne = " & moy Else MsgBox "aucun nombre positif!" End If Le programme est structuré par l instruction While Wend avec la condition x <> 1. Lorsque x vaut 1, l instruction itérative arrête son exécution, sans que cette valeur de 1 soit prise en compte dans le calcul de la somme des nombres.

9 Corrigés des exercices 9 2. Calcul de U n Pour calculer U n = a U n 1 + b U n 2 à partir des valeurs de a, b, U 0, U 1 et n données par l utilisateur, plusieurs variables sont nécessaires : Les variables a, b et n enregistrent les valeurs données au clavier. Les variables U0 et U1 mémorisent les deux valeurs initiales U 0 et U 1 données par l utilisateur. Les variables U, V et W vont effectuer le calcul demandé lors de l exécution de l affectation : U = a * V + b * W. Le texte du programme utilise aussi la variable i pour compter le nombre de répétitions effectuées. Voici le code de ce programme. Listing : calcul_un() Sub calcul_un() Dim a As Double, b As Double Dim U0 As Double, U1 As Double Dim U As Double, V As Double, W As Double Dim n As Integer, i As Integer a = InputBox("donne la valeur de a : ") b = InputBox("donne la valeur de b : ") U0 = InputBox("donne la valeur de U0 : ") U1 = InputBox("donne la valeur de U1 : ") n = InputBox("donne la valeur de n : ") W = U0 V = U1 For i = 2 To n U = a * V + b * W W = V V = U MsgBox "Un vaut " & U Lorsque i vaut 2, la variable U prend la valeur de a U1 + b U0 puisque V vaut U1 (c est-à-dire U 1 ) et que W vaut U0 (c est-à-dire U 0 ). La valeur de U est donc la valeur U 2. Puis W prend la valeur de V, c est-à-dire U 1, et V prend la valeur de U, c est-à-dire U 2. Au tour suivant, U va donc prendre la valeur de a U2 + b U1, qui est la valeur de U 3. Le même processus reproduit plusieurs fois permet de calculer de proche en proche la valeur U n pour n donné par l utilisateur. 3. Calcul de la valeur actuelle nette La formule financière qui donne la valeur actuelle nette (VAN) à la date 0 est la suivante : F i (1 + t) i I

10 10 Introduction à la programmation avec VBA Elle définit une somme pour i allant de 1 à nb_annees, en mettant en jeu les éléments suivants : F i définit le flux net de trésorerie de la période i : la variable flux représentera ces quantités au sein du programme. t est le taux d actualisation : la variable taux donnera sa valeur au sein de la somme à calculer. I est le montant de l investissement initial : la variable invest_init donnera sa valeur initiale. Voici le texte du programme qui calcule la VAN selon cette formule. Listing : VAN() Sub VAN() Dim invest_init As Double Dim flux As Double Dim taux As Double Dim nb_annees As Integer, i As Integer Dim VAN As Double, somme As Double invest_init = InputBox("Investissement initial?") taux = InputBox("Taux d'actualisation?") nb_annees = InputBox("Nombre d'années?") somme = -invest_init For i = 1 To nb_annees flux = InputBox("Flux de trésorerie année " & i) somme = somme + flux * (1 + taux) ^ -i VAN = somme MsgBox VAN Le programme permet à l utilisateur de donner les valeurs de l investissement initial, du taux d actualisation et du nombre d années à prendre en compte. Le calcul de la VAN se fait en initialisant la variable somme avec la valeur négative invest_init. Il se poursuit en ajoutant les quantités flux * (1 + taux) ^ i à la somme déjà calculée, la valeur de la variable flux étant donnée à chaque fois par l utilisateur. Au terme du calcul, la variable somme a pour valeur la valeur actuelle nette recherchée. Exemple : si l investissement initial vaut 10000, le taux d actualisation 0,1, le nombre d années 4 et si les flux nets de trésorerie valent 3500, 3000, 3200 et 3400, le résultat vaut 387,610. La VAN est alors positive.

11 Corrigés des exercices 11 Chapitre 6 1. Les deux valeurs les plus grandes Le programme recherche les deux valeurs les plus grandes. Soit maxsup et maxinf les variables qui enregistrent les deux valeurs maximales, la valeur de maxsup étant supérieure ou égale à celle de maxinf. Le programme étudie chaque valeur x tirée au hasard : Si x est supérieure à maxsup, deux mises à jour sont nécessaires : maxinf doit prendre la valeur de maxsup et maxsup doit prendre la valeur de x. Sinon (x est inférieure ou égale à maxsup) et si x est supérieure à maxinf, la valeur de maxinf doit être mise à jour : maxinf = x. Voici le programme correspondant. Listing : deuxmax() Sub deuxmax() Dim x As Integer, maxsup As Integer, maxinf As Integer Dim i As Integer Dim ch As String Randomize maxsup = 0 maxinf = 0 For i = 1 To 10 x = Int(100 * Rnd() + 1) 'de 1 à 100 ch = ch & " " & CStr(x) If x > maxsup Then maxinf = maxsup maxsup = x ElseIf x > maxinf Then maxinf = x End If MsgBox ch & vbcr & "maxsup=" & maxsup & " maxinf=" & maxinf 2. Étude d un mot Le mot donné au clavier est enregistré par la variable ch. Ce mot contient Len(ch) caractères. Pour étudier si les caractères de la chaîne ch sont tous différents, il suffit de comparer le i ème caractère de ch avec tous les autres caractères de la sous-chaîne commençant en i + 1, en faisant l étude pour chaque valeur de i allant de 1 à Len(ch) 1. Voici le texte du programme.

12 12 Introduction à la programmation avec VBA Listing : lettresdiff() Sub lettresdiff() 'première solution, voir MMIA p4 Dim ch As String Dim i As Integer, j As Integer, nb As Integer ch = InputBox("donne un mot :") nb = 0 For i = 1 To Len(ch) - 1 For j = i + 1 To Len(ch) If Mid(ch, i, 1) = Mid(ch, j, 1) Then nb = nb + 1 Next j If nb = 0 Then MsgBox ("lettres toutes différentes") Else MsgBox ("lettres NON toutes différentes") End If Une double boucle permet de structurer l étude des caractères : la boucle extérieure est définie par la variable i allant de 1 à Len(ch) 1 et la boucle intérieure par la variable j allant de i + 1 à Len(ch). La condition Mid(ch, i, 1) = Mid(ch, j, 1) permet de tester si le i ème caractère est égal ou non au j ième caractère de la chaîne ch. Si tous les caractères sont différents, la variable nb garde sa valeur initiale qui vaut Palindrome Soit ch la chaîne de caractères à étudier. Soit i la variable qui donne la position des caractères à partir du début de la chaîne et j la variable qui donne la position des caractères à partir de la fin de la chaîne. Pour déterminer si ch est un palindrome ou non, il faut comparer le premier et le dernier caractère, puis le deuxième et l avant-dernier, etc. Il suffit donc de comparer le i ème caractère et le j ième caractère autant de fois que nécessaire en augmentant i de 1 et en diminuant j de 1 après chaque comparaison. Le programme est alors le suivant. Listing : palindrome() Sub palindrome() Dim ch As String Dim i As Integer, j As Integer Dim val As Boolean ch = InputBox("donne le mot à étudier :") i = 1 j = Len(ch) val = True While i < j And val If Mid(ch, i, 1) = Mid(ch, j, 1) Then i = i + 1 j = j - 1

13 Corrigés des exercices 13 Else val = False End If Wend If val = True Then MsgBox ch & " est un palindrome" Else MsgBox ch & " n'est pas un palindrome" End If Exemple : le mot «radar» est un palindrome, alors que ce n est pas le cas du mot «radars» (avec un s). Chapitre 7 1. Valeurs cumulées Le premier tableau tab1 contient les dix valeurs numériques données par l utilisateur et le second tableau tab2 enregistre les valeurs cumulées. La i ème valeur cumulée est calculée en faisant la somme de la i ème valeur du tableau initial tab1(i) et de la valeur cumulée tab2(i 1) calculée précédemment : tab2(i) = tab1(i) + tab2(i - 1) Il faut alors exécuter cette instruction pour toutes les valeurs de i allant de 2 à 10. Pour la valeur i = 1, il suffit d attribuer à tab2(1) la valeur du premier nombre du tableau. Voici le programme correspondant. Listing : val_cumulees() Sub val_cumulees() Dim tab1(1 To 10) As Integer, tab2(1 To 10) As Integer Dim i As Integer Dim ch1 As String, ch2 As String ch1 = "" For i = 1 To 10 tab1(i) = InputBox("donne la valeur n " & i) ch1 = ch1 & CStr(tab1(i)) & " " tab2(1) = tab1(1) ch2 = tab2(1) & " " For i = 2 To 10 tab2(i) = tab1(i) + tab2(i - 1) ch2 = ch2 & CStr(tab2(i)) & " " MsgBox ch1 & vbcr & ch2

14 14 Introduction à la programmation avec VBA 2. Deux valeurs successives égales? Le tableau t est constitué de 15 éléments. Chaque élément du tableau a pour valeur un nombre tiré au hasard. La propriété recherchée (existe-t-il deux valeurs successives égales?) ne concerne que quelques éléments du tableau et non pas tous les éléments. Il convient alors de supposer a priori que la propriété n est pas vérifiée et d affecter à la variable prop la valeur 1. Mais dès que le programme constate que deux valeurs successives t(i) et t(i + 1) sont égales (t(i) = t(i + 1)), la variable prop doit prendre la valeur 0 pour signifier que la propriété recherchée est vérifiée. Le programme est donc le suivant. Listing : deuxnbs() Sub deuxnbs() Dim t(1 To 15) As Integer Dim i As Integer, prop As Integer Dim ch As String ch = "" Randomize For i = 1 To 15 t(i) = Int(20 * Rnd() + 1) 'de 1 à 20 ch = ch & CStr(t(i)) & " " prop = 1 i = 1 While i < 14 And prop = 1 If t(i) = t(i + 1) Then prop = 0 i = i + 1 Wend If prop = 0 Then MsgBox ch & vbcr _ & "il y a deux nbs successifs égaux" Else MsgBox ch & vbcr _ & "il n'y a pas deux nbs successifs égaux" End If L instruction itérative While Wend a pour condition i < 14 And prop = 1. Tant que cette condition reste vraie, le programme examine si t(i) et t(i + 1) ont des valeurs égales. Si c est le cas, la variable prop prend la valeur 0, ce qui rend alors la condition du While fausse, arrêtant ainsi l exécution de cette instruction. Le test final étudie la valeur de la variable prop. Si celle-ci vaut 0, deux nombres successifs du tableau sont bien égaux. En revanche, si la variable prop a conservé sa valeur initiale 1, cela signifie que le programme n a pas constaté l égalité recherchée : il n y a donc pas deux valeurs successives égales au sein du tableau.

15 Corrigés des exercices 15 Chapitre 8 1. Calcul de e x e x qui vaut 1 + x + x 2 / 2! + x 3 / 3!+ + x n / n peut s écrire sous la forme 1 + x k / k!, pour k allant de 1 à n. En langage VBA, x k / k! s écrit (x ^ k) / facto(k), le caractère ^ signifiant puissance, et facto(k) étant une fonction qui calcule la factorielle de k. Pour calculer e x, il suffit donc de répéter n fois l affectation suivante : res = res + (x ^ k) / facto(k) dans laquelle res permet de calculer la somme totale après avoir été initialisée à 1. Le code du programme est constitué d une procédure et d une fonction : La procédure exp() permet à l utilisateur de donner les valeurs de x et de n, puis elle effectue le calcul en utilisant une boucle For Next La fonction facto(x) calcule la factorielle de x. Listing : exp() et facto(x) Sub exp() Dim x As Double, n As Double, res As Double, k As Integer x = InputBox("donne la valeur de x :") n = InputBox("donne la valeur de n :") res = 1 For k = 1 To n res = res + (x ^ k) / facto(k) Next k MsgBox res Function facto(x As Integer) As Double Dim i As Integer, f As Double f = 1 For i = 1 To x f = f * i facto = f End Function Exemple : si x = 2 et n = 15, le résultat vaut Gestion d un tableau de notes Le programme gestion_notes() assure la gestion d un tableau de notes à l aide de trois procédures : ajout_note() : elle ajoute une note au tableau de notes. affichage_notes() : elle affiche toutes les notes. moyenne_notes() : elle calcule la moyenne des notes.

16 16 Introduction à la programmation avec VBA Nous avons défini deux variables globales : tnotes qui définit un tableau de 15 notes et nbnotes qui donne le nombre de notes mises au sein du tableau. Ces deux variables globales sont déclarées en tête du texte et sont utilisées par chacune des procédures. Voici le texte complet des quatre procédures. Listing : gestion_notes(), ajout_note(), affichage_notes() et moyenne_notes() Dim tnotes(1 To 15) As Double Dim nbnotes As Integer Sub gestion_notes() Dim rep As Integer nbnotes = 0 rep = 1 While rep <> 4 rep = InputBox("1: ajout d'une note" & vbcr _ & "2: affichage des notes" & vbcr _ & "3: moyenne des notes" & vbcr _ & "4: FIN") If rep = 1 Then ajout_note If rep = 2 Then affichage_notes If rep = 3 Then moyenne_notes Wend Sub ajout_note() tnotes(nbnotes + 1) = InputBox("donne la note :") nbnotes = nbnotes + 1 Sub affichage_notes() Dim i As Integer, resultats As String resultats = "" For i = 1 To nbnotes resultats = resultats & " " & tnotes(i) MsgBox (resultats) Sub moyenne_notes() Dim i As Integer, s As Double, moy As Double For i = 1 To nbnotes s = s + tnotes(i) moy = s / nbnotes MsgBox moy La procédure gestion_notes() propose quatre choix à l utilisateur : S il tape 1, c est la procédure ajout_note() qui s exécute. S il tape 2, c est la procédure affichage_notes() qui s exécute. S il tape 3, c est la procédure moyenne_notes() qui s exécute. En revanche, s il tape 4, aucune procédure n est appelée, la condition du While devient fausse et le programme met fin à son exécution.

17 Corrigés des exercices Une fonction personnalisée Le nombre de combinaisons à calculer est défini à l aide de deux paramètres n et p, et vaut n! / (p! * (n p)!). En langage VBA, cette expression s écrit facto(n) / (facto(p) * facto(n p)) lorsque facto( ) est une fonction qui calcule la factorielle de son argument. Le code de la fonction facto(x) étant déjà défini (voir listing 14.17), le texte de la fonction personnalisée fp_combin(c1, c2) est alors le suivant. Listing : fp_combin(c1, c2) Function fp_combin(c1 As Range, c2 As Range) As Integer Dim n As Integer, p As Integer n = c1.value p = c2.value fp_combin = facto(n) / (facto(p) * facto(n - p)) End Function Chapitre 9 1. Partage d une série de nombres Le programme est structuré avec les variables suivantes : p désigne la plage B1:D10 qui contient la série des nombres à étudier (colonne B) et les résultats recherchés (colonnes C et D). seuil enregistre la valeur donnée par l utilisateur. i désigne la ligne du i ème nombre de la série des nombres. j désigne la ligne du j ième nombre à ajouter dans la colonne C (nombres inférieurs à la valeur de seuil) ; k désigne la ligne du k ième nombre à ajouter dans la colonne D (nombres supérieurs ou égaux à la valeur de seuil). Voici le texte du programme. Listing : partage_serie() Sub partage_serie() Dim p As Range Dim seuil As Integer Dim i As Integer, j As Integer, k As Integer Set p = Range("B1:D10") seuil = InputBox("donne la valeur du seuil :") j = 1 k = 1 For i = 1 To 10 If p.cells(i, 1).Value < seuil Then p.cells(j, 2).Value = p.cells(i, 1).Value j = j + 1

18 18 Introduction à la programmation avec VBA Else p.cells(k, 3).Value = p.cells(i, 1).Value k = k + 1 End If Le i ème nombre de la série des nombres est donné par la variable p.cells(i, 1).Value. Si cette valeur est inférieure à la valeur de seuil, ce nombre est recopié dans la deuxième colonne de la plage au sein d une cellule de coordonnées (j, 2), puis j est augmenté de 1. Sinon, ce nombre est recopié dans la troisième colonne de la plage au sein d une cellule de coordonnées (k, 3), puis k est augmenté de Table de multiplications Le programme est le suivant. Listing : table_multip() Sub table_multip() Dim c As Range Dim i As Integer, j As Integer Set c = Range("A1") For i = 1 To 10 '---(1) Valeurs de i --- c.offset(i, 0).Value = i For j = 1 To 10 '---(2) Valeurs de j --- c.offset(0, j).value = j Next j For i = 1 To 10 '---(3) Résultats --- For j = 1 To 10 c.offset(i, j).value = _ c.offset(i, 0).Value * c.offset(0, j).value Next j La variable c désigne la cellule A1. Le programme exécute les actions suivantes : 1. Valeurs de i. Les valeurs de i allant de 1 à 10 sont placées au sein des cellules de la plage A2:A11 (sur la colonne A). 2. Valeurs de j. Les valeurs de j allant de 1 à 10 sont placées au sein des cellules de la plage B1:K1 (sur la ligne 1). 3. Résultats. Les résultats des calculs sont affectés aux cellules de la plage B2:K11. Le produit i * j est calculé par le produit c.offset(i, 0).Value * c.offset(0, j).value, et sa valeur est affectée à la cellule c.offset(i, j). 3. Effectifs et fréquences cumulées Voici le code du programme.

19 Corrigés des exercices 19 Listing : val_cumulees() Sub val_cumulees() Dim i As Integer, nblig As Integer Dim s As Double Dim pl As Range Set pl = Selection nblig = pl.rows.count '---(1) Effectifs cumulés --- pl.cells(1).offset(0, 1).Value = pl.cells(1).value s = 0 For i = 2 To nblig s = pl.cells(i).value + pl.cells(i - 1).Offset(0, 1).Value pl.cells(i).offset(0, 1).Value = s '---(2) Fréquences relatives --- For i = 1 To nblig pl.cells(i).offset(0, 2).Value = pl.cells(i).value / s '---(3) Fréquences relatives cumulées --- For i = 1 To nblig pl.cells(i).offset(0, 3).Value = pl.cells(i).offset(0, 1).Value / s Le programme est conçu pour que l utilisateur sélectionne tout d abord une plage de cellules à une seule colonne dans laquelle il va mettre les effectifs à examiner. Cette colonne est désignée par la variable pl. Puis le programme calcule le nombre de lignes de la plage pl en exécutant nblig = pl.rows.count. Le programme effectue ensuite les trois traitements demandés. 1. Calcul des effectifs cumulés. La valeur initiale des effectifs cumulés est la première valeur des effectifs. D où la première affectation : pl.cells(1).offset(0, 1).Value = pl.cells(1).value. Pour déterminer la i ème valeur des effectifs cumulés, il faut faire la somme de la i ème valeur de l effectif étudié et de la (i 1) ème valeur de l effectif cumulé déjà calculée. Le résultat de la somme est affecté à la variable s. Le calcul est schématisé par la figure pl.cells(i-1).offset(0,+1) ligne i-1 ligne i pl.cells(i).offset(0,+1)=s pl.cells(i) Figure 14.3 Le calcul du i ème effectif cumulé.

20 20 Introduction à la programmation avec VBA La somme s vaut donc : s = pl.cells(i).value + pl.cells(i - 1).Offset(0, 1).Value Cette valeur s est la valeur recherchée. Elle est affectée à la cellule désignée par pl.cells(i).offset(0, 1) car c est elle qui doit contenir la i ème valeur des effectifs cumulés. Le calcul ainsi défini est répété plusieurs fois, pour chacune des valeurs de i allant de 2 à nblig. Au sortir de la boucle, la variable s contient la somme des effectifs de la plage pl. 2. Calcul des fréquences relatives. Chaque valeur est le quotient de la i ème valeur de l effectif initial par la somme des effectifs s. Elle vaut donc pl.cells(i).value / s, et sa valeur est affectée à la i ème cellule de la deuxième colonne des résultats qui est définie par pl.cells(i).offset(0, 2). D où l affectation qu il faut exécuter nblig fois : pl.cells(i).offset(0, 2).Value = pl.cells(i).value / s 3. Calcul des fréquences relatives cumulées. Chaque valeur est le résultat de la division de la fréquence cumulée par la somme des effectifs. Elle vaut donc pl.cells(i).offset(0, 1).Value / s. Sa valeur est ensuite affectée à la i ème cellule de la troisième colonne des résultats. Le code suivant doit alors être exécuté nblig fois : pl.cells(i).offset(0, 3).Value = pl.cells(i).offset(0, 1).Value / s Chapitre Formulaire de calcul Le formulaire est construit selon la maquette donnée par la figure UF_3nbs Le premier nombre Le deuxième nombre Le troisième nombre TextBox1 TextBox2 TextBox3 CALCUL TextBox4 Btn_Calcul Figure 14.4 La maquette du formulaire. La variable UF_3nbs désigne l objet formulaire et cet objet est affiché par la procédure trois_nbs() dont voici le code (on peut aussi définir un bouton de commande).

21 Corrigés des exercices 21 Listing : trois_nbs() Sub trois_nbs() UF_3nbs.Show Au bouton de commande Btn_Calcul du formulaire est associée la procédure Btn_Calcul_Click(). Celle-ci examine la valeur des trois nombres donnés par l utilisateur et détermine si l un d entre eux est égal ou non à la somme des deux autres. Voici le code de cette procédure. Listing : Btn_Calcul_Click() Private Sub Btn_Calcul_Click() Dim x As Integer, y As Integer, z As Integer x = CInt(TextBox1.Text) y = CInt(TextBox2.Text) z = CInt(TextBox3.Text) If x = y + z Or y = x + z Or z = x + y Then TextBox4.Text = "Egalité" Else TextBox4.Text = "NON Egalité" End If 2. Nombre proche La plage B1:B10 donne la série des nombres à étudier. Le bouton de commande Btn_Calcul, intitulé «CALCUL», permet d afficher le formulaire UF_Nbproche lors de l exécution du code suivant : Private Sub Btn_Calcul_Click() UF_Nbproche.Show Lorsque l utilisateur clique sur le bouton du formulaire intitulé «Nombre Proche», la procédure associée recherche alors le nombre le plus proche parmi les dix nombres situés en B1:B10. La figure 14.5 donne un état de la feuille de calcul après le traitement. Figure 14.5 La feuille de calcul après le traitement.

22 22 Introduction à la programmation avec VBA Le bouton du formulaire intitulé «Nombre Proche» est désigné par la variable Btn_Proche, et la procédure associée a pour nom Btn_Proche_Click(). Son code est le suivant. Listing : Btn_Proche_Click() Private Sub Btn_Proche_Click() Dim p As Range Dim i As Integer, x As Integer Dim diff As Integer, nb As Integer Set p = Range("B1:B10") x = CInt(TextBox1.Text) diff = Abs(x - p.cells(1).value) nb = p.cells(1).value For i = 2 To 10 If Abs(x - p.cells(i).value) < diff Then diff = Abs(x - p.cells(i).value) nb = p.cells(i).value End If TextBox2.Text = CStr(nb) 3. Agence de voyage Il s agit d ajouter un bouton de commande et un formulaire à l application présentée au paragraphe 3.2 du chapitre 10 afin de pouvoir modifier les informations données lors d une inscription (nombre de personnes et formule retenue). Le bouton, ajouté sur la feuille de calcul, est intitulé «MODIFICATION», et il est désigné par la variable Btn_Modif. Le formulaire associé est désigné par la variable UF_Modif. Il a la même structure que le formulaire UF_Inscription de l application comme l indique la figure Figure 14.6 Le formulaire de modification.

23 Corrigés des exercices 23 L utilisateur saisit d abord les informations au sein du formulaire : le nom de la personne déjà inscrite (sans le modifier), puis le nombre de personnes et la formule retenue (Week-End, Semaine ou Promotion) qui sont modifiées par rapport à l enregistrement déjà effectué. Puis l utilisateur clique sur le bouton de commande intitulé «VALIDATION». Ce bouton est désigné par la variable Btn_OK_Modif. La procédure associée, appelée Btn_OK_Modif_Click(), est alors exécutée. En voici le code. Listing : Btn_OK_Modif_Click() Private Sub Btn_OK_Modif_Click() Dim c As Range Dim nb As Integer, prix As Integer Dim choix As String Dim i As Integer '---(1) Recherche du nom --- i = 1 While Range("B3").Offset(i, 0).Value <> TextBox1.Text _ And Range("B3").Offset(i, 0).Value <> Empty i = i + 1 Wend '---(2) Enregistrement des modifs --- If Range("B3").Offset(i, 0) <> Empty Then Set c = Range("B3").Offset(i, 0) c.offset(0, 1).Value = TextBox2.Text nb = CInt(TextBox2.Text) choix = ComboBox1.Value c.offset(0, 2).Value = choix If choix = "Week-End" Then prix = nb * 100 If choix = "Semaine" Then prix = nb * 500 If choix = "Promotion" Then prix = nb * 150 c.offset(0, 3).Value = prix MsgBox "La modification de " & TextBox1.Text & " est enregistrée" Unload Me Else MsgBox "Erreur sur le nom de la personne" End If La procédure agit en deux temps : 1. Recherche du nom. Les noms des personnes déjà inscrites figurent au sein de la colonne B, à partir de la cellule B4. Le raisonnement à suivre est formulé avec une double condition. Tant que la i ème cellule de la colonne B contient un nom et que celui-ci n est pas le nom recherché, alors il faut examiner la cellule suivante de cette colonne. Mais dès que la valeur de la i ème cellule est le nom cherché, il convient d arrêter l étude des noms. Il faut aussi arrêter le processus lorsque la i ème cellule est vide et ne contient pas de nom. Lorsque la boucle While Wend termine son exécution, la variable i désigne la ligne qui contient le nom cherché, ou bien qui ne contient aucun nom.

24 24 Introduction à la programmation avec VBA 2. Enregistrement des modifications. Après avoir vérifié que la i ème cellule Range("B3").Offset(i, 0) n est pas vide (elle contient donc un nom), le programme affecte à la variable c l adresse de cette cellule, puis il réalise les mises à jour relatives au nom contenu par cette cellule. Chapitre Dessin Le dessin à reproduire se présente comme à la figure Figure 14.7 La maquette du dessin. 3 4 J6: cellule de départ Il convient tout d abord de donner un format carré à chaque cellule concernée, en choisissant par exemple 12,5 comme hauteur des lignes et 2 comme largeur des colonnes. Il s agit ensuite de colorier les cellules en partant d une cellule donnée. Nous proposons de commencer à la cellule J6, positionnée à la ligne 6 et à la colonne 10. Voici le programme qui colorie quatre cellules dans chacun des quatre parcours (parcours numérotés 1, 2, 3 et 4 sur la figure). Listing : dessin() Sub dessin() Dim i As Integer, j As Integer Dim k As Integer i = 6 j = 10 'cellule J6 For k = 1 To 4 'parcours 1 Cells(i, j).interior.colorindex = 4 i = i - 1 j = j - 1 Next k For k = 1 To 4 'parcours 2 Cells(i, j).interior.colorindex = 4 i = i + 1 j = j - 1 Next k For k = 1 To 4 'parcours 3 Cells(i, j).interior.colorindex = 4

25 Corrigés des exercices 25 i = i + 1 j = j + 1 Next k For k = 1 To 4 'parcours 4 Cells(i, j).interior.colorindex = 4 i = i - 1 j = j + 1 Next k 2. Frise n 1 La première frise est structurée par la répétition de six cellules qui sont organisées à partir de la cellule B3 comme l indique la figure c.offset(-1,0) c.offset(-1,+1) c=cellule B3 =c.offset(0,0) c.offset(+1,0) c.offset(+1,+1) c.offset(0,+1) Figure 14.8 La frise n 1. Voici le programme qui permet de réaliser cette frise. Listing : frise1() Sub frise1() Dim c As Range Dim j As Integer, k As Integer Set c = Range("B3") For k = 0 To 12 Step 2 c.offset(0, k).interior.colorindex = 6 'jaune c.offset(-1, k).interior.colorindex = 6 c.offset(-1, k + 1).Interior.ColorIndex = 6 c.offset(0, k + 1).Interior.ColorIndex = 3 'rouge c.offset(1, k).interior.colorindex = 3 c.offset(1, k + 1).Interior.ColorIndex = 3 Next k Le programme affecte à la variable c l adresse de la cellule B3. Puis il colorie les cellules en fonction de leur position par rapport à cette cellule : k vaut d abord 0 : le programme colorie les six premières cellules. La valeur suivante de k vaut 2 car le pas de l instruction itérative est de 2. Les cellules sont décalées de +2 vers la droite, et le même traitement est appliqué aux six cellules concernées.

26 26 Introduction à la programmation avec VBA Il en est de même pour les valeurs suivantes de k : 4, 6, 8, 10 et 12. L instruction itérative définie avec la variable k assure ainsi sept fois le coloriage des six cellules. 3. Frise n 2 Pour réaliser la seconde frise, il suffit de la découper en une succession de croix comme l indique la figure Cellule de départ Ligne i Colonne j Figure 14.9 La frise n 2. Chaque croix s inscrit dans un ensemble de 5 5 cellules où chaque cellule est repérée par son numéro de ligne i et son numéro de colonne j, i allant de 0 à 4 et j allant de 0 à 4. Les cellules sont coloriées lorsqu elles appartiennent à l une des deux diagonales : première diagonale lorsque i = j et deuxième diagonale lorsque i = 4 j. Voici le programme correspondant. Listing : frise2() Sub frise2() Dim c As Range Dim i As Integer, j As Integer, k As Integer Set c = Range("B2") For k = 0 To 15 Step 5 For i = 0 To 4 For j = 0 To 4 If i = j Or i = 4 - j Then c.offset(i, j + k).interior.colorindex = 5 End If Next j Next k Le programme attribue à la variable c l adresse de la cellule B2 qui sert de cellule de référence. Puis le programme exécute trois boucles imbriquées (triple boucle) : Lorsque k = 0, le programme exécute une première fois la double boucle structurée par les valeurs de i et de j. Il colorie les cellules c.offset(i, j + k) c est-à-dire c.offset(i, j) lorsqu elles satisfont aux conditions sur i et j.

27 Corrigés des exercices 27 La valeur suivante de k vaut 5 puisque le pas de l instruction itérative est de 5. Le programme exécute alors une deuxième fois la double boucle définie par i et j. Les cellules c.offset(i, j + k), c est-à-dire c.offset(i, j + 5), sont situées à droite des précédentes cellules, avec un déplacement de +5. Elles sont coloriées lorsqu elles satisfont aux conditions sur les variables i et j. Puis le programme exécute à nouveau ce traitement pour k = 10 et pour k = 15. Au terme du processus, le programme a colorié quatre croix respectant les conditions imposées aux variables i et j. Chapitre Calculs financiers Nous proposons que le calcul du montant de l emprunt soit structuré de la même façon que celui qui détermine la mensualité d un emprunt : il faut alors ajouter un troisième bouton de commande «EMPRUNT Montant?» sur la feuille F_menu comme cela est présenté sur la figure Figure La feuille F_menu. Le bouton de commande «EMPRUNT Montant?» est désigné par la variable Btn_Emprunt2. Voici le code de la procédure associée Btn_Emprunt2_Click(). Listing : Btn_Emprunt2_Click() Private Sub Btn_Emprunt2_Click() Dim f_emprunt2 As Worksheet Set f_emprunt2 = Worksheets("F_montants_emprunt") f_emprunt2.activate Il faut ensuite définir une nouvelle feuille de calcul F_montants_emprunt organisée comme l indique la figure

28 28 Introduction à la programmation avec VBA Figure La feuille de calcul F_montants_emprunt. Au bouton de commande intitulé «CALCUL Montants» et désigné par la variable Btn_Calcul_Montants est associée la procédure Btn_Calcul_Montants_Click(), et au bouton intitulé «Quitter» est associée la procédure Btn_Quitter_Click(). Voici le texte de la première procédure. Listing : Btn_Calcul_Montants_Click() Private Sub Btn_Calcul_Montants_Click() Dim m As Double, t As Double Dim taux As Double, mens As Double Dim n As Integer, nb As Integer, i As Integer, j As Integer Dim p As Range '---(1) Données et calcul du montant --- mens = Range("B3").Value t = Range("B4").Value n = Range("B5").Value m = (mens * (1 - (1 + (t / 12)) ^ -(n * 12))) / (t / 12) Range("B6").Value = Round(m, 2) '---(2) Mise en place du tableau --- Set p = Range("B8:G13") p.cells(1, 1).Value = Round(m, 2) taux = Range("B4").Value nb = Range("B5").Value - 2 For i = 2 To 6 'valeurs des durées p.cells(i, 1).Value = nb nb = nb + 1 For j = 2 To 6 'valeurs des taux p.cells(1, j).value = taux taux = taux Next j '---(3) Calcul des montants --- For i = 2 To 6 For j = 2 To 6 n = p.cells(i, 1).Value t = p.cells(1, j).value m = (mens * (1 - (1 + (t / 12)) ^ -(n * 12))) / (t / 12) p.cells(i, j).value = Round(m, 2) Next j

29 Corrigés des exercices 29 La procédure effectue plusieurs calculs : 1. Données et calcul du montant. Elle calcule tout d abord la valeur du montant à partir des données fournies par l utilisateur au sein des cellules B3, B4 et B5. Le calcul du montant m est fait en utilisant les variables mens (mensualité), t (taux d intérêt en valeur décimale) et n (durée en années de l emprunt) au sein de l affectation suivante : m = (mens * (1 - (1 + (t / 12)) ^ -(n * 12))) / (t / 12) Cette formulation est la transcription informatique de la formule financière qui définit la valeur du montant de l emprunt : M = (Me / T) (1 (1 + T) N ), Me étant la mensualité, T le taux d intérêt mensuel et N le nombre de mois de la durée de l emprunt. 2. Mise en place du tableau. La procédure met en place le tableau B8:G13 désigné par la plage p. Sur la première colonne (B9:B13), elle met les valeurs des durées qui vont être utilisées. Sur la première ligne (cellules C8:G8), elle met les valeurs des différents taux qui encadrent le taux d intérêt déjà utilisé pour le calcul précédent. 3. Calcul des montants. La procédure calcule ensuite les valeurs des montants en appliquant pour chaque couple de valeur (taux, durée) la formule financière. Toutes ces valeurs se mettent en place dès que l utilisateur a donné les valeurs demandées, puis cliqué sur le bouton «CALCUL Montants». 2. Gestion de prêts Il s agit de compléter l application «Gestion de prêts» en la dotant d un service supplémentaire INFORMATIONS. Celui-ci doit permettre de donner des informations sur l état des prêts. Un bouton de commande intitulé «INFORMATIONS» est ajouté à la feuille F_menu comme l indique la figure Figure La feuille F_menu.

30 30 Introduction à la programmation avec VBA Au bouton «INFORMATIONS» est associée la procédure suivante : Listing : Btn_Infos_Click() Private Sub Btn_Infos_Click() UF_Infos.Show Voici le formulaire que nous proposons d ajouter au sein de l application. Il est donné par la figure Figure Le formulaire UF_infos. Ce formulaire désigné par la variable UF_Infos contient deux boutons de commande. Le premier, intitulé «CALCUL», est défini par la variable Btn_Nbpers. La procédure associée Btn_Nbpers_Click() est conçue pour effectuer les calculs demandés. Le second bouton est intitulé «Quitter» et permet d effacer le formulaire de l écran sans conserver d information. Le formulaire contient aussi six zones de texte définies par les variables TextBox1, TextBox2,, TextBox6. Celles-ci vont recevoir les informations calculées par la procédure Btn_Nbpers_Click(). Pour calculer le nombre de personnes ayant empruntés 0 document, 1 document, 2 documents,, 5 documents, cette procédure doit consulter le nombre de documents empruntés par chaque personne inscrite. Comment trouver cette information? L application est munie de plusieurs variables globales dont la variable ci. Celle-ci désigne la première cellule de la liste des noms de personnes du classeur Inscrits. La variable ci.offset(i, 0) désigne donc la i ème personne et ci.offset(i, 3).Value donne alors le nombre de documents empruntés par cette personne. Le texte du programme est alors le suivant.

31 Corrigés des exercices 31 Listing : Btn_Nbpers_Click() Private Sub Btn_Nbpers_Click() Dim i As Integer Dim nb0 As Integer, nb1 As Integer, nb2 As Integer Dim nb3 As Integer, nb4 As Integer, nb5 As Integer '---(1) Initialisations --- init i = 0 nb0 = 0: nb1 = 0: nb2 = 0: nb3 = 0: nb4 = 0: nb5 = 0 '---(2) Calculs --- While ci.offset(i, 0).Value <> Empty If ci.offset(i, 3).Value = 0 Then nb0 = nb0 + 1 ElseIf ci.offset(i, 3).Value = 1 Then nb1 = nb1 + 1 ElseIf ci.offset(i, 3).Value = 2 Then nb2 = nb2 + 1 ElseIf ci.offset(i, 3).Value = 3 Then nb3 = nb3 + 1 ElseIf ci.offset(i, 3).Value = 4 Then nb4 = nb4 + 1 Else nb5 = nb5 + 1 End If i = i + 1 Wend '---(3) Affichage des résultats --- TextBox1.Text = CStr(nb0) TextBox2.Text = CStr(nb1) TextBox3.Text = CStr(nb2) TextBox4.Text = CStr(nb3) TextBox5.Text = CStr(nb4) TextBox6.Text = CStr(nb5) La procédure agit en trois temps : 1. Initialisation. L appel à la procédure init() permet de créer et d initialiser toutes les variables globales dont la variable ci. Puis les variables i, nb0, nb1,, nb5 sont initialisées à 0 (les «:» ajoutés sur la ligne permettent de mettre plusieurs instructions sur cette ligne). 2. Calculs. Tant que la i ème cellule contient un nom, la procédure examine la valeur de ci.offset(i, 3) et met à jour le nombre de documents empruntés selon les résultats aux tests. 3. Affichage des résultats. Les valeurs de nb0, nb1,, nb5 étant calculées, elles sont affichées sous forme de chaînes de caractères au sein des six zones de texte du formulaire.

32 32 Introduction à la programmation avec VBA Chapitre Comparaison de trois suites récurrentes Soit trois fonctions qui permettent de calculer la racine d ordre 5 d un nombre a, c est-à-dire a 1/5 : Fonction n 1 : f(x) = (2 x + a / (x ^ 4)) / 3 Fonction n 2 : f(x) = (3 x + a / (x ^ 4)) / 4 Fonction n 3 : f(x) = (4 x + a / (x ^ 4)) / 5 Ces trois fonctions définissent une limite L qui vaut a 1/5. Leurs coefficients de convergence valent respectivement 2/3, ¼ et 0, indiquant ainsi que la fonction n 3 est celle dont la vitesse de convergence vers le résultat est la plus grande. Voici le texte du programme formulé avec la variable U pour la fonction n 1, la variable V pour la fonction n 2 et la variable W pour la fonction n 3. Listing : suite_rac5() Sub suite_rac5() Dim i As Integer Dim U As Double, V As Double, W As Double, a As Double Dim c As Range Set c = Range("B1") a = InputBox("valeur de a :") U = InputBox("valeur initiale de U :") V = U W = U For i = 0 To 99 U = (2 * U + (a / (U ^ 4))) / 3 V = (3 * V + (a / (V ^ 4))) / 4 W = (4 * W + (a / (W ^ 4))) / 5 c.offset(i, 0).Value = U 'affichage colonne B c.offset(i, 1).Value = V 'affichage colonne C c.offset(i, 2).Value = W 'affichage colonne D Si l on donne à la variable a la valeur 243 qui vaut en fait 3 5 (3 à la puissance 5), on vérifie ainsi à quelle vitesse on obtient la valeur 3 comme résultat. Lorsque l on donne 3,2 comme valeur initiale et que l on affiche les résultats avec 15 décimales, on obtient cette valeur 3 à la soixante-dix-septième itération avec la fonction n 1, à la vingt-deuxième itération avec la fonction n 2 et à la quatrième itération avec la dernière fonction. C est bien cette fonction qui permet d obtenir le programme le plus performant.

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0 UNIVERSITE DES SCIENCES SOCIALES DE TOULOUSE Licence Professionnelles LSi Master FC IGSI Programmation Visual Basic Visite guidée d'un programme Visual Basic 6.0 1. un exemple d'application a) créer dans

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

Excel 2007 Niveau 3 Page 1 www.admexcel.com

Excel 2007 Niveau 3 Page 1 www.admexcel.com Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement

Plus en détail

TD3 - Facturation avec archivage automatisé

TD3 - Facturation avec archivage automatisé TD3 - Facturation avec archivage automatisé Objectifs Insérer les formules nécessaires aux calculs d une facture. Créer une macro- commande avec l enregistreur de macros et l affecter à un bouton. Utiliser

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Formation VBA 3 Interagir

Formation VBA 3 Interagir Formation VBA 3 Interagir 1 Utilisation des UserForms Les UserForms sont des interfaces largement configurables, il convient de ne pas les limiter à tel ou tel usage qui pourrait être présenté à titre

Plus en détail

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Exploitations pédagogiques du tableur en STG Académie de Créteil 2006 1 EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Commission inter-irem lycées techniques contact : dutarte@club-internet.fr La maquette

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES TRAVAUX PRATIQUES Le présent travail vise à développer une interface visuelle de programmation des entrées- sorties du port LPT d un PC à l aide du logiciel VISUAL BASIC. I- EDITION ET TEST DU PROGRAMME

Plus en détail

Découverte du tableur CellSheet

Découverte du tableur CellSheet Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

EXCEL PERFECTIONNEMENT CALCULS AVANCES

EXCEL PERFECTIONNEMENT CALCULS AVANCES TABLE DES MATIÈRES FORMATS... 2 Formats personnalisés... 2 ADRESSAGE DE CELLULES... 3 relatif & absolu Rappel... 3 Adressage par nom... 4 Valider avec la touche Entrée... 4 FONCTIONS SI-ET-OU... 6 LA FONCTION

Plus en détail

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE PRISE EN MAIN D UN TABLEUR Version OPEN OFFICE Prise en main d un tableur page 2 1. L utilisation de la souris Pour faire fonctionner un tableur, on utilise le clavier mais aussi la souris. Rappelons,

Plus en détail

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine Initiation à VBA pour Excel Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine Septembre 2008 2 Chapitre 1 Références F. Riva Applications nancières sous Excel en Visual Basic,

Plus en détail

Feuille TD n 1 Exercices d algorithmique éléments de correction

Feuille TD n 1 Exercices d algorithmique éléments de correction Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments

Plus en détail

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts CORRIGES DES CAS TRANSVERSAUX Corrigés des cas : Emprunts Remboursement par versements périodiques constants - Cas E1 Objectifs : Construire un échéancier et en changer la périodicité, Renégocier un emprunt.

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Auto-Entreprise : Activités : Eric SOTY - Siret n 47868353500023. Formation Bureautique, continue d'adultes. Tél : 0953020032 - Fax : 0958020032

Auto-Entreprise : Activités : Eric SOTY - Siret n 47868353500023. Formation Bureautique, continue d'adultes. Tél : 0953020032 - Fax : 0958020032 Auto-Entreprise : Activités : Eric SOTY - Siret n 47868353500023 Formation Bureautique, APE : 8559A formation continue d'adultes. identité visuelle, charte T.V.A. non applicable, article 293 B du CGI.

Plus en détail

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX TABLE DES MATIERES Livret Utilisateur Excel 2007 Niveau 2 INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX... 4 Les tableaux croisés dynamiques... 4 Création d un tableau croisé... 5 Comparer des

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Probabilités Loi binomiale Exercices corrigés

Probabilités Loi binomiale Exercices corrigés Probabilités Loi binomiale Exercices corrigés Sont abordés dans cette fiche : (cliquez sur l exercice pour un accès direct) Exercice 1 : épreuve de Bernoulli Exercice 2 : loi de Bernoulli de paramètre

Plus en détail

CHAPITRE I FONCTIONS STATISTIQUES, DE DATE & HEURE... 1

CHAPITRE I FONCTIONS STATISTIQUES, DE DATE & HEURE... 1 T A B L E D E S M A T I È R E S CHAPITRE I FONCTIONS STATISTIQUES, DE DATE & HEURE... 1 SYNTAXE DES FONCTIONS INTÉGRÉES...1 ENTRÉE D UNE FONCTION INTÉGRÉE À L AIDE DE LA PALETTE DE FORMULES... 1 FONCTIONS

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

FORMATION au VBA Pour EXCEL. Version 2007 & +

FORMATION au VBA Pour EXCEL. Version 2007 & + FORMATION au VBA Pour EXCEL Version 2007 & + Philippe Puig Formateur Informatique http://wwwphilippepuigcom contact@philippepuigcom wwwphilippepuigcom Page 1 sur 87 VBA : introduction Le VBA (Visual Basic

Plus en détail

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05 EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

L ALGORITHMIQUE. Algorithme

L ALGORITHMIQUE. Algorithme L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques

Plus en détail

GUIDE Excel (version débutante) Version 2013

GUIDE Excel (version débutante) Version 2013 Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B Excel : Réalisation d un classeur Compta Saisir les étiquettes Renommer la première feuille Compta Laisser la première ligne vide et sur la deuxième ligne saisir les étiquettes Se placer sur A2 et saisir

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

COURS DE MS EXCEL 2010

COURS DE MS EXCEL 2010 COURS DE MS EXCEL 2010 Auteur: Jean Monseu Ce cours est publié par Mechelsesteenweg 102 2018 Anvers Copyright Jean Monseu CFD, Mechelsesteenweg 102, 2018 Anvers Tous droits réservés. Aucune partie de cette

Plus en détail

Note de cours. Introduction à Excel 2007

Note de cours. Introduction à Excel 2007 Note de cours Introduction à Excel 2007 par Armande Pinette Cégep du Vieux Montréal Excel 2007 Page: 2 de 47 Table des matières Comment aller chercher un document sur CVMVirtuel?... 8 Souris... 8 Clavier

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique Fiche de validation des besoins en formation Bureautique Excel Identification Nom : Prénom : Société : Adresse : CP Ville : Adresse e-mail : Téléphone professionnel : Informations sur vos besoins et objectifs

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Mémento Ouvrir TI-Nspire CAS. Voici la barre d outils : L insertion d une page, d une activité, d une page où l application est choisie, pourra

Plus en détail

Les probabilités. Chapitre 18. Tester ses connaissances

Les probabilités. Chapitre 18. Tester ses connaissances Chapitre 18 Les probabilités OBJECTIFS DU CHAPITRE Calculer la probabilité d événements Tester ses connaissances 1. Expériences aléatoires Voici trois expériences : - Expérience (1) : on lance une pièce

Plus en détail

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

Créer un tableau avec LibreOffice / Calc

Créer un tableau avec LibreOffice / Calc Créer un tableau avec LibreOffice / Calc Réaliser des tableaux LibreOffice / Calc permet de créer des tableaux facilement en utilisant les cellules. En premier lieu, il faut prévoir le nombre de colonnes

Plus en détail

Microsoft Excel 2000 Fonctions avancées

Microsoft Excel 2000 Fonctions avancées Microsoft Excel 2000 Fonctions avancées - 2 / 38 - Sommaire : I. MISE EN FORME EVOLUEE...3 A. AFFICHAGE PERSONNALISE...3 B. FUSION...3 C. RETOUR A LA LIGNE...4 D. AFFICHAGES PERSONNALISES...4 E. LES STYLES...6

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Les devoirs en Première STMG

Les devoirs en Première STMG Les devoirs en Première STMG O. Lader Table des matières Devoir sur table 1 : Proportions et inclusions....................... 2 Devoir sur table 1 : Proportions et inclusions (corrigé)..................

Plus en détail

PRÉSENTÉ PAR : NOVEMBRE 2007

PRÉSENTÉ PAR : NOVEMBRE 2007 MANUEL D UTILISATION DU FICHIER EXCEL DE GESTION DES OPÉRATIONS DANS LE CADRE DU PROGRAMME FOR@C D AIDE AUX PME DE L INDUSTRIE DES PRODUITS FORESTIERS PRÉSENTÉ PAR : NOVEMBRE 2007 Table des matières Manuel

Plus en détail

La Clé informatique. Formation Excel XP Aide-mémoire

La Clé informatique. Formation Excel XP Aide-mémoire La Clé informatique Formation Excel XP Aide-mémoire Septembre 2005 Table des matières Qu est-ce que le logiciel Microsoft Excel?... 3 Classeur... 4 Cellule... 5 Barre d outil dans Excel...6 Fonctions habituelles

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ Auteur : S.& S. Etienne F7n COUP DE BOURSE, NOMBRE DÉRIVÉ TI-Nspire CAS Mots-clés : représentation graphique, fonction dérivée, nombre dérivé, pente, tableau de valeurs, maximum, minimum. Fichiers associés

Plus en détail

Complément d information concernant la fiche de concordance

Complément d information concernant la fiche de concordance Sommaire SAMEDI 0 DÉCEMBRE 20 Vous trouverez dans ce dossier les documents correspondants à ce que nous allons travailler aujourd hui : La fiche de concordance pour le DAEU ; Page 2 Un rappel de cours

Plus en détail

Visual Basic for Applications

Visual Basic for Applications Visual Basic for Applications (sous Excel) Frédéric Cadier ENST Bretagne - Département LUSSI frederic.cadier@enst-bretagne.fr Cadier F. (ENST Bretagne) VBA 1 / 62 Plan de la présentation 1 Excel et VBA

Plus en détail

Les bases de données. Se familiariser avec Base. Figure 1.1A Ouvre le fichier dont tu as besoin. Lance OpenOffice Base.

Les bases de données. Se familiariser avec Base. Figure 1.1A Ouvre le fichier dont tu as besoin. Lance OpenOffice Base. Exercice 1. 1 Se familiariser avec Base Figure 1.1A Ouvre le fichier dont tu as besoin. Données de l élève Lance OpenOffice Base. Ouvre le fichier nommé 6A Base de données clients (Figure 1.1A). Clique

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Logiciel XLSTAT version 7.0. 40 rue Damrémont 75018 PARIS

Logiciel XLSTAT version 7.0. 40 rue Damrémont 75018 PARIS Logiciel XLSTAT version 7.0 Contact : Addinsoft 40 rue Damrémont 75018 PARIS 2005-2006 Plan Présentation générale du logiciel Statistiques descriptives Histogramme Discrétisation Tableau de contingence

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

Jeux mathématiques en maternelle. Activités clés. Jeu des maisons et des jardins (Yvette Denny PEMF)

Jeux mathématiques en maternelle. Activités clés. Jeu des maisons et des jardins (Yvette Denny PEMF) Activités clés NIVEAU : PS/MS Jeu des maisons et des jardins (Yvette Denny PEMF) Compétences Construire les premiers nombres dans leur aspect cardinal Construire des collections équipotentes Situation

Plus en détail

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Valeur cible et solveur. Les calculs effectués habituellement avec Excel utilisent des valeurs numériques qui constituent les données d'un problème.

Valeur cible et solveur. Les calculs effectués habituellement avec Excel utilisent des valeurs numériques qui constituent les données d'un problème. Valeur cible et solveur Atteindre une valeur cible Les calculs effectués habituellement avec Excel utilisent des valeurs numériques qui constituent les données d'un problème. A l'aide d'un certain nombre

Plus en détail

Microsoft Excel 2007. Présentation du tableur Excel

Microsoft Excel 2007. Présentation du tableur Excel Microsoft Excel 2007 Présentation du tableur Excel 1 Interface d'excel 2007 Excel 2007 se distingue des versions précédentes par son interface plus intuitive et accessible. Les nouveautés sont multiples

Plus en détail

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur Excel Avancé Plan Outils de résolution La valeur cible Le solveur Interactivité dans les feuilles Fonctions de recherche (ex: RechercheV) Utilisation de la barre d outils «Formulaires» Outils de simulation

Plus en détail

PROGRAMMATION EVENEMENTIELLE sur EXCEL

PROGRAMMATION EVENEMENTIELLE sur EXCEL MASTERs SMaRT & GSI PROGRAMMATION EVENEMENTIELLE sur EXCEL Pierre BONNET Programmation évènementielle La programmation évènementielle permet un appel de procédure depuis l'interface HMI d'excel (ou d'un

Plus en détail

Maple: premiers calculs et premières applications

Maple: premiers calculs et premières applications TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs Dans la série Les tutoriels libres présentés par le site FRAMASOFT Automatisation d'une Facture 4 Liste Déroulante Remises Case à cocher Calculs Logiciel: Version: Licence: Site: OpenOffice.org Calc :

Plus en détail

Utiliser un tableau de données

Utiliser un tableau de données Utiliser un tableau de données OBJECTIFS : - Définir une Base de Données. - Présentation : tableau de données. - Création d un tableau de données - Gestion d un tableau de données. - Trier et Filtrer des

Plus en détail

Excel 2007 Utilisation Avancée

Excel 2007 Utilisation Avancée Microsoft Excel 2007 Utilisation Avancée FAC SIMILE Ce fac similé présente la table des matières, l'index et quelques pages de l'ouvrage. MANUEL DE RÉFÉRENCE AVERTISSEMENT Microsoft Excel 2007 est une

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE BACCALAURÉAT GÉNÉRAL SESSION 2012 MATHÉMATIQUES Série S Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE Les calculatrices électroniques de poche sont autorisées, conformément à la

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Formations 2015 Bureautique

Formations 2015 Bureautique Formations 2015 Bureautique Excel PowerPoint Utiliser Excel au quotidien 1 jour lundi 30/03/2015 Créer des graphiques 0.5 jour mercredi 08/04/2015 (après midi) Faire des calculs 1 jour lundi 04/05/2015

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Utilitaires méconnus de StrataFrame

Utilitaires méconnus de StrataFrame Utilitaires méconnus de StrataFrame Voici quelques classes d utilitaires, parmi ceux qui se trouvent dans le NameSpace MicroFour.StrataFrame.Tools. Cette liste n est pas exhaustive, et les regroupements

Plus en détail

12 Tableaux croisés dynamiques

12 Tableaux croisés dynamiques 12 Le tableau croisé dynamique est l un des meilleurs outils de synthèse que propose Excel. Ne vous laissez pas intimidé par ce nom barbare et surtout, oubliez les inconvénients et les lourdeurs des précédentes

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Comment créer et utiliser une fonction

Comment créer et utiliser une fonction Comment créer et utiliser une fonction Henry P. AUBERT Jacques GOUPY Si, dans une cellule d'une feuille Excel, l on utilise souvent la même formule mathématique, il est possible d en faire une fonction

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

http://cermics.enpc.fr/scilab

http://cermics.enpc.fr/scilab scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,

Plus en détail

Utiliser le service de messagerie électronique de Google : gmail (1)

Utiliser le service de messagerie électronique de Google : gmail (1) Utiliser le service de messagerie électronique de Google : gmail (1) 1. Créer un compte 2 2. Ouvrir sa boîte de messagerie électronique 3 3. Comprendre la boîte de réception (1) 4 3.1. Lire un message

Plus en détail