Работа с массивами

Вопросы по использованию встроенных в программу блоков
Ответить
t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#1

Сообщение t405 » 22.12.2017{, 19:40}

Друзья, приветствую, осваиваю программу и столкнулся с задачкой, которая вынудила обратиться к вам.
Опишу вкратце ее.
Есть несколько линий, для каждой должны выбрать программу работы. Каждая программа работы содержит 10 различных значений(integer).
Т.е. у меня получились массивы:
Программа работы линии byte(индекс - номер линии; значиение - номер программы)
Названия программ работы string(индекс - номер программы; значение - название программы)
Названия действий программ string(индекс - номер действия; значение - название действия)

Получается, что мне нужно создать еще массивы с названиями программ, только как выбирать этот массив, если мы только знаем его имя, но не можем передать его на вход блока запись/получение элемента массива?

Не гибкая система получается (((
Последний раз редактировалось t405 22.12.2017{, 19:43}, всего редактировалось 1 раз.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Работа с массивами

#2

Сообщение pan » 22.12.2017{, 20:01}

может стОит попробовать MUX вместо массивов?

СпойлерПоказать
Изображение
а на входа зафигачить константы

t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#3

Сообщение t405 » 22.12.2017{, 21:16}

Спасибо за быстрый ответ. Все равно что-то не могу понять как сделать гибкую систему, чтобы она была конфигурябельная.

У меня была логика такая:
массив по линиям, берем 0 линию, допустим там 1, обращаемся в массив программ с индексом 1, получаем название массива с описанием действий.

сложно все и заморочено, может можно закодировать 10 действий  (integer) в одну переменную и записать ее в массив? Чтобы подавалась декодированию еще

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Работа с массивами

#4

Сообщение pan » 22.12.2017{, 21:28}

может я не так понимаю

СпойлерПоказать
Изображение

t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#5

Сообщение t405 » 22.12.2017{, 21:54}

Что то не соображу никак (((
Вложения
7138443.png

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Работа с массивами

#6

Сообщение pan » 22.12.2017{, 21:58}

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

t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#7

Сообщение t405 » 22.12.2017{, 22:02}

Я тогда не пойму как параллельно должно работать.
например индекс 1. Получаем 1 линия, описание одного действия и описание программы

линий 5, действий в программе 10, программ 30, как оно к одному индексу будет привязано? Извиняюсь, что туплю.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Работа с массивами

#8

Сообщение pan » 22.12.2017{, 22:10}

t405 писал(а):линий 5, действий в программе 10, программ 30,
так сразу бы и написали.
 вы хотите это всё выбирать с помощью одной переменной?

t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#9

Сообщение t405 » 22.12.2017{, 22:22}

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

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Работа с массивами

#10

Сообщение pan » 22.12.2017{, 22:45}

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

СпойлерПоказать
Изображение

t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#11

Сообщение t405 » 23.12.2017{, 09:15}

Ну да, только мне получается надо в одной ячейке под одним индексом хранить сразу 10 значений (integer)этой программы, а как это лучше сделать?

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с массивами

#12

Сообщение Sancho » 23.12.2017{, 10:06}

t405 писал(а):Ну да, только мне получается надо в одной ячейке под одним индексом хранить сразу 10 значений (integer)этой программы, а как это лучше сделать?
Создать двух-мерный массив в пользовательском блоке. С любой размерность.
Можно создать массив с вложенными массивами.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

t405
Рядовой
Сообщения: 14
Зарегистрирован: 22.12.2017{, 19:23}
Репутация: 0

Работа с массивами

#13

Сообщение t405 » 23.12.2017{, 11:12}

в 3.0.3 при попытке создать пользовательский блок - его окно куда то прячется (

Аватара пользователя
Sancho
Полковник
Сообщения: 3991
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Работа с массивами

#14

Сообщение Sancho » 23.12.2017{, 11:49}

t405 писал(а):при попытке создать пользовательский блок - его окно куда то прячется (
Было пару раз - выходило за пределы экрана. Не помню, но как-то вытащил.
Что-то было связанно с масштабом отображения - типа "удобство чтения - крупный" ....
Последний раз редактировалось Sancho 23.12.2017{, 11:49}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Работа с массивами

#15

Сообщение pan » 23.12.2017{, 13:48}

t405 писал(а):только мне получается надо в одной ячейке под одним индексом хранить сразу 10
 зачем.
pan писал(а):делать массив  на 30 значений в котором будут храниться номера действий для каждойпрограммы
 один массив на 30 значений это  массив с номерами программ. сделать еще один массив на 30 значений в который каждая программа будет записывать номер действия. из этого и считываем номер действия у текущей программы

Изображение

Ответить

Вернуться в «Встроенные блоки»