Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / небольшой вопрос С++ циклический счетчик / 25 сообщений из 31, страница 1 из 2
17.10.2012, 12:34
    #38002149
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Оформляю Скада-систему Simp lite и в целом возник вопрос написания скрипта, значение которого при значении А=0 имеет значение 0, а когда А=1, то значение последовательно и циклически меняется с 1 до 4.

В целом как я себе представляю это типа так :)
Если А=0 значит 0;
Если А=1 значит (запуск счетчика) 1, 2, 3, 4, 1, 2, 3, ....

p.s. к этим значениям мною привязаны картинки в разных циклах работы, и сложив все в кучу получится что при 0 картинка неподвижна, а при 1 "типа движется".

Буду признателен за помощь.
...
Рейтинг: 0 / 0
17.10.2012, 12:48
    #38002195
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KNОформляю Скада-систему Simp lite и в целом возник вопрос написания скрипта, значение которого при значении А=0 имеет значение 0, а когда А=1, то значение последовательно и циклически меняется с 1 до 4.

В целом как я себе представляю это типа так :)
Если А=0 значит 0;
Если А=1 значит (запуск счетчика) 1, 2, 3, 4, 1, 2, 3, ....

p.s. к этим значениям мною привязаны картинки в разных циклах работы, и сложив все в кучу получится что при 0 картинка неподвижна, а при 1 "типа движется".

Буду признателен за помощь.Не факт, что понимаю правильно, но...
Код: plaintext
1.
2.
3.
4.
int Count(int A){
    static count = 4;
    return (A==0) ? 0 : (count = (count%4) +1);
}
...
Рейтинг: 0 / 0
17.10.2012, 13:01
    #38002231
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Abstraction
Код: sql
1.
(count = (count%4) +1)


Код: sql
1.
count++%4;


Более сишно выглядит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.10.2012, 13:17
    #38002262
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Dimitry Sibiryakov, это вместо всей этой строчки?

Эм... и значение этого цикла при А=1 будет последовательно менятся с 1 до 4?

просто попробывал набрать это... как то все не реагирует... может в более примитивной форме это все написать можно :)
...
Рейтинг: 0 / 0
17.10.2012, 13:18
    #38002269
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Код: plaintext
1.
2.
  count++;
  count&=3;
...
Рейтинг: 0 / 0
17.10.2012, 13:20
    #38002277
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
m_Sla,

прости но сложно представить что в конечном итоге должно получится.. прошу полностью скрипт выложить.
...
Рейтинг: 0 / 0
17.10.2012, 13:25
    #38002286
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KN, тебе Abstraction написал. Остальное это так, "извращения" всякие.
...
Рейтинг: 0 / 0
17.10.2012, 13:25
    #38002288
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KN, бери вариант который предложил Abstraction. Если тебе его
сопровождать то код должен быть понятен. Трюкачество с битовыми
операциями конечно интересно но если деление по модулю 4 надо будет заменить
на любое другое то нужно будет менять код. А так - меняется только одна константа.
...
Рейтинг: 0 / 0
17.10.2012, 13:42
    #38002339
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KNDimitry Sibiryakov, это вместо всей этой строчки?

Эм... и значение этого цикла при А=1 будет последовательно менятся с 1 до 4?

просто попробывал набрать это ... как то все не реагирует... может в более примитивной форме это все написать можно :)Э-э-э... где именно набрать? Там должно быть static int count=4;, в нынешнем варианте должна быть ошибка компиляции, а не "не реагирует".
...
Рейтинг: 0 / 0
17.10.2012, 13:43
    #38002341
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Dimitry SibiryakovAbstraction
Код: sql
1.
(count = (count%4) +1)


Код: sql
1.
count++%4;


Более сишно выглядит.

Только надо помнить что count должен быть unsigned иначе будет UB (переполнение signed int)
...
Рейтинг: 0 / 0
17.10.2012, 13:43
    #38002344
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
m_Sla
Код: plaintext
1.
2.
  count++;
  count&=3;

Только наоборот. Нам же нужно от 1 до 4, а не от 0 до 3.
...
Рейтинг: 0 / 0
17.10.2012, 13:49
    #38002361
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Anatoly MoskovskyТолько надо помнить что count должен быть unsigned иначе будет UB
(переполнение signed int)
А, да, точно, был неправ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.10.2012, 13:51
    #38002367
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Abstractionm_Sla
Код: plaintext
1.
2.
  count++;
  count&=3;

Только наоборот. Нам же нужно от 1 до 4, а не от 0 до 3.Ага, надо команды местами поменять.
...
Рейтинг: 0 / 0
17.10.2012, 14:15
    #38002434
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
int Count(int A){
static count = 4;
return (A==0) ? 0 :
count&=3;
count++;
}


Вот так?)
...
Рейтинг: 0 / 0
17.10.2012, 14:21
    #38002450
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KN
Код: plaintext
1.
2.
3.
4.
5.
6.
int Count(int A){
    static count = 4;
    return (A==0) ? 0 : 
    count&=3;    
    count++;
  }




Вот так?)1) Используйте тег SRC для оформления кода.
2) Нет, не так.
3) Если попробуете так, компилятор должен выдать ошибку компиляции. Он её выдаёт?
...
Рейтинг: 0 / 0
17.10.2012, 14:27
    #38002474
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KN, до конца понимаешь, как этот код работает? Т.е. ты понимаешь, что если завтра тебе надо будет счетчик от 1 до 10, то этот код придется переписывать.
А в коде Abstraction до конца разобрался. В нем при изменении диапазона исправить надо только одно число. Если и в его коде не разобрался, пиши еще проще:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int Count(int A)
{
    static count = 0;
    if(A==0) return 0;

    count++;
    if(count>4) count=1;

    return count;
}
...
Рейтинг: 0 / 0
17.10.2012, 14:30
    #38002487
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
C этого надо было начинать.
...
Рейтинг: 0 / 0
17.10.2012, 14:30
    #38002489
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Код: plaintext
1.
2.
3.
4.
5.
6.
int Count(int A){
    static count = 4;
    return (A==0) ? 0 : 
    count&=3;    
    count++;
  }




Строка: 2, Ошибка: ';' expected
...
Рейтинг: 0 / 0
17.10.2012, 14:31
    #38002495
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
static int count наверное.
...
Рейтинг: 0 / 0
17.10.2012, 14:34
    #38002510
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int Count(int A)
{
    static count = 0;
    if(A==0) return 0;

    count++;
    if(count>4) count=1;

    return count;
}


Строка: 10, Ошибка: '{' expected
...
Рейтинг: 0 / 0
17.10.2012, 14:39
    #38002528
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KN,

Ладно, зайдём с другого конца. Можете написать функцию, которая бы при подаче на вход аргумента, равного 0, возвращала бы 0, а при подаче любого иного аргумента - возвращала бы 1?
...
Рейтинг: 0 / 0
17.10.2012, 14:41
    #38002535
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Когда в этом несчестном симплайте начинаешь писать этот код в открывшемся окне показывают для примера вот такой код:)
Может что то вам скажет.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/* Пример C++ Script */
{
  /* присвоить переменной In1, значение переменной канала*/
  Double In1=ReadValue("Имя канала");
  /* присвоить переменной In2, значение переменной канала */
  Double In2=ReadValue("Имя канала");
  Double Out1=In1+In2;
  /* записать значение переменной Out1 в канал*/
  WriteValue("Имя канала",Out1);
}



По всей видимости нужно мою переменную определить а затем сравнить и при условии что она не равна 0 записывать в out1 последовательно 1 2 3 4
...
Рейтинг: 0 / 0
17.10.2012, 14:45
    #38002546
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
однако значение моего канала либо 0 либо 1
...
Рейтинг: 0 / 0
17.10.2012, 15:38
    #38002705
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Oleg_KN, может ну его в СКАДЕ на С писать. Может на контроллер эту функцию воткнуть, а в СКАДЕ готовое значение с контроллера получать?
...
Рейтинг: 0 / 0
17.10.2012, 15:58
    #38002758
Oleg_KN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
небольшой вопрос С++ циклический счетчик
Дело в том что это все делается для анимации технологического процесса, к сожалению эта СКАДА не потдерживает gif-файлы, поэтому приходится самому мини анимацию собирать. Это было уже реализовано, но случилось так что вышел из строя жесткий диск, собрал всю систему на другом... и все бы ничего но я не знаю как сделать обратно этот счетчик. На данный момент все работает просто по цвету) к примеру серый цвет оборудование выключено, зеленый - работает.... не очень) хочется все же анимированную технологию.

Суть системы: с контроллера приходит сигнал под именем А(либо 0 либо 1), этот сигнал обрабатывается ОПС сервером и передается в СКАДА систему. В скада системе создаю виртуальный канал В и значение этого виртуального канала должно менятся при А=1.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / небольшой вопрос С++ циклический счетчик / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]