//-----------------------------------//
//   Продублировать слово,  записан- //
// ное на ленте.  В начальный момент //
// окно  установлено  на первый  его //
// символ.                           //
//-----------------------------------//
 ЭТО Дубль                             
  // Поставить флаг в конец слова      
  Поставить_флаг                       
  // Копировать текст до флага         
  Копировать_слово                     
  // Стереть флаг                      
  Стереть_флаг                         
 КОНЕЦ                                 
//-----------------------------------//
 ЭТО Поставить_флаг                    
  ПОКА НЕ ПУСТО ВПРАВО                 
  ПИШИ | // Поставить флаг и вернуться 
  ПОКА НЕ ПУСТО ВЛЕВО // назад.        
  ВПРАВО                               
 КОНЕЦ                                 
//-----------------------------------//
 ЭТО Копировать_слово                  
  ПОКА НЕ |                            
  {                                    
   ЯЩИК+                               
   Перенести_символ                    
   ВПРАВО                              
  }                                    
 КОНЕЦ                                 
//-----------------------------------//
//   Эта рекурсивная процедура копи- //
// рует символ из ящика в конец тек- //
// ста и возвращает  окно в исходное //
// положение.                        //
//-----------------------------------//
ЭТО Перенести_символ                   
 ВПРАВО                                
 ЕСЛИ ПУСТО                            
  ТО    ЯЩИК-                          
  ИНАЧЕ Перенести_символ               
                                       
  ВЛЕВО // Отложенная команда. Она вы- 
        // полнится столько раз, сколь-
        // ко первая команда ВПРАВО.   
КОНЕЦ                                  
//-----------------------------------//
ЭТО Стереть_флаг                       
 ПИШИ ПУСТО                            
КОНЕЦ                                  
                                       
