130_prep_1

publicité
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.
Téléchargement