Вычислить значения функции - VB (59103)

Узнай цену своей работы

Формулировка задачи:

Написать программу в Visual Basic для вычисления значения функции. Помогите пожалуйста)

Решение задачи: «Вычислить значения функции»

textual
Листинг программы
  1. Option Explicit
  2. Private Enum DotAndCommaEnum
  3.     IsNotPresent
  4.     IsPresent
  5. End Enum
  6. Private Type SignType
  7.     DotAndComma As DotAndCommaEnum
  8.     Minus As DotAndCommaEnum
  9. End Type
  10. Private mlngContentOfString As SignType
  11. Private Const A As Single = 1.3
  12. Private Const B As Single = 1.29
  13. Private Sub cmdCompute_Click()
  14.     Dim dblRetval As Double, dblResult As Double, strRetval As String, lngStringLength As Long
  15.     strRetval = txtValueX.Text
  16.     lngStringLength = VBA.Strings.Len(txtValueX.Text)
  17.     If lngStringLength = 1 And (txtValueX.Text Like "[-.,]") Or lngStringLength = 0 Then
  18.         VBA.Interaction.MsgBox "Недопустимое значение X.", vbInformation, "Ошибка"
  19.         With txtValueX
  20.             .SetFocus
  21.             .SelStart = 0
  22.             .SelLength = lngStringLength
  23.         End With
  24.         Exit Sub
  25.     End If
  26.     If VBA.Strings.InStr(1, strRetval, ".") <> 0 Then strRetval = _
  27.         VBA.Strings.Replace(strRetval, ".", ",")
  28.     dblRetval = VBA.Conversion.CDbl(strRetval)
  29.     Select Case dblRetval
  30.         Case Is < 1
  31.             dblResult = A * dblRetval + B
  32.         Case 1
  33.             dblResult = VBA.Math.Cos(A * dblRetval)
  34.         Case Is > 1
  35.             dblResult = VBA.Math.Exp(-A * dblRetval) * VBA.Math.Cos(A * dblRetval)
  36.     End Select
  37.     txtValueY.Text = VBA.Conversion.CStr(dblResult)
  38. End Sub
  39. Private Sub cmdExit_Click()
  40.     Unload Me
  41. End Sub
  42. Private Sub txtValueX_Change()
  43.     If Not txtValueX.Text Like "*[,.]*" Then mlngContentOfString.DotAndComma = IsNotPresent
  44. End Sub
  45. Private Sub txtValueX_KeyPress(KeyAscii As Integer)
  46.     If KeyAscii = 45 Then
  47.         If txtValueX.SelLength = 0 Then
  48.             If VBA.Strings.Left$(txtValueX.Text, 1) <> "-" Then
  49.                 If txtValueX.SelStart <> 0 Then KeyAscii = 0
  50.             Else
  51.                 KeyAscii = 0
  52.             End If
  53.         Else
  54.             If txtValueX.SelStart <> 0 Then KeyAscii = 0
  55.         End If
  56.     ElseIf KeyAscii = 44 Or KeyAscii = 46 Then
  57.         If txtValueX.SelStart = 0 And (VBA.Strings.InStr(1, txtValueX, "-") <> 0) And txtValueX.SelLength = 0 Then
  58.             KeyAscii = 0
  59.         Else
  60.             If mlngContentOfString.DotAndComma = IsNotPresent Then
  61.                 mlngContentOfString.DotAndComma = IsPresent
  62.             Else
  63.                 If Not txtValueX.SelText Like "*[.,]*" Then KeyAscii = 0
  64.             End If
  65.         End If
  66.     Else
  67.         If VBA.Strings.Chr$(KeyAscii) Like "[0-9]" Then
  68.             If txtValueX.SelLength = 0 Then
  69.                 If txtValueX.SelStart = 0 And VBA.Strings.InStr(1, txtValueX.Text, "-") Then KeyAscii = 0
  70.             Else
  71.                 If txtValueX.SelStart = 0 And VBA.Strings.InStr(1, txtValueX.SelText, "-") = 0 Then KeyAscii = 0
  72.             End If
  73.         Else
  74.             If KeyAscii <> 8 Then KeyAscii = 0
  75.         End If
  76.     End If
  77. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут