2016-12-07 4 views
2

Поскольку существует технически 4 типа петель (для, while, repeat и goto/lbl), какой из них самый быстрый для использования «бесконечно»? Вот что я имею в виду:Какова самая быстрая бесконечная петля в TI-84 + Basic?

while 1 
End 

repeat 0 
End 

lbl 1 
goTo 1 

for(n, 1, [number large enough to function as practically infinite] 
End 

Какой из них самый быстрый, или есть еще более быстрый?

+3

Каждый раз, когда калькулятор попадает в инструкцию goto, он начинается с самого начала программы и работает до тех пор, пока не найдет lbl. Лучше всего избегать gotos, если только lbl не находится в самом начале программы. – bearacuda13

+0

Если это в начале, все еще медленнее, чем во время повтора? – TrumpetDude

+0

Я бы предположил, что это так. Я не знаю точно, но если повторить 0, то End будет объединен в три байта, тогда я подумаю, что lbl1, а затем goto1 будет четыре. – bearacuda13

ответ

4

С точки зрения размера и скорости, петли повтора и while являются самыми быстрыми.

While 1 и Repeat 0 оба являются 2 байтами, а End равно 1. В терминах пространства они равны 4 байтам.

С точки зрения скорости, то же самое верно. Просто попробуйте сделать простую программу, которая зацикливается до бесконечности и время ее.

TL; DR: While 1: End и Repeat 0: End

1

Технически быстрым является:

AsmPrgm 
18FE 

, который должен быть запущен в качестве программы сборки.

Это использование сборки Z80, чтобы создать цикл бесконечного (неустойчивого, за исключением кнопки сброса). Код запускается непосредственно процессором, поэтому ОС не нужно тратить время на его интерпретацию.

+1

«loop: jr loop» - 12 циклов на итерацию. «loop: jp loop» равен 10. Но самый быстрый цикл Z-80 - «ld hl, loop; loop: jp (hl)» в 4 циклах на итерацию. Тем не менее, я не знаю достаточно о TI-84 + BASIC и его AsmPrgm, чтобы выразить те петли, которые требуют абсолютных адресов. –

+0

Хорошая точка. Значение 'loop' зависит от вашей версии ОС и отличается на калькулятор. Конечно, мой ответ также требует «Asm84CPrgm» вместо «AsmPrgm», если вы используете TI-84 с цветным дисплеем. – fuzzything44

Смежные вопросы