Author Topic: Что такое подпрограмма?  (Read 1341 times)

0 Members and 1 Guest are viewing this topic.

doctor

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Что такое подпрограмма?
« on: April 07, 2019, 03:36:14 AM »
Не подскажите, для чего нужны подпрограммы, и как они работают?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Что такое подпрограмма?
« Reply #1 on: April 07, 2019, 08:47:40 AM »
Они нужны для оптимизации повторяющегося кода.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Что такое подпрограмма?
« Reply #2 on: April 07, 2019, 09:32:31 AM »
На пример, мы имеем скрипт:
Code: (clickermann) [Select]
IF($var = 1)
   MOVE(111,222)
   WAITMS(50)
   LDOWN(111,222)
   WAITMS(50)
   LUP(111,222)
   WAITMS(50)
else
   IF($var = 2)
      MOVE(222,333)
      WAITMS(50)
      LDOWN(222,333)
      WAITMS(50)
      LUP(222,333)
      WAITMS(50)
   else
      IF($var = 3)
         MOVE(333,444)
         WAITMS(50)
         LDOWN(333,444)
         WAITMS(50)
         LUP(333,444)
         WAITMS(50)
      END_IF
   END_IF
END_IF
WAITMS(50)

Чтобы каждый раз не прописывать клики, мы можем его оптимизировать с помощью подпрограммы - "Click":

Code: (clickermann) [Select]
SUB(Click, $par1, $par2) // подпрограмма с параметрами
   // тело выполняется только после вызова
   MOVE($par1,$par2)
   WAITMS(50)
   LDOWN($par1,$par2)
   WAITMS(50)
   LUP($par1,$par2)
   WAITMS(50)
END_SUB

IF($var = 1)
   Click(111, 222) // Вызов нашей подпрограммы
else
   IF($var = 2)
      Click(222, 333) // Вызов нашей подпрограммы
   else
      IF($var = 3)
         Click(333, 444) // Вызов нашей подпрограммы
      END_IF
   END_IF
END_IF
WAITMS(50)

Примечание: Подпрограмма в скрипте должна быть всегда прописана выше вызова.
Пы.Сы. - Это простой пример.
Я не ду... Потому и не бу...