![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.07.2019
Сообщений: 24
|
![]()
я написал программу для трех сигналов при трех состояниях (красный, желтый, зеленый). Допустим, я ставлю первый сигнал на "вкл", квадрат загорается красным цветом. Второй если ставлю - желтым, третий - зеленым.
Задача заключается в том, что у меня будут 30 сигналов при трех состояниях. 10 сигналов должны быть красными, 10-зелеными, 10 - желтыми. И должен быть приоритет сигналов, то есть у красных-высокий, потом желтый, потом -зеленый. Я поэтому так написал код. К примеру, если будут включены одновременно и красный и желтый, то будет гореть красный цвет. |
![]() |
![]() |
![]() |
#2 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Arturlem
А где вопрос? Почему код вставлен картинкой? Цитата:
Если код повторяется более 3-х раз, то стоит использовать циклы. А в вашем случае ещё и массивы. Скорее всего говорить о состояниях не есть хорошо. У вас есть комбинаторная логика. У вас есть функция которая получает сигналы на вход и решает какой цвет загорится. Вот в ней и прописываете свои приоритеты на логических операторах.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 17.07.2019 в 15:01. |
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
если a то красный // и без разницы b и c
иначе если b то желтый // и без разницы c иначе если c то зеленый иначе белый
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 17.07.2019
Сообщений: 24
|
![]() Цитата:
Да, для 30ти сигналов нужно использовать массив. Пробовал, но не очень-то получается все это, не загорается ничего. Я это делаю в языке сценариев CTRL. Это практически как С. Если нетрудно можете помочь разобраться в этом мне Код:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 17.07.2019
Сообщений: 24
|
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 17.07.2019
Сообщений: 24
|
![]()
Да, сигналы независимые.
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Так вам же уже сказали и про массивы, и про циклы, и про сокращения условия. Какая вам еще оптимизация нужна? Откуда приходят сигналы? Как приходят? Как хранятся?
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 17.07.2019
Сообщений: 24
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
1. Раз сигналы независимы и зависят от 3 входных, то либо EP_setBackColorCB должна вызываться для каждого отдельно с указанием номера, либо (судя по вашему коду) вы должны расширить кол-во ее параметров в 10 раз. Хотя лучше организовать массив параметров, если поддерживается.
2. dd_IntArray и sdd_IntArray это разные массивы или опечатки? 3. Зачем вы поменяли логику того, что вам говорили? Зачем вы создали массив номеров, ищете в нем 1 и крутите бессмысленное условие? Очевидно, что i там будет 0 или 10. Почему у вас теперь цвет не зависит от входных сигналов? |
![]() |
![]() |
![]() |
#10 | ||
Пользователь
Регистрация: 17.07.2019
Сообщений: 24
|
![]() Цитата:
Цитата:
Я в первый раз столкнулся с этим, поэтому я на стадии разбирательства еще. Там опечатка =) Массив тут задается странным образов. Как в Си если задать, то выходит ошибка. Так я задал, вроде хотя бы запускается, опять-таки, верно или нет, не знаю Код:
Я пытался увеличить количество параметров в 10 раз, там тоже безуспешно |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сигналы из вне | JohnSh | C# (си шарп) | 2 | 10.11.2016 21:38 |
QT - сигналы | Базиля | Помощь студентам | 13 | 06.10.2013 19:39 |
Сигналы | Yelisey | Общие вопросы C/C++ | 1 | 08.05.2011 17:54 |
сигналы в Qt! | marselik | Qt и кроссплатформенное программирование С/С++ | 1 | 24.11.2010 23:29 |