Calculatrice

champagnes Messages postés 3 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007 - 18 oct. 2007 à 01:48
macken3333 Messages postés 3 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 23 août 2010 - 23 août 2010 à 07:00
Bonjour,

J'aimerais faire une calculatrice bien simple avec les opération de base(addition, soustraction,division et multiplication) en VB.net.
Je ne sais pas comment faire, j'ai fait un textbox appeller resultat pour effectuer les calcul et voir la réponse, supposons j'entre 2+2 et ensuite appui sur programmer avec des variable(v_1 pour le bouton 1, ainsi de suite) rien ne se passe dans le textbox, il m'apparais mais sans réponse, ou encore pour 2+2 je ne me souviens plus comment j'ai fait mais il est apparu 22!

Comment faire merci!

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 oct. 2007 à 08:36
faudrait voir ton code
0
cs_Gammacronosios Messages postés 49 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 23 février 2010
18 oct. 2007 à 10:34
Il me semble avoir deja vu un sujet comme celui-ci...

Ton programme est en fait assez complexe, il faudrait decomposer toute ton equation en plusieurs mini-equation d'un seul opérateur...
ex:
(2*(5+6))/4
-> A = (5+6)
-> B = 2*A
-> C = B/4
... voila mais bon... bon courage ^^.

Sinon, il existe un composant COM appelé "Microsoft Scipt Control 1.0"


Tu edites une fonction qui renvoi le resultat de ton équation.
Je peux t'ecrire un exemple si tu le souhaite.

A bientot.



C'est un art la programmation, non
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 oct. 2007 à 11:42
Bonjour,http://www.vbfrance.com/infomsg_INTERPRETEUR-CODE_1023218.aspx#2

Toutefois : A moins que ta calculatrice ne se limite à des opérations simples, Eval ne me semble pas vraiment indiqué.
0
champagnes Messages postés 3 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007
18 oct. 2007 à 14:23
Bonjour,

voici de quoi a l'air ma calculatrice:
 

Et voici le code:


Public
Class Calculatrice



Private



Sub
Calculatrice_Load(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles



MyBase
.Load



 



End



Sub








Private



Sub
Button1_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
bo_1.Clickresultat.Text = resultat.Text &


"1"

v_1 = 1







End



Sub






Private



Sub
Button2_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button2.Clickresultat.Text = resultat.Text &


"2"

v_2 = 2







End



Sub






Private



Sub
Button9_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button9.Clickresultat.Text = resultat.Text &


"3"

v_3 = 3







End



Sub






Private



Sub
Button4_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button4.Clickresultat.Text = resultat.Text &


"4"

v_4 = 4







End



Sub






Private



Sub
Button3_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button3.Clickresultat.Text = resultat.Text &


"5"

v_5 = 5







End



Sub






Private



Sub
Button8_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button8.Clickresultat.Text = resultat.Text &


"6"

v_6 = 6







End



Sub






Private



Sub
Button6_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button6.Clickresultat.Text = resultat.Text &


"7"

v_7 = 7







End



Sub






Private



Sub
Button5_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button5.Clickresultat.Text = resultat.Text &


"8"

v_8 = 8







End



Sub






Private



Sub
Button7_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button7.Clickresultat.Text = resultat.Text &


"8"

v_9 = 9







End



Sub






Private



Sub
Button14_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button14.Clickv_resultat = v_1 + v_2 + v_3 + v_4 + v_5 + v_6 + v_7 + v_8 + v_9 + v_0

resultat.Text =


"="
& v_resultat 


End



Sub






Private



Sub
Button12_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button12.Clickresultat.Text = resultat.Text &


"+" 








End



Sub






Private



Sub
Button11_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button11.Clickresultat.Text = resultat.Text &


"-" 








End



Sub






Private



Sub
Button10_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button10.Clickresultat.Text = resultat.Text &


"*"






End



Sub






Private



Sub
Button13_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button13.Clickresultat.Text = resultat.Text &


"/"






End



Sub






Private



Sub
Button15_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button15.Click
(bouton pour effacer l'affichage, pas encore programmer)


End



SubEnd





Class

Merci!
0

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

Posez votre question
Profil bloqué
18 oct. 2007 à 23:50
Bonjour
Si le derssin de la calculatrice est très bien réussi le code l'est beaucoup moins
Reprenons le fonctionnement d'une calculatrice
1) On l'allume et le résultat est 0
2) On tape un nombre composé de plusieurs chiffres
3) On tape un opérateur + - * /   : à cet instant il faut sauvegarder le premier nombre et sauvegarder l'opération à faire
4) On tape un second nombre composé de plusieurs chiffres
5) On tape un opérateur + - * /  ou le signe =     à cet instant il faut sauvegarder le second nombre ,faire l'opération enre ces 2 nombres et sauvegarder le résultat
6)  Si on a tapé = on affiche le résultat et si on a tapé un opérateur  il faut sauvegarder le résultat intermédiaire et le nouvel opérateur et on retourne au point 4)

La Textbox ne fait qu'afficher le résultat ou la frappe des touches mais NE FAIT AUCUN CALCUL : il faut que tous les calculs et sauvegardes se fassent par programmation
Bon courage

 

GRENIER Alain
0
champagnes Messages postés 3 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007
19 oct. 2007 à 01:31
Bonjour,

Vous pourriez pas me donner un code s'il vous plait? Je comprend ton explication, Galain, et je vais faire ce que je peu pour le suivre, mais vous pourriez pas me donner le code s.v.p?

Merci!
0
Profil bloqué
19 oct. 2007 à 07:36
bonjour Champagnes
Je ne te donnerais pas le code pour 2 raisons
 - Ce n'est pas le but du site et des calculatrices il y en a pas mal qui ont été programmées dans les sources
- Je programme en VB 6.0 et non en VB Net

Suis le raisonnement que je t'ai donné et l'aide de VB net et tu devrais y arriver
Bon courage

GRENIER Alain
0
macken3333 Messages postés 3 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 23 août 2010
23 août 2010 à 07:00
voici le code permttant de faire une calculatrice simple:
Imports System
Imports System.windows.forms
Imports System.Drawing

Class calculatrice
Inherits form

Dim txtAffichage As textBox

Private WithEvents btn0 As button
Private WithEvents btn1 As button
Private WithEvents btn2 As button
Private WithEvents btn3 As button
Private WithEvents btn4 As button
Private WithEvents btn5 As button
Private WithEvents btn6 As button
Private WithEvents btn7 As button
Private WithEvents btn8 As button
Private WithEvents btn9 As button
Private WithEvents btnPluMoin As button
Private WithEvents btnPoint As button

Private WithEvents btnDiv As Button
Private WithEvents btnPlus As Button
Private WithEvents btnMult As Button
Private WithEvents btnMoins As Button
Private WithEvents btnClear As Button
Private WithEvents btnBks As Button
Private WithEvents btnSlash As Button
Private WithEvents btnEgal As Button

Sub New()
MyBase.new()
txtAffichage = New textBox()
txtAffichage.location = New Point(10, 10)
txtAffichage.width = 266
txtAffichage.text = "0."
txtAffichage.textAlign = 1

btn0 New button() : btn0.location New Point(10, 140)
btn1 New button() : btn1.location New Point(10, 110)
btn2 New button() : btn2.location New Point(65, 110)
btn3 New button() : btn3.location New Point(120, 110)
btn4 New button() : btn4.location New Point(10, 80)
btn5 New button() : btn5.location New Point(65, 80)
btn6 New button() : btn6.location New Point(120, 80)
btn7 New button() : btn7.location New Point(10, 50)
btn8 New button() : btn8.location New Point(65, 50)
btn9 New button() : btn9.location New Point(120, 50)
btnPluMoin New button() : btnpluMoin.location New Point(65, 140)
btnpoint New button() : btnPoint.location New Point(120, 140)

btndiv New button() : btndiv.location New point(170, 50)
btnMult New button() : btnMult.location New point(170, 80)
btnPlus New button() : btnPlus.location New point(170, 140)
btnMoins New button() : btnMoins.location New point(170, 110)
btnClear New button() : btnClear.location New point(230, 50)
btnBks New button() : btnBks.location New point(230, 80)
btnSlash New button() : btnSlash.location New point(230, 110)
btnEgal New button() : btnEgal.location New point(230, 140)

btn0.text "0" : btn0.width 45 : btn0.forecolor = color.MidnightBlue
btn1.text "1" : btn1.width 45 : btn1.forecolor = color.MidnightBlue
btn2.text "2" : btn2.width 45 : btn2.forecolor = color.MidnightBlue
btn3.text "3" : btn3.width 45 : btn3.forecolor = color.MidnightBlue
btn4.text "4" : btn4.width 45 : btn4.forecolor = color.MidnightBlue
btn5.text "5" : btn5.width 45 : btn5.forecolor = color.MidnightBlue
btn6.text "6" : btn6.width 45 : btn6.forecolor = color.MidnightBlue
btn7.text "7" : btn7.width 45 : btn7.forecolor = color.MidnightBlue
btn8.text "8" : btn8.width 45 : btn8.forecolor = color.MidnightBlue
btn9.text "9" : btn9.width 45 : btn9.forecolor = color.MidnightBlue
btnPluMoin.text "+/-" : btnPluMoin.width 45 : btnPluMoin.forecolor = color.MidnightBlue
btnpoint.text "." : btnPoint.width 45 : btnpoint.forecolor = color.MidnightBlue

btndiv.text "/" : btnDiv.width 45 : btnDiv.forecolor = color.red
btnMult.text "*" : btnMult.width 45 : btnMult.forecolor = color.red
btnMoins.text "-" : btnMoins.width 45 : btnMoins.forecolor = color.red
btnplus.text "+" : btnPlus.width 45 : btnPlus.forecolor = color.red
btnClear.text "C" : btnClear.width 45 : btnClear.forecolor = color.red
btnbks.text "BKS" : btnBks.width 45 : btnBks.forecolor = color.red
btnSlash.text "1/x" : btnSlash.width 45 : btnSlash.forecolor = color.red
btnEgal.text = "=" : btnEgal.width = 45 : btnEgal.forecolor = color.red

Dim Wed As controlcollection
Wed = Controls

Wed.add(txtAffichage)
Wed.add(btn0)
Wed.add(btnPluMoin)
Wed.add(btnPoint)
Wed.add(btn1)
Wed.add(btn2)
Wed.add(btn3)
Wed.add(btn4)
Wed.add(btn5)
Wed.add(btn6)
Wed.add(btn7)
Wed.add(btn8)
Wed.add(btn9)

Wed.add(btnDiv)
Wed.add(btnMult)
Wed.add(btnMoins)
Wed.add(btnPlus)
Wed.add(btnClear)
Wed.add(btnBks)
Wed.add(btnSlash)
Wed.add(btnEgal)

Me.text = "calculatrice"
Me.setBounds(25, 25, 290, 210)
Me.StartPosition = formStartPosition.centerScreen
Me.FormBorderStyle = 3
Me.backcolor = color.white 'powderBlue
'me.icon= new icon("f:\\INFO.ico")
Me.MaximizeBox = False

End Sub

Dim PreOp, Op, chaine As String
Dim PremVal As Boolean
Dim Valeur1, Valeur2 As Double


Sub Recuperer(ByVal x As String)
Dim v, w As Integer
v =InStr("0 1 2 3 4 5 6 7 8 9 .", x)

Select Case v
Case Is > 0
If (x ".") And (chaine "") Then
chaine = "0"
txtAffichage.text = "0."
chaine = chaine + x
Else
chaine = chaine + x
End If
txtAffichage.text = chaine + " "

Case Else
PreOp = Op
Op = x
w InStr("+ - * / ", Op)
If (w > 0) Then
If (PremVal = True) Then
Valeur2 = Val(chaine)
Select Case PreOp
Case "+"
Valeur1 = Valeur1 + Valeur2

Case "-"
Valeur1 = Valeur1 - Valeur2

Case "*"
Valeur1 = Valeur1 * Valeur2

Case "="
If (chaine <> "") Then
Valeur1 = Val(chaine)
Valeur2 = 0
End If

Case "/"
Valeur1 = Valeur1 / Valeur2
Case Else

End Select
txtAffichage.text = Valeur1.ToString + " "
chaine = ""

Else
Valeur1 = Val(chaine)
txtAffichage.text = Valeur1.ToString + " "
PremVal = True
chaine = ""

End If
End If
End Select

End Sub

Private Sub btn7_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn7.click
Recuperer(btn7.text)
End Sub

Private Sub btn8_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn8.click
Recuperer(btn8.text)
End Sub

Private Sub btn9_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn9.click
Recuperer(btn9.text)
End Sub

Private Sub btnDiv_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDiv.click
Recuperer(btnDiv.text)
End Sub

Private Sub btnClear_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnClear.click
txtAffichage.text = "0."
chaine = ""
premval = False
valeur1 = 0 'fek ajouter
End Sub

Private Sub btn4_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn4.click
Recuperer(btn4.text)
End Sub

Private Sub btn5_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn5.click
Recuperer(btn5.text)
End Sub

Private Sub btn6_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn6.click
Recuperer(btn6.text)
End Sub

Private Sub btnMult_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnMult.click
Recuperer(btnMult.text)
End Sub

Private Sub btnBks_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnBks.click
'len(chaine)-1
If (chaine <> "") Then

chaine = Microsoft.visualbasic.Left(chaine, Microsoft.VisualBasic.len(chaine) - 1)
txtAffichage.text = chaine + " "
If (len(chaine) = 0) Then
txtAffichage.text = "0."
End If

End If
'Recuperer(btnBks.text)
End Sub

Private Sub btn1_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn1.click
Recuperer(btn1.text)
End Sub

Private Sub btn2_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn2.click
Recuperer(btn2.text)
End Sub

Private Sub btn3_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn3.click
Recuperer(btn3.text)
End Sub

Private Sub btnMoins_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnMoins.click
Recuperer(btnMoins.text)
End Sub

Private Sub btnSlash_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSlash.click
If (chaine <> "") Then
chaine = 1 / val(chaine)
txtAffichage.text = chaine
End If

If (val(txtAffichage.text) = 0) Then
txtAffichage.text = "Cannot divide by zero"
End If

If (chaine = "") And (Valeur1 <> 0) Then 'else
chaine = 1 / valeur1
txtAffichage.text = chaine
End If
'chaine=""
'txtAffichage.text=1/val(txtAffichage.text)
'chaine=txtAffichage.text
End Sub

Private Sub btn0_click(ByVal sender As Object, ByVal e As EventArgs) Handles btn0.click
If (txtAffichage.text "0.") Or (chaine "") Then
txtAffichage.text = "0."
Else
Recuperer(btn0.text)
End If
End Sub

Private Sub btnPluMoin_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPluMoin.click
If (val(txtAffichage.text) > 0) Then
'chaine="-"+chaine
txtAffichage.text = "-" + txtAffichage.text
chaine = txtAffichage.text 'chaine
End If

End Sub

Private Sub btnPoint_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnpoint.click
Recuperer(btnPoint.text)
End Sub

Private Sub btnplus_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPlus.click
Recuperer(btnPlus.text)
End Sub

Private Sub btnEgal_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnEgal.click
Recuperer(btnEgal.text)
End Sub

End Class

Module ModMain
Sub main()
Dim John As New Calculatrice()
Application.run(John)
End Sub
End Module

tu dois compiler et executer en mode console ave le command prompt sur visual studio ou avec le ide du framework
avec: vbc ModMain.vb pour compiler
ModMain pour executer
0
Rejoignez-nous