Цитата:
Сообщение от Roll4Repairs
1) Я хотел сделать программу, реагирующую на изменение значения переменной, если она больше или меньше 1.7 и -1.7 .При этом я её меняю кнопками влево-вправо по 0.1 .
Но у меня почему-то прибавляется не ровно 0.1, а чуть больше, из-за чего когда у меня переменная должна быть равна 1.7, она равна 1.700..03 и выполняются действия как если бы она была больше 1.7. Приложил скрин, могу и проект скинуть если надо. Я неправильно использую блок Reg?
|
Азбука программиста гласит, что числа с плавающей точкой не бывают точными. У них всегда есть погрешность в каком-либо знаке. Даже в суперкомпьютерах с их тысячами процессоров и петафлопами производительности числа с плавающей точкой имеют ошибки. Не в 4-6 знаке, как положено по стандарту 32-хразрядных чисел, применяемых у нас, а в 20-30-40 и далее знаке после запятой. Но ошибка есть всегда - это ограничение нашей вселенной.
Поэтому с числами с плавающей точкой всегда работают после их приведения к определённой точности. Либо просто избавляются от таких чисел.
В вашем случае вполне нормально сделать уставку целочисленной от -17 до 17. И лишь на выходе алгоритма преобразовывать её в real и делить на 10. А то и вообще все сравнения сделать в целых числах, вашему алгоритму всё равно, с чем работать, с -1.7..1.7 или -17..17.
Цитата:
Сообщение от Roll4Repairs
2). Я хочу единожды выводить надпись на экран при запуске контроллера (а не постоянно). Я знаю что для этого мне понадобится блок Rise, меня интересует есть ли возможность привязать какое-либо действие к первоначальной загрузке контроллера?
|
Raise вам даёт событие "включение контроллера". Реагируйте на него как вам нужно. Делайте то, что вам нужно.
Цитата:
Сообщение от Roll4Repairs
Кстати, я просмотрел макрос по созданию меню( http://forum-segneti.1gb.ru/showthread.php?t=865), меня смутило что Enable у SCREEN постоянно выставлен в 1, в хелпе ведь написано что это очень кушает производительность и так не рекомендуется делать. Или я чего-то упустил?
|
Там много блоков SCREEN(). Я начну вас лучше понимать, если мы с вами не будем играть в загадки и будем писать всю информацию за один раз и сразу.