0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 24
|
||||||
1 | ||||||
Получить среднее арифметическое принятых данных с последовательного порта09.10.2017, 08:42. Показов 1204. Ответов 8
Метки нет Все метки)
(
Добрый день!
Столкнулся с такой задачей. Необходимо получить среднее арифметическое 8 значений принятых из последовательного порта. Данные получаю в виде 03H0**** * - любые принятые числа
Необходимо чтобы каждое новое полученное значение с последовательного порта складывалось с последующими 8 новых значений и получить среднее арифметическое уже в Label1.Text К примеру получено 8 новых значений 0255 + 0321 + 0244 + ..... + 0251 после чего все полученные значения делятся на 8 и получаем результат в Label1.Text. После получения среднего значения, начинать вычисление следующие 8 значений, а предыдущий результат обнулить. Заранее благодарю за помощь!!!
0
|
|
09.10.2017, 08:42 | |
Ответы с готовыми решениями:
8
Отображение данных принятых с ком порта (C# windows forms) Распределение данных с последовательного порта Как поток данных с последовательного порта записать в массив типа char |
es geht mir gut
11264 / 4746 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
|
||||||
09.10.2017, 10:37 | 2 | |||||
0
|
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 24
|
|
11.10.2017, 10:50 [ТС] | 3 |
Благодарю! Всё сработало, но появился ещё один нюанс. Как мне выставить условие таким образом чтобы исключить значение 3000 и продолжить выполнение цикла да тех пор пока не появятся значения меньше 3000?!
0
|
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 24
|
|
11.10.2017, 12:34 [ТС] | 5 |
Всё что меньше 3000, подсчитывает правильно. А вот значение = 3000 нужно чтобы пропускал(исключал) из цикла и считал все последующие значения которые ниже 3000 до конца выполнения цикла из 8. Значений выше 3000 в порт не поступают.
Сделаю к примеру из 8 полученных значений: 0289 + 0340 + 0315 + 3000 + 0291 + 0412 + 3000 + 3000 Из этих 8 значений нужно исключить все "3000" и завершить цикл только в том случае когда все значения будут меньше "3000".
0
|
es geht mir gut
11264 / 4746 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
|
||||||
11.10.2017, 12:53 | 6 | |||||
0
|
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 24
|
|
12.10.2017, 11:02 [ТС] | 7 |
Спасибо большое за помощь! Завтра буду тестировать, напишу что получилось
Добавлено через 22 часа 4 минуты Всё работает. Спасибо. Ещё один вопрос интересует такой. Можно ли задать условие таким образом, чтобы из 8 полученных значений, если 3000 выпало 5 раз или во всём цикле 8 раз выпало 3000, то передать Label1.Text = "----" К примеру: Если 0289 + 0340 + 3000 + 3000 + 0291 + 3000 + 3000 + 3000 или 3000 + 3000 + 3000 + 3000 + 3000 + 3000 + 3000 + 3000 То передать Label1.Text = "----"
0
|
es geht mir gut
11264 / 4746 / 1183
Регистрация: 27.07.2011
Сообщений: 11,437
|
||||||
12.10.2017, 13:12 | 8 | |||||
![]() Решение
1
|
0 / 0 / 0
Регистрация: 21.03.2017
Сообщений: 24
|
|
13.10.2017, 22:42 [ТС] | 9 |
Благодарю за помощь! Всё работает, тема закрыта.
0
|
13.10.2017, 22:42 | |
Помогаю со студенческими работами здесь
9
Получить массив их 2 заданных, элементы которого есть среднее арифметическое соответствующих элементов данных массивов Процедуры: Получить y = 5,3*a+(a2+6,7)/sin(a+b), где a – среднее арифметическое в массиве C, b –среднее арифметическое в массиве D Получить среднее арифметическое по трем предметам ученика и среднее по каждому предмету всех студентов Получить среднее арифметическое и среднее геомерическое элементов последовательности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |