Bonsoir,
je dois faire un programme afin de calculer des intégrales (grâce à la méthode des trapèzes). Je programme sur microsoft visual basic 6.0.
Est ce que les fonctions mathématiques sont déja déclarées? Ou faut il le faire?
D'avance merci
Bonsoir,
je dois faire un programme afin de calculer des intégrales (grâce à la méthode des trapèzes). Je programme sur microsoft visual basic 6.0.
Est ce que les fonctions mathématiques sont déja déclarées? Ou faut il le faire?
D'avance merci
Salut;
VB6 reconnait les fonctions mathématiques de base (Cos,Sin, tan, Exp, Abs...) mais pas les intégrales sauf si on trouve une DLL, OCX ou TLB qui les gère.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
justement, le but est de faire un programme calculant l'intégrale.
donc le principal, c'est que VB connaisse les fonctions mathématiques!
Merci à vous!
Bonjour,
Je viens d'essayer de programmer le programme que mon prof a réalisé (en français). Je dois donc calculer les intégrales de fonctions qui varient en fonction de celles recherchées. Donc comment programmer cela?
J'ai appelé ma caption f(x) afin de rentrer la fonction. Lorsque je lance le programme, après avoir rentré les valeurs voulues (bornes de l'intégrale, pas des trapèzes, et la fonction à calculer), on me dit "erreur de compilation, constante requise" et me surligne le "x" de "f(x)".
Quel est le souci?
d'avance merci
caption, c'est quoi pour toi ?
"f(x)", ceci est écrit dans le code ?, il serait mieux de nous faire un copier/coller de cette partie de code, car vue comme cela c'est un littéral, alors que tu veux faire des calculs, mais comme tu as signalé l'erreur à ce niveau, cela n'est sûrement pas strictement la syntaxe de ton code.
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
et excusez moi, ce n'est pas une caption, c'est le nom du label
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 'déclaration des variables Dim a As Integer Dim b As Integer Dim h As Integer Dim x As Integer Dim f(x) As Integer Dim I As Integer Dim n As Integer Dim s As Integer 'affectation des variables If (IsNumeric(txt_a) = True And IsNumeric(txt_b) = True And IsNumeric(txt_h) = True) And IsNumeric(txt_f(x)) Then a = Val(frm_trapeze.txt_a) b = Val(frm_trapeze.txt_b) c = Val(frm_trapeze.txt_h) f(x) = Val(frm_trapeze.txt_f(x)) 'traitement des données If (n <> 0) Then h = (b - a) / n s = f(a) + f(b) For I = 1 To n - 1 s = s + 2 * f(a + I * h) Next s = (s + h) / 2 frm_trapeze.txt_s = s Else frm_trapeze.txt_s = "n doit être différent de 0" End If End End Sub
la ligne d'erreur est donc icix, à ce stade est Null et tu tentes de dimensionner ton tableau avec.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim f(x) As Integer
Pour declarer un tableau:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Option Explicit Const x = 10 Dim f(x) As Integer ' OU bien Dim x As Integer Dim f() As Integer ' OU bien Dim f(10) As Integer 'par la suite dans le cour du programme x = 10 ReDim f(x) 'ou ReDim Preserve f(x)
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
On est au moin 2
Si on nome un Label Caption en design, il est accepté, par contre si on codeau run, erreur de compilation: qualificateur incorrect.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'le label est nommé Caption Caption.Caption = "10"
Je crois qu'il nous faudra attendre plus de précision de yashin16
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
en fait, une fonction mathématiques se notent généralement f(x).
Etant novice dans la programmation, peut être que babaothe (certainement expert en prog) se méprend avec une écriture de programmation?
Donc, je vais essayer de résumer le plus clairement possible. J'ai pour objectif de créer un programme calculant l'intégrale d'une fonction mathématiques (que j'ai appelé f(x) ) par la méthode des trapèzes. En fait, on va décomposer l'aire entre la courbe et l'axe des abscisses en une multitude de trapèzes (le pas h fixant alors le nombre de trapèzes dans l'intervalle de calcul de l'integrale). Cet intervalle est donc compris entre deux valeurs sur l'axe des abscisses, à savoir "a" et "b".
Ainsi, la fonction mathématique change en permanence, donc il est impossible de la programmer par un module. On la rentre donc dans une textbox où le label associé s'appelle "f(x)".
La valeur prise par x oscille entre "a" et "b", valeur que l'on rentre dans 2 textbox associé aux labels "a" et "b". Donc je ne comprends pas comment aller piocher ces valeurs dans un tableau.... Le tableau va restreindre les valeurs que va prendre x non?
si je vous embrouille, dites le moi, que je m'explique autrement
Cà, pour m'embrouiller, c'est déjà fait !
Et ce que j'ai mis en gras souligné est étonnant !
Je crois que tu devrais avoir un label nommé comme tu l'entends (toto si tu veux) (avec pour caption, si tu le souhaites "f(" & x & ")" . x étant = a ou = b, selon ton cas.
et un autre label nommé "resultat" et dont le caption devrait être la valeur d'une fonction du genre
et ainsi écrire .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private function calcul(nb as ....) as ... ....... 'tes calculs calcul = ...... end function
resultat.caption = calcul(a)
pour faire figurer le résultat de tes calculs dans le caption du label resultat.
EDIT :*
Un petit exemple de mécanisme avec une fonction. C'est un exemple, hein... à toi de faire tes propres calculs etc...
Sur ton form : 1 bouton de commande Command1 et un label Label1
A tyoi de jouer, maintenant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Command1_Click() Label1.Caption = calcul(14) End Sub Private Function calcul(nb As Integer) As Long calcul = nb * 311 End Function
Bonjour,
Donc à mon avis ,tu ne dois pas faire
mais faire une procédure Fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim f(quelque chose)
Et voir dans la MSDN au mot:
Function, instruction
ou tu auras tous les renseignements...
A+
Même idée que toi Baba
et où et à quel moment rentre on la fonction à calculer?
où tu le souhaites !
(nb dans une textbox, par exemple) !
Je te laisse maintenant t'y mettre (je suis fatigué)
ok je vous remercie bien!! bonne soirée
Bonjour
Il me semble qu'il y a une erreur dans ta formule de calcul.
Quand tu écris S = (S+ h)/2, il y a déjà une incompatibilité entre S(surface en mètres carrés) et h(longueur en mètres).
D'autre part, tu dois avant tout définir ta fonction f(x) pour la référencer dans ton calcul. Par exemple :Par la suite, tu traites le problème en utilisant la fonction déjà déclarée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Function f(x As single) as Variant if x <> 0 then f = 1/x End Function
Vérifie encore si tu n'as pas utilisé une formule incorrecte.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager