spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Как мы выяснили в 2019 году, если оператор построения множеств с переменными границами использовался в операторе вывода не в первом аргументе, например,
program main(output);
var a, b:integer;
begin
  a := 1; b := 20;
  writeln(' expect true: ', 5 in [a..b]);
end.

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

Не прошло и 6 лет, как я разобрался. 12 регистр - указатель на текущий файл - нельзя использовать при вычислении выражений: на случай, если выражение записано в операторе write с несколькими аргументами, в котором случае между аргументами он ради экономии не переустанавливается.

В процедуре, конструирующей множества с переменными границами, видим:
 p/pi    :      , name,         . dtran  /01.06.84/
                , ntr , 3
            15  , a-x , -1
                , u1a , *0005b
                , sti , 14
                , ati , 12 . надо , ati, 10
             1  , xta , 24b
            14  , asn , 64-47
            12  , asn , 64 . надо 10, asn, 64
            13  , uj  ,

 *0005b  :  15  , utm , -1
                , xta ,
            13  , uj  ,
                , end ,


Если внести правки, указанные в комментариях, всё работает штатно.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 01:24 am
Powered by Dreamwidth Studios