Les fonctions

Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009 - 14 juin 2004 à 18:22
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009 - 16 juin 2004 à 19:24
Salu, le fou debutant est encor là, QQ pourrait peut etre m'expliquer qu'est-ce-qu'une fonction, et commen on les utilise?????

Mesrci d'avance :)

30 réponses

plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
14 juin 2004 à 18:41
Une fonction est un sous-programme qui te renvoie une valeur.

exemple :

Private Sub Command1_Click()
Text1.Text = somme(Text2.Text, Text3.Text)
End Sub

Private Function somme(a As Integer, b As Integer) As Integer
somme = a + b
End Function
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 18:45
Merci ^^
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:08
en fait, pour être plus complet, une fonction retourne dequoi et pas une méthode

La fonction
public function test(valeur as integer) as boolean
test = true
end function

La méthode
public sub test(valeur as integer)
msgbox "ok"
end sub

par contre, on peut démarrer un programme dans une sub, si cette sub est dasn un module, et non dans une fonction, très pratiqeu pour déboguer
public sub test()
call ma_fonction(valeur1, valeur2, ....)
end sub
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:12
heu..... tout de suite, je pige plus trop là.......
:question) :question) :question) :question)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:15
tiens un coup parti, pour complexer un peu plus, tu as aussi byval et byref

ByVal envoi la valeur de la variable, ce qui veut dire que la variable est envoyé et c'est tout. Comme dans cet exemple, on va recevoir 2 msgbox qui vont écrire 2 et 1
public sub test()
dim i as integer
i = 1
call test2(i)
msgbox i
end sub

public sub test(byval i as integer)
i = i + 1
msgbox i
end sub


ByRef envoi la référencede la variable, ce qui veut dire que l'addresse de la varaible sera envoyer. Comme dans cet exemple, on va recevoir 2 msgbox qui vont écrire 2 et 2
public sub test()
dim i as integer
i = 1
call test2(i)
msgbox i
end sub

public sub test(byref i as integer)
i = i + 1
msgbox i
end sub


Attention tout les tableau sont envoyer par référence. Ben c,est pas totu a fait vrai, un tableau est un ensemble de variable lier entre eux par référence. Donc si on change une valeur d'un tableau, le tableau sera changer partout, masi si on remplace le tableau par un autre dans une méthode ou une fonction, seulement dasn cette méthode il y aura un changement
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:17
lol, tu as function et Sub

les 2 sont très semblable, sauf seulemetn sub permet de démarrer dessus et seulemetn function peut retournée une variable

aucun est mieux que l'autre, dépend de ce qeu tu fais, mais il est préférable, si tu retourne pas de variable d'utiliser un sub
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:18
Commen est ce que j'appele un sub ??
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:19
ah ouin, j'ai oublier dequoi de très miportant, si tu met pas byval ou byref, c'est byval par défaut
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:20
public sub test()
....
end sub
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:20
en fait, g pas trop pigé ce que sont byval ou byref
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:21
et quel est la difference entre public sub et Private sub ?
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:22
tiens lol, je vasi finir par faire un tutorial lol

public et private

public peut être accesssible de partout de ton projet et même des autre form

private, seulement là où tu l'as déclarer il sera accessible

si tu l,as créé dans une form, seuleemnt ta form y aura accès

pour une bonne programmation, tut doit-être déclarer private, sauf ce que tu utilises ailleur dans ton programme
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:25
ok. dans ton code tu a ecrir

call test2(i)


sa correspond a koi??
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:33
la propriété call permet d,appeller une autre fonction ou une autre méthode

tiens, je vasi te donner un exemple venant de mes programme

Public Function Minutes100enMinutes60(minutes As Integer) As String
    Minutes100enMinutes60 = Format((Int(minutes * 60)) / 100, "00")
End Function


Donc si tu fais, tu vas recevoir 25

public sub test
msgbox Minutes100enMinutes60(15)
end sub


pour le call tu peux faire dequoi du genre

public sub test
dim i as integer
for i = 0 to 10
if i = 8 then
call trouver(i)
end if
next i
end sub

public sub trouver(i as integer)
msgbox i
end sub
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:40
mais que signifie le (i) apré trouver ?
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:41
tiens si tu as nu peu d,argetn de côté, je te conseil très fortement de t,acheter un livre sur le VB6.0 ou VB.Net si tu as vramient le gout d'apprendre un vrai language, mais beaucoup plus complexe pour débuter, à comparer VB6.0

malgré que Vb6.0 permet de faire vramient des chose extraordinaire, sauf que dans le futur VB.Net va finir par faire disparaitre Vb6.0 des compagnies

pour Vb6.0, je te sugère comme livre français
Visual Basic 6.0 par Diane Zak de l'éditeur Goulet

pour vb.Net, je te sugère comme livre anglais par contre
programming microsoft visual basic.net par francesco Balena de l'éditeur Wintellect
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:42
le i est une varaible déclarer un peut plus haut.

dim i as integer
0
Rati_12 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 19 août 2009
14 juin 2004 à 21:45
ok, mais pourquois le met on aprés le call trouver ?
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 21:50
parce que je veux l'envoyer comme variable à la méthode trouver

la méthode que j'ai fait en algo ça donne ceci

Méthode test qui est public
déclarer i qui sera un entier
pour i qui sera égal à 0 jusqu'à i égal à 10
si i est égal à 8 alors
appeller la méthode trouver et lui envoyer i
fin si
i suivant pour le pour
fin de la méthode

méthode trouver qui reçoi i qui sera un entier
afficher i
fin de la méthode trouver
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
14 juin 2004 à 22:06
POUR DRAGON !! Plutot que d'essayer de l'embrouiller pour rien avec les Byref et les ByVal alors qu'il demandait juste la différence entre une sub et une function, essaye donc de ne pas mettre de bêtise dans tes messages ! SI ni byref ni byval ne sont préciser lors du passage d'un paramètre, c'est un passage par référence qui est fait, et non par valeur !!
C'est bien jolie d'étaler tes connaissances, mais va vérifier avant de dire des choses. Surtout que la pour le coup c'est a lui faire s'arracher les cheveux s'il essaye de mettre en pratique cela !! Y va rien comprendre le pauvre !

Christophe R.
0
Rejoignez-nous