Ce programme permet de tester si un nombre est un nombre de Armstrong, il permet de calculer également les nombres de Armstrong compris entre 1 et 9999, cette source est commenté pas à pas, idéal pour les débutants en vb6.
Source / Exemple :
Option Explicit 'Permet de contrôler l'existence des variables
Private Sub Command1_Click()
'On dénomme nombre de Armstrong un entier naturel qui est égal
' à la somme des cubes des chiffres qui le composent.
'Exemple:
'153=1^3+5^3+3^3
'153 = 1 + 125 + 27, est un nombre de Armstrong.
'Le textbox est renommé: nbre
'Déclaration des variables mille, centaine, dizaine et unite pour couper le nombre donné
Dim mille As Integer
Dim centaine As Integer
Dim dizaine As Integer
Dim unite As Integer
'Mid(Nomdechaîne, nombre1, nombre2) : renvoie une chaîne, extraite de Nomdechaîne, commençant au caractère numéro nombre1 et faisant nombre2 caractères de long
On Error Resume Next
'On error resume next Permet de sauter la ligne ci-dessous si une erreur se produit, c'est le cas si le nombre entré est inférieur à 1000: le nombre ne peut pas être coupé au chiffre des mille
mille = Mid(nbre.Text, 1, 1)
On Error Resume Next
centaine = Mid(nbre.Text, 2, 1)
On Error Resume Next
dizaine = Mid(nbre.Text, 3, 1)
On Error Resume Next
unite = Mid(nbre.Text, 4, 1)
If mille ^ 3 + centaine ^ 3 + dizaine ^ 3 + unite ^ 3 = nbre.Text Then 'on effectue le test pour savoir si la somme des cubes des chiffres qui composent le nombre donné est bien égale au nombre donné
MsgBox nbre.Text + " est bien un nombre de Armstrong", vbInformation, "Résultat" 'condition vérifié
Else
MsgBox nbre.Text + " n'est pas un nombre de Armstrong", vbCritical, "Résultat" 'condition non vérifié
End If
End Sub
Private Sub Command2_Click()
'La listebox est renommé: liste
'Déclaration des variables mille, centaine, dizaine et unite pour couper le nombre donné
Dim mille As Integer
Dim centaine As Integer
Dim dizaine As Integer
Dim unite As Integer
'Création d'une variable qui va prendre toutes les valeurs de 1 à 9999
Dim nbreboucle As Integer
nbreboucle = 1 ' Initialisation de la variable
'Boucle tant que... (Do while...(conditions)...(instructions)...Loop) (elle s'arrète quand nbreboucle atteint 10000)
Do While nbreboucle < 10000
'le contre slash \ permet d'avoir le résultat entier d'une division contrairement au slash / habituel
mille = nbreboucle \ 1000
centaine = (nbreboucle - ((nbreboucle \ 1000) * 1000)) \ 100
dizaine = (nbreboucle - ((nbreboucle \ 100) * 100)) \ 10
unite = nbreboucle - (((nbreboucle \ 100) * 100) + ((nbreboucle - ((nbreboucle \ 100) * 100)) \ 10) * 10)
If mille ^ 3 + centaine ^ 3 + dizaine ^ 3 + unite ^ 3 = nbreboucle Then
Liste.AddItem (nbreboucle) 'condition vérifié on ajoute le nombre dans la liste
End If
nbreboucle = nbreboucle + 1 'on incrémente nbreboucle de 1
Loop
End Sub
Conclusion :
JE CONSEILLE FORTEMENT DE TELECHARGER LE ZIP PLUTOT QUE DE COPIER/COLLER LA SOURCE
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.