В массиве обменять местами элементы

Простейшие вопросы в области инженерной разработки
Ответить
FASHAR
interested
interested
Сообщения: 8
Зарегистрирован: 25 окт 2016, 22:36
Версия LabVIEW: 2016
Контактная информация:

В массиве обменять местами элементы

Сообщение FASHAR »

Задание "В массиве X обменять местами первый и последний четные элементы".
Имеется блок схема
Преподователь сказал убрать всё то что обведено красным и в блоке номер первого чётного элемента записать в индекс first, а номер последнего в last, а позже поменять их местами. Я не могу понять как это реализовать.
Вложения
lab2.1.jpg
блоксхемалаб2.jpg
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: В массиве обменять местами элементы

Сообщение IvanLis »

FASHAR писал(а):Задание "В массиве X обменять местами первый и последний четные элементы".
Если не вникать в алгоритм, представленный ниже, то можно так сделать:
2.png
Порадуйте преподавателя :crazy:

--------------------

Наверное правильнее будет так
3.png
Иначе, если четные элементы в массиве будут отсутствовать, то первый и последний элементы поменяются местами, а нам это не нужно.
rbl
assistant
assistant
Сообщения: 122
Зарегистрирован: 09 дек 2014, 10:14
Версия LabVIEW: 7-2015
Откуда: Санкт-Петербург
Контактная информация:

Re: В массиве обменять местами элементы

Сообщение rbl »

IvanLis писал(а): Наверное правильнее будет так

Иначе, если четные элементы в массиве будут отсутствовать, то первый и последний элементы поменяются местами, а нам это не нужно.
Будет ли более правильный вариант работать для массива, к примеру, 2 0 0 0 4 ?

Как вариант :
Вложения
решение1.jpg
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: В массиве обменять местами элементы

Сообщение IvanLis »

rbl писал(а):Будет ли более правильный вариант работать для массива, к примеру, 2 0 0 0 4 ?
А почему нет?

Поиск с начала выдаст элемент "2" (индекс 0).
Поиск с конца выдаст элемент "4" (индекс 4).
И поменяет их местами.

К тому же, "0" - четное число, по этому его наличие и положение не влияет на результат.
Более корректно задавать массив в целочисленном типе, наличие дробной части сразу сводит к "0" определение четности/нечетности.
"В массиве X обменять местами первый и последний четные элементы"
rbl
assistant
assistant
Сообщения: 122
Зарегистрирован: 09 дек 2014, 10:14
Версия LabVIEW: 7-2015
Откуда: Санкт-Петербург
Контактная информация:

Re: В массиве обменять местами элементы

Сообщение rbl »

IvanLis писал(а):
rbl писал(а):Будет ли более правильный вариант работать для массива, к примеру, 2 0 0 0 4 ?
А почему нет?

Поиск с начала выдаст элемент "2" (индекс 0).
Поиск с конца выдаст элемент "4" (индекс 4).
И поменяет их местами.
Либо я не так смотрю, но как мне кажется поиск с конца выдаст элемент 4, индекс 0. Что в дальнейшем приведет к фолсу на выходе "не равно" и также фолс на выходе "и".
FASHAR
interested
interested
Сообщения: 8
Зарегистрирован: 25 окт 2016, 22:36
Версия LabVIEW: 2016
Контактная информация:

Re: В массиве обменять местами элементы

Сообщение FASHAR »

Порадуйте преподавателя :crazy:
Благодарю, порадовал преподавателя и сделал программу в один цикл.
Подскажите, как создать зелёный элемент с названием Replace перед Case Selector?
rbl
assistant
assistant
Сообщения: 122
Зарегистрирован: 09 дек 2014, 10:14
Версия LabVIEW: 7-2015
Откуда: Санкт-Петербург
Контактная информация:

Re: В массиве обменять местами элементы

Сообщение rbl »

FASHAR писал(а):
Порадуйте преподавателя :crazy:
Благодарю, порадовал преподавателя и сделал программу в один цикл.
Подскажите, как создать зелёный элемент с названием Replace перед Case Selector?
Вы даже не знаете, что это за элемент и почему он зеленый? Название учебного заведения не подскажите?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: В массиве обменять местами элементы

Сообщение Borjomy_1 »

как создать зелёный элемент с названием Replace перед Case Selector?
на зеленой линии ПКМ->Create Indicator
FASHAR
interested
interested
Сообщения: 8
Зарегистрирован: 25 окт 2016, 22:36
Версия LabVIEW: 2016
Контактная информация:

Re: В массиве обменять местами элементы

Сообщение FASHAR »

на зеленой линии ПКМ->Create Indicator
Спасибо
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: В массиве обменять местами элементы

Сообщение IvanLis »

rbl писал(а):Либо я не так смотрю, но как мне кажется поиск с конца выдаст элемент 4, индекс 0. Что в дальнейшем приведет к фолсу на выходе "не равно" и также фолс на выходе "и".
Сейчас все пересмотрел, Вы абсолютно правы.
Второй месяц в режиме Zeit Not сказываются, внимание рассеивается, исправляя одни ошибки, допускаешь другие.

Но "коллективный разум" подтверждает свою актуальность :1stplace:

Сравнение необходимо делать именно значений Last и First. Уже боюсь предлагать варианты, но должно быть вроде так:
Без имени.png
Ответить

Вернуться в «Для чайников»