Aşağıdaki örnekte SUBROUTINE kullanarak recursive bir şekilde kullanıcıdan alınan rakamdan geriye sayan bir program.
REPORT Z_PERFORM_REC. parameters sayi type i. * perform test. * form test. if sayi > 0. write :/ 'sayi :', sayi . sayi = sayi - 1. PERFORM TEST. else. write 'islem tamamlandi'. endif. endform.
Programda SAYI değişkenini kullanıcıdan alınıyor. Sonra PERFORM komutu ile TEST formunun içine giriyor. Burda SAYI değişkeni 0'dan büyükse SAYI'yi yazdırıyor, sonra '1' çıkartıp tekrar kendini çağırıyor. Ardından tekrar aynı işlem gerçekleşiyor. Bu işlem SAYI'nın değeri 0 olana kadar devam ediyor. Ardından ENDFORM ifadesiyle SUBROUTINE'den çıkılıyor.
No comments:
Post a Comment