Author Topic: Ошибка GOTO(Metka_1)  (Read 1892 times)

0 Members and 2 Guests are viewing this topic.

Uznayka

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Ошибка GOTO(Metka_1)
« on: March 29, 2015, 11:31:33 AM »
Основная программа:
Code: [Select]
$p="11111"
$i=1
#include "include/prg.cms"
WAIT(3)
$p="22222"
WAIT(3)
#include "include/prg.cms"
WAIT(3)
$p="33333"
WAIT(3)
#include "include/prg.cms"
WAIT(3)
$p="44444"
WAIT(3)
#include "include/prg.cms"
WAIT(3)
$p="55555"
WAIT(5)
Содержимое prg.cms:
Code: [Select]
$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)
Программа зацикливается...
Оказалось дело в имени метки. Убираем знак подчеркивания и всё работает. Надо же мне было так нарваться, полдня потерял...
Может исправление этой ошибки исправит и другие более серьезные.
Программа понравилась. И задумка, и реализация. Жаль много ошибок.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ошибка GOTO(Metka_1)
« Reply #1 on: March 29, 2015, 02:06:45 PM »
Ошибка не в GOTO(Metka_1) а в твоих #include! Порезал на кусочки, думал так проще и понятнее?!

Давай соберем твою мозаику
Code: (clickermann) [Select]
$p="11111"
$i=1

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="22222"
WAIT(3)

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="33333"
WAIT(3)

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="44444"
WAIT(3)

$i=$i+1
GOTO(Metka_1)
Metka_1:
print($p, $i)

WAIT(3)
$p="55555"
WAIT(5)

HALT

И что у нас выходит, а выходит у нас что метка Metka_1: встречается 4 раза за скрипт, что не допустимо! Видимо переход каждый раз осуществляется к первой метке.

Верный способ, использовать подпрограмму.
Code: (clickermann) [Select]
SUB(вызов, $p) // подпрограмма с параметрами
   INC($i,1)
   GOTO(Metka_1)
   Metka_1:
   print($p, $i)
END_SUB

$i=1
вызов(11111)
WAIT(3)

вызов(22222)
WAIT(3)

вызов(33333)
WAIT(3)

вызов(44444)
WAIT(3)

вызов(55555)
WAIT(5)

Ну неужели это так сложно?

Uznayka

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Ошибка GOTO(Metka_1)
« Reply #2 on: March 29, 2015, 08:24:45 PM »
Спасибо! Я видно совсем заработался. Пора отдыхать...
Почему, то решил, что делаю вызов подпрограмм с помощью #include...
А может и действительно для меня это сложно...
Пока...