РЕАЛЬНЫЕ ПРИМЕРЫ |
На основе изложенного материала рассмотрим несколько примеров программирования в Caper. internal <null> f_sum // в следующем операторе после очередной проверки условия // ожидание нажатия ESC // процедура инкремента переменной sum В следующем примере определяются две процедуры, одна из которых перемещает
“маленький шарик” вправо (Ping), другая – влево (Pong). Обе процедуры могут работать бесконечно (все преобразования расположены внутри бесконечного цикла без принудительного выхода). Возможность завершения программы обеспечивает процедура WaitExit, внутри которой ожидается нажатия клавиши ESC. Еще одна процедура обеспечивает возможность установки асинхронной паузы. #include caper_GDI.ch // объявления блоков // синхронный старт Ping, Pong и WaitExit
* Перемещает "маленький шарик" слева направо * Перемещает "маленький шарик" справа налево #macro K_ESC 27 // Данная процедура организует паузу в миллисекундах, количество |
ФУНКЦИИ УПРАВЛЕНИЯ |
SetParams( SetParamsParall( GetParamsAddr( <имя блока>, <номер параметра> ) возвращает текущее значение параметра с <номер параметра> вызванного блока с <имя блока>; если <имя блока> - NULL, то предполагается текущий блок. GetPrlParamAddr( <номер потока>, <имя блока>, <номер параметра> ) возвращает текущее значение параметра с <номер параметра> вызванного блока с <имя блока> в параллельном потоке с <номер потока>; если <имя блока> - NULL, то предполагается текущий блок. |