NOMBRE D'ARMSTRONG VB6 (SOURCE POUR DÉBUTANT)

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 - 11 janv. 2007 à 13:48
newbieflag Messages postés 8 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 23 novembre 2007 - 18 juin 2007 à 13:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41060-nombre-d-armstrong-vb6-source-pour-debutant

newbieflag Messages postés 8 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 23 novembre 2007
18 juin 2007 à 13:44
Vous devez vraiment avoir rien à faire dans votre stage pour avoir le temps de poster sur ma source des conneries XD...allez vous laisse y'en a qui ont du taf...
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009
18 juin 2007 à 11:50
merci boudh!!!
wini1 Messages postés 3 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 18 juin 2007
18 juin 2007 à 11:34
mdr enfet j'suis certain k'yen a qui savent toujours pas s'que c'est un form lol (vu le nombre de cours de VB qu'ils ont eu lol) je pense à une personne qui n'était pas souvent présente en VB lol d'ailleurs merci boudh lol !!!
wini1 Messages postés 3 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 18 juin 2007
18 juin 2007 à 11:32
wowowowo la truite pas de vulgarité sinon je bloque ton compte sur l'activ directory mdr !!!!
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009
12 juin 2007 à 09:39
tg noob
Les forms on les a vu au premier cour et c'etait avant le mois de janvier.
De plus, j'avais déjà fait un peu de delphi avant de venir donc je savais ce que c'était.
;+)
newbieflag Messages postés 8 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 23 novembre 2007
11 juin 2007 à 16:35
Max3359 a dit: Des gens de la classe qui ne savent pas ce qu'est un form...

Tu connaissais peut-être VB à la base avant qu'on l'étudie mais beaucoup dans la classe ne connaissais rien à la prog et aux langages, c'était le début...je te rappelle que cet source remonte au deuxième cours de VB... c'est niveau très débutant...comme Marcel ptdr pas hooligan...lui c'est néophyte...
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009
11 juin 2007 à 16:03
Le hooligan surement ^^
Max3359 Messages postés 2 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 7 octobre 2007
8 juin 2007 à 11:17
Des gens de la classe qui ne savent pas ce qu'est un form...
newbieflag Messages postés 8 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 23 novembre 2007
12 janv. 2007 à 16:28
Merci Drissou, à vrai dire je ne connaissais pas la fonction mid mais c'est vrai qu'elle peut être pratique et peut simplifier les choses dans mon exemple voici comment se construit le mid pour ceux qui ne connaissent pas: 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. Je vais mettre à jour...

Violent_ken, merci pour ces précisions au sujet des déclarations de variables dans mon exemple, vu la taille du programme, l'utilisation de la mémoire n'est pas très importante mais tu as raison sur des codes longs, cela peut être très utile, je vais modifier ma source.
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
12 janv. 2007 à 13:27
Salut,
"- au sujet de la déclaration des variables, tu as peut-être raison, par simplicité, on peut je pense rajouter une virgule derrière la variable unite mais, je touche du bois, tous les programmes que j'ai fait ont toujours fonctionné avec la déclaration de variable tel quel..."

> c'est juste que si tu ne mets le "As TypeVariable" que sur la dernière variable, seule celle ci sera définie dans ce type de variable.

En delphi, tu fais Var i,j : Integer; et tu déclares les deux variables en Integer. En VB, Dim i,j As Integer ne déclare que le j en integer et le i reste en variant.

Donc certes, la suite du programme marchera sans problème, mais le type variant est gourmand en mémoire et est surtout très lent à manipuler.


@+
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
12 janv. 2007 à 10:25
A modifier un peut en transformant Nombre en chaine..
cs_drissou Messages postés 160 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 14 janvier 2009
12 janv. 2007 à 10:24
Salut NEWBIEFLAG

ne serait-il pas possible pour éviter tes variables millier , centaine, ..d'utiliser la fonction mid$() pour ton nombre

du style( à vérifier) :

Dim Somme as long
Dim I as long

function estArmstrong(Nombre as long) as boolean
somme=0
for i = 1 to len(nombre)

somme = somme + clng(misd$(nombre,i,1))^3

next

estArmstrong = (somme=nombre)
end function
newbieflag Messages postés 8 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 23 novembre 2007
11 janv. 2007 à 19:18
Merci d'avoir accordé du temps à mon programme, les nombres d'Armstrong à vrai dire doivent servir à quelque chose mais je ne pourrai pas te dire quoi...je n'en sais pas plus, M.Armstrong a peut-être trouvé ça en se levant un beau matin pour le fun???
Au sujet des remarques:
- indenter le code -> c'est vrai très important pour la lisibilité, désolé j'ai oublié ayant l'habitude de l'indentation automatique de VB2005 je règle ça dès que j'ai un moment...
- au sujet de la déclaration des variables, tu as peut-être raison, par simplicité, on peut je pense rajouter une virgule derrière la variable unite mais, je touche du bois, tous les programmes que j'ai fait ont toujours fonctionné avec la déclaration de variable tel quel...
- division d'un string, ok ça rejoint ce que tu expliqué au dessus
- l'idée d'une fonction est interesante mais je tiens à signaler que j'ai fait cette source pour des débutants (dans ma classe plus précisement) qui connaissent à peine ce qu'est un form...
- enfin la msgbox ton explication est tout à fait appréciable mais je rejoins la ligne du dessus au sujet de la destination de la source
Voilà @+
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
11 janv. 2007 à 13:48
Salut, le code est court donc je fait faire des remarques précises :


-pense à indenter ton code

-"Dim mille, centaine, dizaine, unite As Integer" ==> ceci déclare toutes les variables sauf la dernière en Variant. Donc il faut écrire
Dim mille As Integer, centaine As Integer, dizaine As Integer, unite As Integer
pour déclarer toutes les variables en Integer

-la ligne "mille = nbre.Text \ 1000" marche à cause du Variant (voir remarque précédente), mais c'est pas génial (division d'une string)
Il faut convertir la string en nombre avec Val()

-tout le code est dans un Command2_Click() ==> c'est mieux de créer une fonction qui prend en entrée le nombre et qui renvoie le résultat.
Exemple de prototype :
Public Function IsArmstrongNumber(byval Nombre as integer) as boolean

-pour finir, une précision très générale sur les fonctions en VB (dans ton cas le MsgBox).
Soit la fonction "Public Function MaFonc(MaVar as integer) as long"
Elle renvoie un long, donc on peut faire :
retour=MaFonc(5)
Mais si le retour n'est pas utile (exemple, dans ton cas la valeur donnée par la msgbox n'est pas réutilisée), ceci suffit :
MaFonc 5
> pas de parenthèses ==> pas de variable retour


-question pour ma culture générale : quelle peut être l'application mathématique des nombres de ArmStrong (que je découvre avec ta source) ?

@+
Rejoignez-nous