Создание / работа с массивом внутри вложенного цикла LabView; не возвращается ожидаемый результат - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь создать простой ВП, который находит наименьшее число, кратное всем числам 1-N. Метод, который я пытаюсь реализовать, представляет собой цикл while с вложенным циклом for. Для каждого входного числа (назовем его M), вложенный цикл for выполняет итерации по числам 1-N и проверяет, равны ли остальные M / 1, M / 2, ..., M / N нулю или нет. Если остаток равен нулю (т.е. мое число M делится на это число), код добавляет число 1 в массив в цикле for. Если он не делится, в массив добавляется 0.

Затем, за пределами цикла for, все элементы массива умножаются. Если произведение равно 0 (что означает, что хотя бы одно из чисел 1-N не было множителем M), то цикл while продолжается до следующего входного числа M. Но если произведение не равно нулю, время while цикл останавливается, и индикатор должен показывать число M (которое кратно числам 1-N).

Я думал, что это довольно простая идея, но по какой-то причине мой код работает неправильно. Например, я попытался ввести M = 4 (указано в слоте divisible by numbers up to) и ожидал выходной сигнал 6 в слоте number (так как он делится на 1, 2 и 3). Но вывод просто читает 1. Что я здесь не так делаю? Я приложил изображение моей блок-схемы, и я не уверен, как загрузить свой фактический ВП сюда, но я могу сделать это тоже, если потребуется, и кто-то знает, как. Я новичок в LabView, поэтому любая помощь приветствуется. Спасибо!

Block diagram

1 Ответ

0 голосов
/ 06 ноября 2018

затем цикл пока продолжается до следующего номера входа M

В настоящее время это не так. «Число» показывает 1 каждый раз, когда оно появляется, потому что нет кода, который превращает его во что-либо еще. Я рекомендую использовать функцию приращения .

Кроме того, при устранении неполадок, подобных этой, я хотел бы сделать индикатор для счетчика цикла, чтобы проверить, работает ли цикл столько раз, сколько он должен.

РЕДАКТИРОВАТЬ:

Попробуйте этот фрагмент. Он увеличивает ваш ввод в каждом цикле, а также корректирует ввод в функцию «Коэффициент и остаток» (счетчик цикла индексируется нулями).

enter image description here

РЕДАКТИРОВАТЬ 2:

Наконец, я все еще не уверен, дает ли ваш метод результат, который вы искали. Чтобы определить, какие детали требуют внимания, я рекомендую использовать Highlight Execution & датчик (проще всего просто щелкнуть правой кнопкой мыши провод и выбрать «датчик»).

...