Buscar

Binary Search

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

*&---------------------------------------------------------------------*
*& Report ZTREINA_ALN061_AULA06
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztreina_aln061_aula06.
SELECT *
  FROM spfli
  INTO TABLE @DATA(tl_spfli). " Declaração Dinâmica.
SELECT *
  FROM sflight
  INTO TABLE @DATA(tl_sflight). " Declaração Dinâmica.
" Read Table Usando Binary Search
SORT: tl_sflight BY carrid connid ASCENDING,
      tl_spfli   BY carrid connid ASCENDING.
LOOP AT tl_spfli ASSIGNING FIELD-SYMBOL(<fs_spfli>).
  READ TABLE tl_sflight WITH KEY carrid = <fs_spfli>-carrid
                                 connid = <fs_spfli>-connid
                                 BINARY SEARCH
                                 TRANSPORTING NO FIELDS.
  CHECK sy-subrc IS INITIAL. " Para verificar se achou a informação
  DATA(vl_tabix) = sy-tabix.
  LOOP AT tl_sflight ASSIGNING FIELD-SYMBOL(<fs_sflight>) FROM vl_tabix.
    IF ( <fs_sflight>-carrid NE <fs_spfli>-carrid ) OR ( <fs_sflight>-connid NE <fs_spfli>-connid ).
      EXIT.
    ENDIF.
    WRITE: / 'Companhia Aéria: ', <fs_sflight>-carrid,
             'Número do Voo: '  ,<fs_sflight>-connid.
  ENDLOOP.
ENDLOOP.

Continue navegando