>> Technologie Électronique >  >> Maison intelligente >> Vie connectée

Comment créer une calculatrice avec Visual Basic

Microsoft Visual Basic est un langage de programmation basé sur le BASIC, conçu pour faciliter l'apprentissage. Visual Basic reprend les commandes familières du BASIC et y ajoute des outils orientés objet et des interfaces pour concevoir des applications Windows WYSIWYG et des contrôles web. Un projet d'apprentissage relativement simple est la création d'une calculatrice Windows.

Étape 1

Ouvrez Visual Basic 6 et sélectionnez « EXE standard » dans le menu Nouveau projet. Un formulaire vide apparaît.

Étape 2

Renommez votre projet et votre formulaire en cliquant sur « Projet1 » à droite, dans la liste des projets, et en entrant un nouveau nom dans la ligne « Name » de la boîte Propriétés. Validez par Entrée. Faites de même pour le formulaire (nom suggéré : « CalculatriceUI »), en entrant un nom similaire dans la propriété « Caption », ce qui changera le texte de la barre de titre. Enregistrez le projet dans un nouveau dossier.

Étape 3

Ajoutez des boutons et une zone de texte au formulaire. D'abord, une zone de texte pour afficher les nombres saisis et les résultats. Sélectionnez le bouton TextBox dans la barre d'outils gauche, puis dessinez la taille et l'emplacement souhaités. Modifiez les propriétés suivantes (TextBox sélectionné) : « (Name) » = tbResult, « Alignment » = 1 - Aligner à droite, « Data Format » = (cliquez « ... ») Number, « Locked » = True, « Text » = 0.

Étape 4

Sélectionnez l'icône CommandButton et créez le premier bouton comme la TextBox. Utilisez la calculatrice Windows en vue Standard (Programmes > Accessoires > Calculatrice) comme référence pour la disposition, en omettant les boutons « MC », « MR », « MS », « M+ ». Sur chaque bouton, modifiez les propriétés (exemple bouton « + ») : « (Name) » = btnPlus, « Caption » = +. Faites de même pour tous les boutons et sauvegardez.

Étape 5

Ajoutez le code. Si vos boutons et zone de texte n'ont pas les mêmes noms que le code, adaptez-les. Créez d'abord des variables pour traiter les saisies :

Dim sLeft As String, sRight As String, sOperator As String
Dim iLeft As Double, iRight As Double, iResult As Double
Dim bLeft As Boolean

Chaque calcul a quatre parties : nombre gauche (sLeft, iLeft), opérateur (sOperator), nombre droit (sRight, iRight), résultat (iResult). Pour savoir si l'utilisateur saisit le nombre gauche ou droit, créez bLeft. Si bLeft est vrai, on saisit le côté gauche ; si faux, le côté droit.

Étape 6

Initialisez bLeft en créant une sous-routine Form_Load (double-cliquez sur une zone vide du formulaire). À l'intérieur, définissez bLeft à True car le premier nombre saisi sera la partie gauche :

Private Sub Form_Load()
bLeft = True
End Sub

Étape 7

Créez une sous-routine gérant le clic sur n'importe quel bouton numérique. Code identique pour chaque bouton, évitant la répétition. Entrez ci-dessous le End Sub de Form_Load :

Private Sub AddNumber(sNumber As String)
If bLeft Then
sLeft = sLeft + sNumber
tbResult.Text = sLeft
Else
sRight = sRight + sNumber
tbResult.Text = sRight
End If
End Sub

Cette fonction prend un paramètre chaîne sNumber (le chiffre cliqué). Si bLeft est vrai, ce chiffre est ajouté à sLeft et tbResult mis à jour. Si faux, même opération avec sRight.

Créez un événement Click pour chaque chiffre appelant AddNumber. Double-cliquez chaque bouton chiffre pour créer la structure, puis ajoutez l'appel. Pour le bouton 0 :

Private Sub btn0_Click()
AddNumber ("0")
End Sub

Pour le bouton 1 :

Private Sub btn1_Click()
AddNumber ("1")
End Sub

Étape 8

Gérez les opérateurs : plus, moins, fois, divise. Créez une sous-routine appelée dans les événements Click des boutons opérateurs :

Private Sub AddOperator(sNewOperator As String)
If bLeft Then
sOperator = sNewOperator
bLeft = False
Else
btnEquals_Click
sOperator = sNewOperator
sRight = ""
bLeft = False
End If
End Sub

Si bLeft est vrai (utilisateur vient de saisir la partie gauche), cette sous-routine définit sOperator sur l'opérateur entré (sNewOperator) et passe bLeft à False (fin de saisie gauche). Pour gérer les enchaînements d'opérateurs (ex: 9 * 3 * 2 * 6), on vérifie si bLeft est faux (opérateur saisi au lieu d'égale). On appelle d'abord l'événement Click du bouton égal (étape suivante), qui calcule et met tbResult au résultat. On vide sRight pour le prochain nombre, et bLeft = False pour saisir le côté droit.

Ajoutez un appel AddOperator dans le Click de chaque bouton opérateur. Pour le bouton plus :

Private Sub btnPlus_Click()
AddOperator ("+")
End Sub

Pour le bouton moins :

Private Sub btnMinus_Click()
AddOperator ("-")
End Sub

Étape 9

Créez l'événement Click du bouton égal, le code le plus complexe. Double-cliquez le bouton égal pour créer la structure. Le code :

Private Sub btnEquals_Click()
If sLeft <> "" And sRight = "" And sOperator <> "" Then
sRight = sLeft
End If

If sLeft <> "" And sRight <> "" And sOperator <> "" Then
iLeft = sLeft
iRight = sRight
Select Case sOperator
Case "+"
iResult = iLeft + iRight
Case "-"
iResult = iLeft - iRight
Case "/"
iResult = iLeft / iRight
Case "*"
iResult = iLeft * iRight
End Select
tbResult.Text = iResult
sLeft = iResult
sRight = ""
bLeft = True
End If
End Sub

Les trois premières lignes vérifient si les deux côtés et l'opérateur sont saisis. Si seulement gauche et opérateur, la valeur gauche est copiée à droite pour imiter le comportement standard (ex: 9 * = donne 81). Le reste s'exécute si gauche, droite et opérateur sont saisis : copie des chaînes dans iLeft/iRight (Double pour calculs). Select Case exécute le calcul selon l'opérateur, résultat dans iResult. Mise à jour de la zone de texte, copie du résultat dans sLeft, réinitialisation de sRight, bLeft = True pour permettre un nouveau calcul sur le résultat.

Étape 10

Gérez les trois derniers boutons : racine carrée, %, 1/x. Pour racine carrée :

Private Sub btnSqrt_Click()
If sLeft <> "" Then iLeft = sLeft Else iLeft = 0
If sRight <> "" Then iRight = sRight Else iRight = 0
If bLeft Then
iLeft = Math.Sqr(iLeft)
tbResult.Text = iLeft
Else
iRight = Math.Sqr(iLeft)
tbResult.Text = iRight
End If
If iLeft <> 0 Then sLeft = iLeft Else sLeft = ""
If iRight <> 0 Then sRight = iRight Else sRight = ""
End Sub

Les 11 premières lignes évitent les erreurs si aucune valeur n'est saisie (substitue 0). Les lignes du milieu calculent la racine sur la partie en cours (gauche ou droite). Enfin, on inverse les vérifications initiales pour recopier 0 comme chaîne vide dans sLeft/sRight.

Pour le bouton pourcentage (nécessite les deux côtés) :

Private Sub btnPercent_Click()
If Not bLeft Then
If sRight <> "" Then iRight = sRight Else iRight = 0
iRight = iRight * (iLeft / 100)
tbResult.Text = iRight
If iRight <> 0 Then sRight = iRight Else sRight = ""
End If
End Sub

Pour 1/x (fraction) :

Private Sub btnFraction_Click()
If sLeft <> "" Then iLeft = sLeft Else iLeft = 0
If sRight <> "" Then iRight = sRight Else iRight = 0
If bLeft Then
iLeft = 1 / iLeft
tbResult.Text = iLeft
Else
iRight = 1 / iRight
tbResult.Text = iRight
End If
If iLeft <> 0 Then sLeft = iLeft Else sLeft = ""
If iRight <> 0 Then sRight = iRight Else sRight = ""
End Sub

Étape 11

Gérez les boutons C et CE. C efface tout, CE efface seulement le nombre en cours.

Private Sub btnC_Click()
sLeft = ""
sRight = ""
sOperator = ""
tbResult.Text = "0"
bLeft = True
End Sub

Private Sub btnCE_Click()
If bLeft Then sLeft = "" Else sRight = ""
tbResult.Text = "0"
End Sub

Étape 12

Exécutez votre calculatrice et testez. Elle peut être étendue pour plus d'opérations, calculs complexes, ou devenir scientifique avec un peu de travail.

Conseil

En cas d'erreurs, vérifiez votre code ligne par ligne, en vous concentrant sur les lignes signalées par VB, et comparez au code ci-dessus. Ce code a été testé sans erreur. Si vous utilisez une version antérieure de Visual Basic, des différences peuvent exister (ex: Math.Sqrt() au lieu de Math.Sqr()). Consultez la documentation de votre version.

Vie connectée