Как определить наибольшее число.
- Войдите на сайт для отправки комментариев
Вот простой в принципе вопрос а правильное решение найти не могу.
Сформулировать правильный запрос для поисковика тоже не получается.
Имеем две переменные, они имеют определенное значение (допустим тип данных - int). Каким образом эти переменные получают значения - не суть.
Как максимально просто и грамотно определить , значение какой из переменных больше а какой меньше ?
Единственное что приходит в голову это из первой переменной вычесть вторую (не важно из какой конкретно).
Если получим положительное значение , значит первая переменная была больше второй. Если получим отрицательное - вторая была больше первой. Если обе переменные равны (результатат вычитания - ноль) игнорируем данный факт.
Вроде просто , но не нравится мне такой вариант.
А операторы сравнения <, >, <=, >= чем вас не устраивают?
Может быть, про max вопрос? http://arduino.ru/Reference/Max
Так вы хотите нечто, которое просто вам возвращает максимальное значение перенной, а когда они равны возвращает 0?
Пожалуйста:
Так вы хотите нечто, которое просто вам возвращает максимальное значение перенной, а когда они равны возвращает 0?
Пожалуйста:
Так а почему не val_max=max(val_1, val_2) ?
Потому что если val_1 будет равен val_2, то эта деректива вернет val_2.
Из Arduino.h:
Единственное что приходит в голову это из первой переменной вычесть вторую (не важно из какой конкретно).
Чем не нравится такой вариант? По мне так вполне себе живой вариант. Думаю и оптимизатор с этим согласится. Я бы просто посмотрел листинг ассемблера для этих двух вариантов, но мне придется копаться и искать, может кто-то быстро сможет посмотреть?
Предполагаю, что чуть больше "проблем", если после сранения нужно все три варианта как то обработать, а не просто решить задачу "равны" или "не равны". Хотя оптимизатор должен бы разрулить.
Я не давно писал функцию которая определяет какое число больше и указывает его номер. Может тебе это надо?
перечисляешь функции три числа, а она тебе выдает номер той, что больше.
Пример работ: При старте мигаем всеми светоиндикаторами столько раз, какой датчик температуры нагрелся больше (для калибровки датчиков):
Можно обсчитать так, что если все они равны нулю, выдавалось бы 0, т.е. никакой номер. Я так задумывал, но потом как-то иначе обошелся.
Когда 2 переменные всё понятно...
Как сделать когда нужно из 4-х переменных найти максимальное или минимальное значение?
Всё, разобрался
Нда... а если 10 переменных?
1. Переменные сложить в массив.
2. Поиск максимума (минимума) - стандартная задача школьного курса информатики, даже гуглить стыдно.
Скажем не у всех в школе была информатика...
Я конечно не силён ещё в С++, но а РНР для сортировки массива есть команда sort(), так что максимальное и мииимальные значения сразу будт первым и последним в списке массива :)
Ребят, нужна помощь. Есть некий массив, не суть как он заполняется, в примере просто заполнил значениями.
Нужно выбрать минимальное значение, не учитывая нулевые. В идеале не учитывая только все последние нулевые (все подряд последние, которые равны 0, их может быть и три и пять).
Заранее благодарю за помощь.
Так и идите с конца Вашего массива, найдите первый не ноль. А дальше продолжайте цикл с поиском минимума.
kalapanga, а какая разница, с какой стооны массива идти?
kalapanga, а какая разница, с какой стооны массива идти?
Спасибо за направление, получилось так:
kalapanga, а какая разница, с какой стооны массива идти?
Так чтоб нули последние игнорировать. Я вопрос так понял, что те нули, что в середине встречаются, надо учитывать, а те, что в конце нет. Если все нули нужно игнорить, то без разницы конечно.
да, все верно, вопрос так и стоял: в идеале игнорировать только последние нули, которые подряд
— Как по татарски будет «Вперед»?
За то у нас есть слово ОБРАТНО ! Что бы пойти назад, сначала нужно пойти вперед, а если ты уже прошел вперед, то всегда можно вернуться обратно.
Ребят, подскажите как правильно поступить в моем выражении?
для выбора кроме мин еще и макс значения нам нужна еще одна переменная, чтобы заново в том же массиве не откидывать нули в конце. В принципе у нас освободилась t и можно задействовать ее (строка 12), чтобы не занимать место под новую переменную.
Но что-то мне подсказывает, что в одной функции не нужно использовать одну и ту же переменную для разных целей. И более правильным решением будет объявить еще одну переменную
Если не секрет, для чего хранятся данные температуры в массиве?
можно отбор минимума и максимума делать на стадии получения данных с датчмка.
Если не секрет, для чего хранятся данные температуры в массиве?
можно отбор минимума и максимума делать на стадии получения данных с датчмка.
Как вариант - для усреднения показаний на серии выборок.
Если не секрет, для чего хранятся данные температуры в массиве?
можно отбор минимума и максимума делать на стадии получения данных с датчмка.
Как вариант - для усреднения показаний на серии выборок.
Данные в массивах - для получения мин и макс t за последний час / сутки / все время работы.
Отбор при получении с датчика подходят, имхо, только для получения минимума и максимума за все время с момента старта, это у меня так и исполнено.