Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28

Сохранение переменных при условии

06.10.2014, 08:19. Показов 2264. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Короче нужно следующие: при значении "1" переменной №1 значение переменной №2 равнялось "20", при значении "0" переменной №1 переменная №2 принимала исходное значение, любое(например "24") до изменения переменной №1. Делаю на проге CodeSys 2.3 на базе Visual C++. Cоставляю алгоритм работы охранки, типо при единице температура равна 20, при 0 возвращается на ранее заданную.
IF in1=1 THEN
no1:=temp1;
out1:=20;
ELSE IF in1=0 THEN out1:=no1;
END_IF;
END_IF;

in1 - переменная №1
out1 - переменная №2
no1 - переходная переменная
temp1 - константа.

При in1=0 out1=0 , не могу понять в чем причина?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2014, 08:19
Ответы с готовыми решениями:

Сохранение переменных
Мне нужно, что бы переменная сохранялась, тоисть я ввёл cin >> a; и закрыл, а когда открыл что бы она мне вывелась.

Сохранение переменных
Привет, нужна помощь! Как сделать, чтобы программа сохраняла данные переменной перед закрытием? И чтобы при следующем запуске я мог...

Сохранение значений переменных при повторном запуске скрипта
Заметил некоторую странность - то ли это баг, то ли я чего-то не догоняю. Берём скрипт вроде этого: use strict; our $i; $i++; ...

30
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 08:34
KO_Termit, при in1 = 0 вы для no1 не присваиваете значение, но используете его. По-умолчанию в no1 хранится, наверное, 0?
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,233
06.10.2014, 08:39
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if(in1==1)
{
     out1=20;
}else
{
    if(in1==0)
    {
         out1=ishodnoe;
    }else // в остальных случаях?
    {
           // ничего не делаем?
    }
}
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 09:03  [ТС]
Да если бы было все так просто. Опишу задачу яснее мне нужно в переменную №2 записать 20, при это сохранить в этот момент предыдущее значение(допустим "24") при условии "1" в переменной №1, при "0" в пер. №1 это значение(допустим "24") опять записать в пер. №2.
Миниатюры
Сохранение переменных при условии   Сохранение переменных при условии  
0
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,233
06.10.2014, 09:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ishodnoe=24;
if(in1==1)
{
     ishodnoe=out1;
     out1=20;
}else
{
    if(in1==0)
    {
         out1=ishodnoe;
    }else // в остальных случаях?
    {
           // ничего не делаем?
    }
}
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 09:51
Цитата Сообщение от KO_Termit Посмотреть сообщение
Опишу задачу яснее
Как вы думаете, яснее стало? На мой взгялд первое яснее ...
Допустим, задача звучит так: Если входной параметр равен 1, то значение выходного должно быть 20, если входной параметр равен 0, то значение параметра должно остаться прежним. Тогда, если не принципально, чтобы переменная out1 хоть на наносекунды принмала значения 20, то
Code
1
2
3
IF in1=1 THEN
out1:=20;
END_IF;
Если же принципиально надо сначала присвоить переменной out1 значение 20, а потом, если передан 0, то прсвоить переменной out1 старое значение, то так:
Code
1
2
3
4
5
no1:=out1;
out1:=20;
IF in1=0 THEN
out1:=no1
END_IF;
Добавлено через 54 секунды
Ваш этот CodeSys 2.3 на базе Visual C++ вижу впервые, поэтому с синтаксисом мог и накосячить.
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 10:01  [ТС]
Ok, почти все работает с последним кодом, но при 0 равно 24, при 1 равно 20, а когда опять 0 равно 20, а нужно 24!
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 10:12
KO_Termit, Так с этого и нужно было начинать.
Шаг 1: вх. 1 - вых. 20;
Шаг 2: вх. 0 - вых. 24;
Шаг 3: вх. 1 - вых. 20;
Шаг 4: вх. 1 - вых. 20;
Шаг 5: вх. 0 - вых. ?
Что должно получится на шаге 5? 20 или 24? Если 20, как значение предыдущей операции, то код будет такой
Code
1
2
3
4
5
6
7
IF in1 = 1 THEN
no1:=out1;
END_IF;
out1:=20;
IF in1=0 THEN
out1:=no1
END_IF;
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 10:13  [ТС]
Т.е. должна быть 3 переменная, к которой мы бы обращались при определенном условии и хранила значение другой переменной. Суть в чем есть термостат в помещении, которому можно задавать уставку, он уже по своему алгоритму открывать радиаторы или закрывает. У него есть объект связи(переменная) куда можно записать значение уставки. Есть релюшка, которая связанная с считывателем карт доступа, она может выдать в систему 0 и 1. Суть следующая при постановки на охрану шлется 1 в систему(контроллер с кодом программы) и контроллер уже шлет уставку 20 градусов на объект связи термостата, при снятии с охраны на контроллер шлется 0, а на термостат та уставка, которая было до постановки на охрану.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 10:13
Ну это при учете того, что no1 имеет глобальное значение. Если оно каждый раз создается локально, то так не получится. Говорю же, синтаксиса этого языка я не знаю.
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 10:20  [ТС]
Два раза подряд 1 или 0 не может быть очередность только 0 или 1. Может 3 переменная и не нужна, я просто так думаю, могу ошибаться, главное чтобы алгоритма работал так
№1 1=20
№2 0=24
№3 1=20
№4 0=24
№5 1=20
№6 0=24
№... ...=...

Добавлено через 6 минут
Ну а если на шаге 5 захочу 24 например?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 10:20
Тогда последний код должен работать. Но из постановки задачи ясно, что нет смысла каждый раз принудительно присваивать значение 20 переменной out1. Можно написать так
Code
1
2
3
4
5
6
7
IF in1=1 THEN
no1:= out1;
out1:=20;
END_IF;
IF in1=1 THEN
out1:=no1;
END_IF;
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 10:27  [ТС]
не работает последний код
шаг 1 вх 0 - вых 24;
шаг 2 вх 1 - вых 20;
шаг 3 вх 0 - вых 20((

Ну если на 5 строке там IF in1=0 THEN
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 10:37
KO_Termit, ну да, ноль там должен быть. Опечатался ... С данным алгоритмом 20 в no1 может оказаться, если два раза подряд передано значение 1. Код то тривиальный. Поэтому одно из трех:
1. Между шагом 2 и 3 был шаг 2.5, в котором передавалась единица.
2. Когда вы переносили алгоритм с форума в свой код, то оно видоизменился и стал работать не правильно.
3. В этом языке есть особенности, о которых я не знаю, а поэтому они не были мной учетны.
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 10:43  [ТС]
Могу скинуть руководство к программе, синтаксис относится к Visual C++, т.е. может я не в тот раздел пишу?
Вложения
Тип файла: pdf codesys_v23_ru.pdf (3.27 Мб, 7 просмотров)
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
06.10.2014, 10:59
Цитата Сообщение от KO_Termit Посмотреть сообщение
синтаксис относится к Visual C++
Синтаксис никакого отношения к C++ не имеет.
Цитата Сообщение от KO_Termit Посмотреть сообщение
может я не в тот раздел пишу?
Да конечно, не в тот. Вам в раздел "Прочие языки программирования". Судя по тому, что сейчас там онлайн 7 челвоек, из которых 4 в Лиспе, 2 в Фортране, и 1 в Хаскеле, расчитывать вам приходится только на свои силы.
Цитата Сообщение от KO_Termit Посмотреть сообщение
Могу скинуть руководство к программе
Может мне еще и зарплату за вас получить? Читайте это руководство и разбирайтесь. Я так понимаю, это не учебная задача. Вы же вечно не сможете просить форумчан выполнять за вас вашу работу.
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 11:18  [ТС]
На этом форуме все какие-то ушлые, как только о чем-нибудь просишь, сразу о зарплате говорят. Я вас не обижал уважаемый, я только попросил помочь мне и предоставил все чтобы было вам легче это сделать. Могу вас утешить мне ничего не заплатят за эту работу. Я ее делаю от необходимости и безысходности, т.к. никто в конторе не умеет это делать...
0
06.10.2014, 11:48

Не по теме:

KO_Termit, не надо путать понятие помощи и желание переложить свои задачи на кого-нибудь другого. Мое желание помочь уже скатилось к тому, что вы стали исполнять роль интеркативного компилятора: я пишу код, вы проверяете его работоспособность и отписываетесь о результате. Я это воспринимаю, как наглость. Свои соображения, как это должно выглядеть, я написал уже выше. А дальше уже сами читайте документацию и допиливайте программу до работоспосбного состояния.
За сим откланиваюсь

0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.10.2014, 11:56
KO_Termit, опишите нормально, что вам требуется сделать. В виде алгоритма или еще как. А то так вообще ни лешего не ясно.
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
06.10.2014, 12:15  [ТС]
Да то что вы предложили не работает даже в вашем синтаксисе. Если бы вы были правы, то я согласился с выше описанными моими недостатками. Но вы сидя тут, смеете не то что укорять человека, но и с него требовать вознаграждение за мнимую услугу - это называет шарлатанство. За такое в правилах форума должно прописано соответствующие наказание...

Добавлено через 3 минуты
HighPredator
Алгоритм простой:
шаг 1 вх 0 - вых 20;
шаг 2 вх 1 - вых 25;
шаг 3 вх 0 - вых 20;
шаг 4 вх 1 - вых 27; (внешний фактор тем-ру подняли в комнате - т.е. это должна быть перменная не константа и т.д.)
шаг 5 вх 0 -вых 20;
шаг -//- вх -//- вых -//-
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.10.2014, 12:15
Помогаю со студенческими работами здесь

Как найти для этих условии 2 парных чисел а и b при котором выполняется все условии?
Мой пример кода был таким данный момент но не работал. В экране пустота. Ничего не выводится. Где у меня ошибка? Чего исправит? static...

Сохранение переменных
Доброго времени суток народ! Есть такой код,что нужно чтобы он запоминал выбор переменной при обновлении страницы и при следующем заходе...

Сохранение переменных
есть функция которая при нажатии на кнопку 1 открывает кнопку 2, каким образом это можно сохранить что бы при перезапуске программы кнопка...

Сохранение переменных
if ($_GET == "1") { echo "Hello World"; }

Сохранение переменных в файл
Пoдскажите, пожалуйста, как сохранить переменные из скрипта в файл, а потом загрузить их при запуске приложения. (Приложение на hta)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru