Сравнить все элементы массива с заданным числом.
-
- beginner
- Сообщения: 42
- Зарегистрирован: 02 ноя 2016, 16:40
- Версия LabVIEW: 15
- Контактная информация:
Сравнить все элементы массива с заданным числом.
Здравствуйте, подскажите(помогите разобраться) как сделать бесконечный цикл сравнения всех строк массива с конкретным числом?
Cуть задачи проверить все элементы массива, в случае если элемент больше числа N организовать инкремент числа 0 при этом нужно проверить(у меня в программе данной проверки нет так не сообразил даже как ее реализовать ) чтобы следующий число в массиве было больше числа N и предыдущего числа, если следующее число меньше предыдущего и больше N организовать декремент получившегося числа , иначе осуществить инкремент получившегося числа.
Спасите! Буду признателен за любую помощь.
Cуть задачи проверить все элементы массива, в случае если элемент больше числа N организовать инкремент числа 0 при этом нужно проверить(у меня в программе данной проверки нет так не сообразил даже как ее реализовать ) чтобы следующий число в массиве было больше числа N и предыдущего числа, если следующее число меньше предыдущего и больше N организовать декремент получившегося числа , иначе осуществить инкремент получившегося числа.
Спасите! Буду признателен за любую помощь.
- Вложения
-
- М.png (11.66 КБ) 4786 просмотров
-
- Массивы.rar
- (6.13 КБ) 89 скачиваний
-
IvanLis
- guru
- Сообщения: 5462
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Сравнить все элементы массива с заданным числом.
Вы алгоритм на листочке нарисуйте...Nikol писал(а):Здравствуйте, подскажите(помогите разобраться) как сделать бесконечный цикл сравнения всех строк массива с конкретным числом?
Cуть задачи проверить все элементы массива, в случае если элемент больше числа N организовать инкремент числа 0 при этом нужно проверить(у меня в программе данной проверки нет так не сообразил даже как ее реализовать ) чтобы следующий число в массиве было больше числа N и предыдущего числа, если следующее число меньше предыдущего и больше N организовать декремент получившегося числа , иначе осуществить инкремент получившегося числа.
Спасите! Буду признателен за любую помощь.
Много вопросов снимутся сами собой.
--
Я например вообще не понял, что нужно сделать
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Сравнить все элементы массива с заданным числом.
У Вас версия 8.6 написана, а виайка 15ая
Может я и не все условия понял (скорее всего), но дальше Вы справитесь сами
Может я и не все условия понял (скорее всего), но дальше Вы справитесь сами
- Вложения
-
- Untitled 14.vi
- (10.39 КБ) 176 скачиваний
-
- beginner
- Сообщения: 42
- Зарегистрирован: 02 ноя 2016, 16:40
- Версия LabVIEW: 15
- Контактная информация:
Re: Сравнить все элементы массива с заданным числом.
В данном случае массив это имитация входного сигнала который изменяется с течением времени, каждое изменение данного сигнала(или следующая строка массива) должно проверятся с фиксированным максимумом(число N), в случае если входной сигнал меньше числа N(в программе я перепутал равенство,прошу прощения), необходимо подать сигнал свидетельствующий о данном событии путем инкремента, при этом необходимо удостовериться что следующий входной сигнал(следующая строка массива не меньше предыдущей и при этом больше числа N). Надеюсь смог объяснить.Я например вообще не понял, что нужно сделать
Алгоритм то есть, но вот опыта а самое главное знаний работы всех инструментов VI мало( И как организовать сравнение элементов всего массива с конкретным числом или элементами другого массива не могу даже представить. В интернете есть лишь варианты сравнения конкретной строки/столбца массива с строкой/столбцом другого массиваВы алгоритм на листочке нарисуйте...
-
- beginner
- Сообщения: 42
- Зарегистрирован: 02 ноя 2016, 16:40
- Версия LabVIEW: 15
- Контактная информация:
Re: Сравнить все элементы массива с заданным числом.
Спасибо за помощь! Единственный вопрос в программе, а для чего второй оператор AND? да еще и с инверсным входом, если с первым вроде все понятно(служит для выдачи логического сигнала при одновременном выполнении условий, следующее значение больше N но меньше предыдущего) то какую функцию выполняет второй не пойму.Может я и не все условия понял (скорее всего), но дальше Вы справитесь сами
-
IvanLis
- guru
- Сообщения: 5462
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Сравнить все элементы массива с заданным числом.
Вас 2 условия, а значит возможны 2^2 исхода сравнения, это при условии использования знака равно.Nikol писал(а):Алгоритм то есть, но вот опыта а самое главное знаний работы всех инструментов VI мало( И как организовать сравнение элементов всего массива с конкретным числом или элементами другого массива не могу даже представить. В интернете есть лишь варианты сравнения конкретной строки/столбца массива с строкой/столбцом другого массива
У Вас не все варианты действий сейчас предусмотрены после сравнения.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Сравнить все элементы массива с заданным числом.
Ага, у Вас не хватает условий. По тексту Вашему, сверху вниз.
1) если a>N // в случае если элемент больше числа N организовать инкремент...
2) если a[i+1]>a и a[i+1]>N // ...проверить, что следующее число в массиве было больше числа N и предыдущего числа...
3) если a[i+1]<a и a[i+1]>N // если следующее число меньше предыдущего и больше N организовать декремент получившегося
1) если a>N // в случае если элемент больше числа N организовать инкремент...
2) если a[i+1]>a и a[i+1]>N // ...проверить, что следующее число в массиве было больше числа N и предыдущего числа...
3) если a[i+1]<a и a[i+1]>N // если следующее число меньше предыдущего и больше N организовать декремент получившегося
-
- beginner
- Сообщения: 42
- Зарегистрирован: 02 ноя 2016, 16:40
- Версия LabVIEW: 15
- Контактная информация:
Re: Сравнить все элементы массива с заданным числом.
Те нужно организовать цикл внутри которого будут циклы проверки Case в котором в свою очередь будут и другие Case c последующими условиями. Отсюда вопрос в каком порядке будет осуществляться проверка? А именно с первого Case(в котором будут последующие и соответственно поэтапно проверять каждое условие) или же проверка начнется с самого последнего условия??Ага, у Вас не хватает условий. По тексту Вашему, сверху вниз.
-
IvanLis
- guru
- Сообщения: 5462
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Сравнить все элементы массива с заданным числом.
Не нужны циклы для проверки.Nikol писал(а):Те нужно организовать цикл внутри которого будут циклы проверки Case в котором в свою очередь будут и другие Case c последующими условиями. Отсюда вопрос в каком порядке будет осуществляться проверка? А именно с первого Case(в котором будут последующие и соответственно поэтапно проверять каждое условие) или же проверка начнется с самого последнего условия??
Выполняете два сравнения, результат объединяете в массив (Boolean) и преобразуете его в число.
Получается:
0 = F, F
1 = T, F
2 = F, T
3 = T, T
Потом в Case по числу уже принимаете решение.
Должно быть как-то так: Но учтите, что при проверке N>M -> True, False будет при N<=M.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Сравнить все элементы массива с заданным числом.
Самое простое - как написано словами, в такой последовательности и проверять. С первого условия. Если важно быстродействие алгоритма, то проверки нужно пихать внутрь кейсов.
Вообще мне не нравятся эти структруры. Много места занимают. Если вложенностей > 2, то разрастается все и некрасивый код получается.
Можно каждое условия отдельно непротиворечиво написать - создать массив - его в число (или искать true) - и кейс получается один. Иногда нагляднее.
Вообще мне не нравятся эти структруры. Много места занимают. Если вложенностей > 2, то разрастается все и некрасивый код получается.
Можно каждое условия отдельно непротиворечиво написать - создать массив - его в число (или искать true) - и кейс получается один. Иногда нагляднее.
-
IvanLis
- guru
- Сообщения: 5462
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Сравнить все элементы массива с заданным числом.
Не уверен, что получится быстрее...zxc_pavel писал(а):Самое простое - как написано словами, в такой последовательности и проверять. С первого условия. Если важно быстродействие алгоритма, то проверки нужно пихать внутрь кейсов.
Но тут как говорится "кровью написано", что озвученная мною конструкция более гибкая и универсальная, особенно при вложенности более 2.
Помимо наглядности, позволяет избежать множественного дублирования кода (если реакция одинакова на несколько условий), и т.д. и т.п.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 1018 Просмотры
-
Последнее сообщение dadreamer
-
- 5 Ответы
- 969 Просмотры
-
Последнее сообщение seromax
-
- 2 Ответы
- 380 Просмотры
-
Последнее сообщение Sergey Puzanov