Рассчитать среднее для каждой серии чисел из текстового файла
В настоящее время мой код извлекает данные из txt-файла и помещает список чисел в список. Теперь мне нужно отредактировать программу, чтобы вычислить среднее значение каждой серии чисел, при этом каждая серия должна быть отделена от 0. Мне нужно сохранить данные в массив и просмотреть их, чтобы выполнить предварительные вычисления, но я не уверен, как разделите каждую серию чисел, чтобы получить среднее значение каждой серии, а не только среднее значение всего набора данных.
Вот список номеров, которые у меня есть: 10 15 20 20 0 1 2 3 4 5 6 7 8 0 10 20 30 40 50 60 0 9 9 9 9 9 9 9 9 9 0 5 8 9 5 3 80 2 23 65 0
И вот код, который у меня есть, который в настоящее время просто извлекает данные из файла и помещает их как есть в список:
Public Class Form1
Dim strData As String
Private Sub ReadButton_Click(sender As Object, e As EventArgs) Handles ReadButton.Click
Dim strReader As System.IO.StreamReader
Try
strReader = New System.IO.StreamReader("NumberData.txt")
strData = strReader.ReadLine
Do While Not strReader.EndOfStream
DataListBox.Items.Add(strData)
strData = strReader.ReadLine
Loop
DataListBox.Items.Add(strData)
strReader.Close()
Catch ex As Exception
DataListBox.Items.Add(ex.Message)
End Try
End Sub
Конечный класс
Я ценю помощь, я программировал так много в последнее время, что мой мозг просто не может понять это самостоятельно!
1 ответ
Не нужен массив; просто используйте 2 переменные: одну, которая увеличивается для каждого прочитанного элемента, и одну, чтобы держать сумму до сих пор. Когда вы читаете каждое значение, сначала убедитесь, что оно равно нулю; если это так, то вычислите среднее значение, разделив сумму на счетчик, и сделайте с ней что угодно (а затем очистите два ваших отслеживающих переменных); если это не так, тогда добавьте это для следующей суммы. (Если у вас нет трейлинга 0, вам придется использовать дополнительный калькулятор в последней серии.)