INF 130 - préparation #1 Objectif 1 (issu des diviseurs d’un entier) Donnez une fonction complète qui retourne la somme des diviseurs impairs d’un entier et qui place ce nombre de diviseurs impairs dans une référence Compléter le sub de test de cette fonction directement sur cette page Donnez à la fonction le nom qu’il vous plaira Public Sub test1() Dim nombre As Long ' déclarez vos variables Dim Dim As Long As Long nombre = Val( InputBox(" donne un entier ")) ' mettez l'appel de votre fonction ' affichez les résultats obtenus Call MsgBox("la somme = " & Call MsgBox("le nombre de diviseurs impairs = " & End Sub Objectif 2 (issu des chiffres d’un entier, puis obtenir un maximum) Partie 1 Donnez la fonction complète prod_chiffres qui reçoit un entier en paramètre et qui retourne le produit de ses chiffres différents de zéro. Partie 2 Donnez un sub complet qui reçoit trois paramètres : deux par valeur les bornes d’un intervalle et un entier par référence. Dans la référence, on place l’entier de l’intervalle qui atteint un maximum avec prod_chiffres Compléter le sub de test directement sur cette page Donnez à ce sous-programme le nom qu’il vous plaira Public Sub test2() Dim borne1 As Long, borne2 As Long ' déclarez votre variable Dim As Long ' init des bornes de l'intervalle borne1 = 24501 borne2 = 9051244 ' l'appel de votre sub qui traite l'intervalle ' affichez deux résultats Call MsgBox("la valeur obtenue du sub = " & Call MsgBox("le produit de ses chiffres = " & End Sub Objectif 3 (issu des nombres premiers) Donnez la fonction complète prop_prime qui reçoit deux paramètres par valeur et un par référence. La fonction retourne la proportion de nombres premiers obtenus parmi un groupe d’entiers obtenus aléatoirement et place dans la référence la moyenne des nombres premiers. Son premier paramètre donne le nombre de tests à faire Son second paramètre donne la valeur maximale des nombres testés La référence recevra la moyenne des nombres premiers obtenus dans les tests Lors de chaque test dans la boucle : o Obtenir de votre générateur un entier entre 2 et le second paramètre o Tester avec la fonction is_prime fournie si ce nombre est premier Public Function is_prime(ByVal nombre As Long) As Boolean o Si is_prime répond vrai, on compte 1 de plus et on ajoute sa valeur à la somme En fin de boucle : o La somme des nombres premiers est divisée par le compte et placée dans la référence o La proportion de nombres premiers est calculée et sera retournée Compléter son sub de test directement sur cette copie Public Sub test3() Dim nb_test As Long, maximum As Long ' déclarez les variables pour la proportion et la moyenne Dim Dim ' init des conditions initiales du test nb_test = 1200 maximum = 2 ^ 30 - 1 ' je donne l'appel de votre fonction proportion = prop_prime(nb_test, maximum, moyen_prime) ' affichez la proportion et la moyenne obtenues 'Call MsgBox(" 'Call MsgBox(" End Sub Objectif 4 (issu de pile ou face) Donnez la fonction complète diff_max qui reçoit un paramètre, le nombre de lancers d’une pièce de monnaie équilibrée à simuler. La fonction retourne la plus grande différence obtenue durant la simulation entre le nombre de piles et de faces observés. Chaque lancer de la pièce de monnaie est simulé de votre générateur (le choix est vaste et vous êtes libre) Dans la boucle qui simule un à un les lancers. Après chaque lancer, le nombre de piles, le nombre de faces et la valeur absolue de leur différence sont mises à date. Si cette différence actuelle dépasse la différence maximale observée à date, le nouveau maximum est conservé En fin de boucle, la fonction retourne le maximum obtenu.