You are on page 1of 2

****************************************

******** finding PRIME NUMBERs


DATA : t_no TYPE i,
res TYPE p,
pr_no TYPE p,
tag TYPE i.
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS : pr_num TYPE i.
SELECTION-SCREEN END OF BLOCK b1.
pr_no = 1.
WHILE pr_no LE pr_num.
t_no = 2.
tag = 0.
WHILE t_no < pr_no.
res = pr_no MOD t_no.
IF res = 0.
WRITE : / pr_no.
WRITE : 'is not PRIME Number ' COLOR 3 INTENSIFIED OFF.
tag = 1.
EXIT.
ENDIF.
t_no = t_no + 1.
ENDWHILE.
IF tag = 0.
WRITE : / pr_no.
WRITE : 'is PRIME Number ' COLOR 6 INTENSIFIED OFF.
ENDIF.
pr_no = pr_no + 1.
ENDWHILE.
****************************************
******** Fibonacci Series
DATA : lv_old TYPE i VALUE 0 ,
lv_current TYPE i VALUE 1 ,
lv_next TYPE i .
WRITE 'First 10 elements of Fibonacci series : ' .
WRITE : lv_old, lv_current .
DO 8 TIMES.
lv_next = lv_old + lv_current . "3 = 1 + 2
WRITE lv_next . "3
lv_old = lv_current . "lv_old = 2
lv_current = lv_next . "lv_current = 3
ENDDO.
****************************************
******** palindrome
DATA : name TYPE string VALUE 'MADAM',
name2 TYPE string.
DATA : lv_len TYPE i.

lv_len = strlen( name ).
lv_len = lv_len - 1.
WHILE lv_len GE 0.
CONCATENATE name2 name+lv_len(1) INTO name2.
lv_len = lv_len - 1.
ENDWHILE.
CONDENSE name2.
WRITE : name2.

****************************************
******** Paralllel cursor using read statment
LOOP AT it_vbak ASSIGNING <lfs_vbak>.*
* Read the second internal table with BINARY SEARCH
READ TABLE it_vbap TRANSPORTING NO FIELDS
WITH KEY vbeln = <lfs_vbak>-vbeln
BINARY SEARCH.
* Get the TABIX number
lv_tabix = sy-tabix.
* Start the LOOP from the first accessed record in
* previous READ i.e. LV_TABIX
LOOP AT it_vbap FROM lv_tabix ASSIGNING <lfs_vbap> .*
* End the LOOP, when there is no more record with similar key
IF <lfs_vbap>-vbeln <> <lfs_vbak>-vbeln.
EXIT.
ENDIF.
* Rest of the logic would go from here...
ENDLOOP.
ENDLOOP.
******************************************************
******** Paralllel cursor WITHOUT using read statement
SORT: it_vbak BY vbeln,
it_vbap BY vbeln.
lv_tabix = 1. " Set the starting index 1
LOOP AT it_vbak ASSIGNING <lfs_vbak>.
*
* Start the nested LOOP from the index
LOOP AT it_vbap FROM lv_tabix
ASSIGNING <lfs_vbap>.
* Save index & Exit the loop, if the keys are not same
IF <lfs_vbak>-vbeln <> <lfs_vbap>-vbeln.
lv_tabix = sy-tabix.
EXIT.
ENDIF.
* Rest of the logic would go from here...
ENDLOOP.
ENDLOOP.

****************************************
********FIELD-SYMBOLS
DATA: lt_1 TYPE STANDARD TABLE OF t100.
FIELD-SYMBOLS: <ls_1> TYPE t100. "LIKE LINE OF lt_1.

SELECT * FROM t100
INTO TABLE lt_1
UP TO 10 ROWS.
* dynamic access
DATA: lv_field TYPE char30.
FIELD-SYMBOLS: <lv_field> TYPE ANY.
lv_field = 'TEXT'.
LOOP AT lt_1 ASSIGNING <ls_1>.
ASSIGN COMPONENT lv_field OF STRUCTURE <ls_1> TO <lv_field>.
CHECK <lv_field> IS ASSIGNED.
WRITE: / <lv_field>.
ENDLOOP.

You might also like