Отладка приложения
Отладка формул в калькуляторе "Школьная доска" облегчается тем, что калькулятор выводит сообщения о большинстве возможных синтаксических ошибок и даже о некоторых ошибках времени выполнения (деление на 0, логарифм отрицательного числа и т.п.).
Кроме того возможности отладки расширяются благодаря специфике калькулятора, который по окончании счета выводит ниже формул значения выражений, стоящих в их правой части. Но только тех, которые вычислялись непосредственно перед завершением вычислений. Например, переменная n в приведенном ниже листинге не видна, поскольку вычислялась еще до начала цикла. Переменная m внутри цикла также не видна, так как после последней проверки условия цикла его тело не выполнялось.
m = 0
while(m<10)
m = m+1
wend
Такой алгоритм действий калькулятора объясняется тем, что имеет смысл выводить только последние, окончательные значения переменных. Этим обстоятельством можно воспользоваться, добавляя отладочные строки вида "= интересующая_переменная". Продолжая предыдущий пример, добавим такие строки для n и m и запустим счет:
m = 0
while(m<10)
m = m+1
wend
= n
1
= m
10
Ключевое слово stop.
Чтобы посмотреть на значения выражений в любой момент, а не только в конце вычислений, нужно воспользоваться ключевым словом stop(условие), которое останавливает работу цикла, когда условие выполняется. Например, stop(True) останавливает цикл после каждого шага.
В следующем примере после остановки по условию видны только выражения, подсчитываемые в теле цикла, а их прошлые значения и тем более будущие не видны:
m = 0
while(m<10)
m = m+1
3
stop(m = 3)
-> Циклические вычисления остановлены по условию
n = n+1
4
wend
= m
= n
Замечание. В случае остановки вычислений по ключевому слову stop шаг цикла полностью завершается. Это означает, что калькулятор обрабатывает все тело цикла, а не только формулы, предшествующие ключевому слову stop. Например, в рассмотренном примере при остановке вычисляется не только переменная m, стоящая перед ключевым словом stop, но и переменная n, идущая после.
Совет. После остановки по ключевому слову stop счет можно продолжить, нажав кнопку "Старт". Более того счет можно продолжить, изменив условие остановки.