SWRH      Заведение элемента таблицы

 SYSTEM SWRH
 SWAP   St

 <SWRH /St/(Ez)Ex>

   Если в таблице с именем St не было элемента с именем Ez, то он заводится.
   Новому элементу присваивается номер, который в виде символа-целого числа
   выдается в поле зрения в качестве результата замены процедуры.
   Если в таблице не хватает места, то она расширяется на 50 элементов.
   Содержимое элемента устанавливается равным Ex, либо если элемент уже
   имеется в таблице, то производится обмен его содержимого на новое Ex,
   а старое содержимое элемента выдается в поле зрения вслед за номером
   элемента.

   При расширении таблицы могут возникнуть следующие ошибки:
   -"недопустимый размер таблицы <имя таблицы>" -
       если новый размер таблицы превысит 2730 элементов;
   -"не хватает памяти под таблицу <имя таблицы>" -
       если нет достаточного количества свободной памяти для размещения
       расширенной таблицы.

   Значение:  Результатом замены является номер элемента в виде символа-
              целого числа, за которым может следовать старое содержимое
              элемента таблицы.

  -------------------------------- Пример ----------------------------------

         В нижеприведенной рефал-программе, выполняются следующие действия:
         образуется таблица с именем "tname" размером в 5 элементов,
         заводятся три элемента, распечатывается содержимое таблицы,
         считывается содержимое первого элемента и добавляется к содержимому
         третьего элемента. Затем из таблицы исключается второй элемент
         и снова распечатывается содержимое таблицы.

         mod1  START
               SYSTEM  NEWT,PRTH,SWRH,RDRH,SWRF,PTRH
               ENTRY  task
               SWAP   tname
        *------------
        TASK   =   <NEWT /tname//5/><tabl /tname/><PRTH /tname/>
        *------------
        tabl
            St =   <SWRH St('abc')'r'(/8/'d')>                   +
                   <SWRH St((/124/()'t'))'xyz'>                  +
                   <SWRH St('element12j')>                       +
                   <PRTH St>                                     +
                   <PTRH St(/3/)<RDRH st('abc')>>                +
                   <SWRF St(/2/)>
               END

Seealso:



This page last updated on Fri Nov 30 11:06:55 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster