Как вычислить среднее значение элементов последовательности - Visual Basic .NET

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

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

Вот код. Выводит ошибку: An exception of type 'System.InvalidOperationException' occurred in System.Core.dll but was not handled in user code Additional information: Последовательность не содержит элементов В этой строчке кода:
Листинг программы
  1. If Not IsNothing(BiologyReadyLine) Then BiologyAverageValue = BiologyReadyLine.Average(Function(n) Convert.ToInt32(n.ToString))
Все работает, если в строчке есть цифры (оценки), но если их нет то ошибка
Листинг программы
  1. Public Class Form1
  2. Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
  3. ListView1.Items.Clear()
  4. TextBox1.Text = WebBrowser1.Document.Body.InnerText
  5.  
  6. '####################---Алгебра---####################'
  7. Dim Line As Integer
  8. Dim AlgebraPre1, AlgebraPre2, AlgebraPre3, AlgebraReadyLine As String
  9. Line = TextBox1.Lines.Count - 1
  10. For x = 0 To Line Step 1
  11. If TextBox1.Lines(x) = "Предметы" Then
  12. AlgebraPre1 = TextBox1.Lines(x + 4)
  13. AlgebraPre2 = Replace(AlgebraPre1, "+", "")
  14. AlgebraPre3 = Replace(AlgebraPre2, "H", "")
  15. AlgebraReadyLine = Replace(AlgebraPre3, " ", "")
  16. End If
  17. Next
  18. Dim AlgebraAverageValue As Double
  19. If Not IsNothing(AlgebraReadyLine) Then AlgebraAverageValue = AlgebraReadyLine.Average(Function(n) Convert.ToInt32(n.ToString))
  20. Dim AlgebraItem As New ListViewItem("Алгебра")
  21. AlgebraItem.SubItems.Add(AlgebraReadyLine)
  22. AlgebraItem.SubItems.Add(Math.Round(AlgebraAverageValue, 2))
  23. ListView1.Items.Add(AlgebraItem)
  24.  
  25. '####################---Английский язык---####################'
  26. Dim EnglishPre1, EnglishPre2, EnglishPre3, EnglishReadyLine As String
  27. For x = 0 To Line Step 1
  28. If TextBox1.Lines(x) = "Предметы" Then
  29. EnglishPre1 = TextBox1.Lines(x + 5)
  30. EnglishPre2 = Replace(EnglishPre1, "+", "")
  31. EnglishPre3 = Replace(EnglishPre2, "H", "")
  32. EnglishReadyLine = Replace(EnglishPre3, " ", "")
  33. Label2.Text = EnglishReadyLine & " " & Len(EnglishReadyLine)
  34. End If
  35. Next
  36. Dim EnglishAverageValue As Double
  37. If Not IsNothing(EnglishReadyLine) Then EnglishAverageValue = EnglishReadyLine.Average(Function(n) Convert.ToInt32(n.ToString))
  38. Dim EnglishItem As New ListViewItem("Английский")
  39. EnglishItem.SubItems.Add(EnglishReadyLine)
  40. EnglishItem.SubItems.Add(Math.Round(EnglishAverageValue, 2))
  41. ListView1.Items.Add(EnglishItem)
  42. Label4.Text = AlgebraReadyLine
  43.  
  44. '####################---Английский язык---####################'
  45. Dim BiologyPre1, BiologyPre2, BiologyPre3, BiologyReadyLine As String
  46. For x = 0 To Line Step 1
  47. If TextBox1.Lines(x) = "Предметы" Then
  48. BiologyPre1 = TextBox1.Lines(x + 6)
  49. BiologyPre2 = Replace(BiologyPre1, "+", "")
  50. BiologyPre3 = Replace(BiologyPre2, "H", "")
  51. BiologyReadyLine = Replace(BiologyPre3, " ", "")
  52. Label2.Text = BiologyReadyLine & " " & Len(BiologyReadyLine)
  53. End If
  54. Next
  55. Dim BiologyAverageValue As Double
  56. If Not IsNothing(BiologyReadyLine) Then BiologyAverageValue = BiologyReadyLine.Average(Function(n) Convert.ToInt32(n.ToString))
  57. Dim BiologyItem As New ListViewItem("Биология")
  58. BiologyItem.SubItems.Add(BiologyReadyLine)
  59. BiologyItem.SubItems.Add(Math.Round(BiologyAverageValue, 2))
  60. ListView1.Items.Add(BiologyItem)
  61. Label4.Text = AlgebraReadyLine
  62. End Sub
  63. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  64. WebBrowser1.ScriptErrorsSuppressed = True
  65. WebBrowser1.Navigate(adress.Text)
  66. End Sub
  67. Private Sub WebBrowser1_ProgressChanged(sender As Object, e As WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
  68. Try
  69. ProgressBar1.Value = CType((e.CurrentProgress / e.MaximumProgress * 100), Integer)
  70. Catch Ex As Exception
  71. End Try
  72. If ProgressBar1.Value = 100 Then
  73. Label3.Text = "Успешно!"
  74. End If
  75. End Sub
  76. Private Sub NotifyIcon1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
  77. Me.Show()
  78. Me.WindowState = FormWindowState.Normal
  79. End Sub
  80. Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
  81. If Me.WindowState = FormWindowState.Minimized Then
  82. Me.Hide()
  83. End If
  84. End Sub
  85. Private Sub Label4_Click(sender As Object, e As EventArgs) Handles Label4.Click
  86. End Sub
  87. End Class

Решение задачи: «Как вычислить среднее значение элементов последовательности»

textual
Листинг программы
  1. Dim BiologyAverageValue As Double = 0
  2. Dim BiologyReadyLine As String = ""
  3. For x = 0 To Line Step 1
  4.     If TextBox1.Lines(x) = "Предметы" Then
  5.         BiologyReadyLine = TextBox1.Lines(x + 6)
  6.         BiologyReadyLine = Regex.Replace(BiologyReadyLine, "[^\d]", "")
  7.         Label2.Text = BiologyReadyLine & " " & Len(BiologyReadyLine)
  8.  
  9.         If BiologyReadyLine.Length > 0 Then
  10.             BiologyAverageValue = biology.Average(Function(ch) Char.GetNumericValue(ch))
  11.         End If
  12.     End If
  13. Next
  14.  
  15. Dim BiologyItem As New ListViewItem("Биология")
  16. BiologyItem.SubItems.Add(BiologyReadyLine)
  17. BiologyItem.SubItems.Add(Math.Round(BiologyAverageValue, 2))
  18. ListView1.Items.Add(BiologyItem)

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


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

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

8   голосов , оценка 3.875 из 5

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

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

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