Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261
отправлено / posted
Работоспособна ли такая конструкция, или нет. Компилятор говорит что все нормально. Сделано как пример PROGRAM VAR_INPUT Объем_заказа : REAL := 10; END_VAR VAR_OUTPUT Коэф : REAL; END_VAR
while Объем_заказа > 0 do if Объем_заказа > 1 then Коэф = 1; else Коэф = Объем_заказа; end_if; end_while;
END_PROGRAM Спасибо. У меня данная программа не работает, т.е. аргумент -Коэф- не меняет значение
Сообщения / Posts 136 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гусев Александр Петрович
Active Forum Member / Активный участник форума
Участник № / Member № 2148
отправлено / posted
эта конструкция неработоспособна. у вас здесь бесконечный цикл. переменная Объем_заказа не будет обновлять свое значение во время выполнения программы и выхода из цикла и самой программы никогда не произойдет. рассматривайте программу как функцию которая вызывается каждый раз при пересчете каналов. т. е. вам нужно просто написать: if Объем_заказа > 1 then Коэф := 1; else Коэф := Объем_заказа; end_if;
Сообщения / Posts 84 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261
отправлено / posted
предполагается что Объем_заказа будет уменьшаться до 0 с каждым циклом Объем_заказа = Объем_заказа-1. просто не доконца передана программа. Сейчас переделаю. Вопрос в том , что впринципе работоспособна ли конструкция, (как в Си)
Сообщения / Posts 136 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261