HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
Calculadora
1. Índices de los botones
Backspace 0 CE 1 C 2 7 3 8 4 9 5
/ 6 sqrt 7 4 8 5 9 6 10 x 11
% 12 1 13 2 14 3 15 - 16 1/x 17
0 18 +/- 19 . 20 + 21 = 22
OptionExplicit
Private mdblResult As Double
Private mdblSavedNumber As Double
Private mstrDot AsString
Private mstrOp AsString
Private mstrDisplay AsString
Private mblnDecEntered AsBoolean
Private mblnOpPending As Boolean
Private mblnNewEquals As Boolean
Private mblnEqualsPressed As Boolean
Private mintCurrKeyIndex As Integer
Private Sub Form_Load()
Top = (Screen.Height - Height) /2
Left= (Screen.Width - Width) /2
End Sub
Private Sub Form_KeyDown(KeyCode AsInteger,ShiftAs Integer)
Dim intIndex AsInteger
Todos los botones se
llaman “cmdCalc”,
solo cambia la
propiedad indice
Etiqueta llamada
lblDisplay
2. SelectCase KeyCode
Case vbKeyBack: intIndex =0
Case vbKeyDelete: intIndex =1
Case vbKeyEscape: intIndex =2
Case vbKey0,vbKeyNumpad0: intIndex=18
Case vbKey1,vbKeyNumpad1: intIndex=13
Case vbKey2,vbKeyNumpad2: intIndex=14
Case vbKey3,vbKeyNumpad3: intIndex=15
Case vbKey4,vbKeyNumpad4: intIndex=8
Case vbKey5,vbKeyNumpad5: intIndex=9
Case vbKey6,vbKeyNumpad6: intIndex=10
Case vbKey7,vbKeyNumpad7: intIndex=3
Case vbKey8,vbKeyNumpad8: intIndex=4
Case vbKey9,vbKeyNumpad9: intIndex=5
Case vbKeyDecimal: intIndex =20
Case vbKeyAdd: intIndex =21
Case vbKeySubtract: intIndex =16
Case vbKeyMultiply: intIndex =11
Case vbKeyDivide: intIndex =6
Case Else: ExitSub
End Select
cmdCalc(intIndex).SetFocus
cmdCalc_ClickintIndex
End Sub
Private Sub Form_KeyPress(KeyAscii AsInteger)
Dim intIndex AsInteger
SelectCase Chr$(KeyAscii)
Case "S","s": intIndex =7
Case "P","p": intIndex =12
Case "R","r": intIndex =17
Case "X","x": intIndex =11
Case "=": intIndex =22
Case Else: ExitSub
End Select
cmdCalc(intIndex).SetFocus
cmdCalc_ClickintIndex
End Sub
Private Sub cmdCalc_Click(IndexAsInteger)
Dim strPressedKey AsString
mintCurrKeyIndex=Index
If mstrDisplay="ERROR" Then
mstrDisplay=""
3. End If
strPressedKey=cmdCalc(Index).Caption
SelectCase strPressedKey
Case "0", "1", "2", "3", "4", _
"5", "6", "7", "8", "9"
If mblnOpPendingThen
mstrDisplay=""
mblnOpPending=False
End If
If mblnEqualsPressedThen
mstrDisplay=""
mblnEqualsPressed=False
End If
mstrDisplay=mstrDisplay&strPressedKey
Case "."
If mblnOpPendingThen
mstrDisplay=""
mblnOpPending=False
End If
If mblnEqualsPressedThen
mstrDisplay=""
mblnEqualsPressed=False
End If
If InStr(mstrDisplay,".") >0 Then
Beep
Else
mstrDisplay=mstrDisplay&strPressedKey
End If
Case "+", "-","X","/"
mdblResult=Val(mstrDisplay)
mstrOp= strPressedKey
mblnOpPending=True
mblnDecEntered=False
mblnNewEquals=True
Case "%"
mdblSavedNumber=(Val(mstrDisplay)/100) * mdblResult
mstrDisplay=Format$(mdblSavedNumber)
Case "="
If mblnNewEqualsThen
mdblSavedNumber=Val(mstrDisplay)
mblnNewEquals=False
End If
SelectCase mstrOp
Case "+"
mdblResult=mdblResult+mdblSavedNumber
4. Case "-"
mdblResult=mdblResult - mdblSavedNumber
Case "X"
mdblResult=mdblResult*mdblSavedNumber
Case "/"
If mdblSavedNumber=0 Then
mstrDisplay="ERROR"
Else
mdblResult=mdblResult/mdblSavedNumber
End If
Case Else
mdblResult=Val(mstrDisplay)
End Select
If mstrDisplay <> "ERROR" Then
mstrDisplay=Format$(mdblResult)
End If
mblnEqualsPressed=True
Case "+/-"
If mstrDisplay<> "" Then
If Left$(mstrDisplay,1) = "-"Then
mstrDisplay= Right$(mstrDisplay,2)
Else
mstrDisplay= "-"& mstrDisplay
End If
End If
Case "Backspace"
If Val(mstrDisplay) <>0 Then
mstrDisplay=Left$(mstrDisplay,Len(mstrDisplay)- 1)
mdblResult=Val(mstrDisplay)
End If
Case "CE"
mstrDisplay=""
Case "C"
mstrDisplay=""
mdblResult=0
mdblSavedNumber=0
Case "1/x"
If Val(mstrDisplay) =0 Then
mstrDisplay="ERROR"
Else
mdblResult=Val(mstrDisplay)
mdblResult=1 / mdblResult
mstrDisplay=Format$(mdblResult)
End If
Case "sqrt"
5. If Val(mstrDisplay) <0 Then
mstrDisplay="ERROR"
Else
mdblResult=Val(mstrDisplay)
mdblResult=Sqr(mdblResult)
mstrDisplay=Format$(mdblResult)
End If
End Select
If mstrDisplay="" Then
lblDisplay="0."
Else
mstrDot= IIf(InStr(mstrDisplay,".") >0, "", ".")
lblDisplay=mstrDisplay&mstrDot
If Left$(lblDisplay,1) = "0" Then
lblDisplay=Mid$(lblDisplay,2)
EndIf
End If
If lblDisplay="." ThenlblDisplay="0."
End Sub