Napíšte rekurzívnu procedúru, ktorá pri vstupe čísla n vypíše čísla od n po 1.
       
    Riešenie:     
      - 
        
Pri výpise čísla od n po 1 postupujeme tak, že najprv vypíšeme číslo n, potom n-1, potom n- 2 a takto opakujeme až po 1.  
        Ak by sme si to chceli rozdeliť na menšie podproblémy, tak pri zadaní čísla n vypíšeme číslo n a ostane nám podproblém stupňa n-1.  
        Pomocou rekurzie by sme mali hodnotu n ako parameter procedúry a jej príkazy by boli: najprv výpis hodnoty parametra a potom rekurzívne volanie tej istej procedúry so zníženou hodnotou parametra.  
        Naša procedúra bude vyzerať takto:  
           
     
        
      
        | procedure vypis1(n:integer); | 
       
      
        | begin  | 
       
      
        |   | 
        write(n);  | 
       
      
        |   | 
        vypis1(n-1);  | 
       
      
        | end;  | 
       
     
     
       
      - Takto vytvorená procedúra bude síce 
 vypisovať
 číslo n a nižšie, ale nikdy neskončí. Potrebujeme do procedúry doplniť podmienku ukončenia rekurzívneho vnárania. Keďže máme vypisovať číslo od n po 1, tak ak n bude menšie ako 1, tak sa nemá už nič vykonať. 
 
    Teda podmienka rekurzívneho vnárania bude ak n>0 tak sa vypíš. 
    Upravená procedúra vyzerá takto:  
     
    
      
        | procedure vypis(n:integer); | 
       
      
        | begin  | 
       
      
         | 
        if n>0 then  | 
       
      
         | 
        begin | 
       
      
         | 
          | 
        write(n);  | 
       
      
         | 
          | 
        vypis(n-1);  | 
       
      
         | 
        end; | 
       
      
        | end;  | 
       
     
    Takto definovaná procedúra bude vypisovať čísla od n po 1.   |