champagnes
Messages postés3Date d'inscriptionvendredi 13 octobre 2006StatutMembreDernière intervention19 octobre 2007
-
18 oct. 2007 à 01:48
macken3333
Messages postés3Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention23 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!
cs_Gammacronosios
Messages postés49Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention23 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.
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
champagnes
Messages postés3Date d'inscriptionvendredi 13 octobre 2006StatutMembreDernière intervention19 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?
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
macken3333
Messages postés3Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention23 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)
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
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