Anonymous user
Power set: Difference between revisions
no edit summary
SqrtNegInf (talk | contribs) m (→Module: ntheory: add libheader) |
No edit summary |
||
Line 39:
report z_powerset.
interface set.
class set definition.▼
methods:
public section.▼
exporting
e_set type any table,
returning▼
value(r_set) type stringtab,▼
i_element
get_size
▲ contains_element
returning▼
▲ value(r_contains) type abap_bool,
i_set
exporting
e_elements type any table,
stringify
endinterface.
▲ public section.
interfaces:
methods:
constructor
importing
▲ returning
▲ value(r_is_equal) type abap_bool,
returning▼
returning
value(
Line 86 ⟶ 98:
class
method constructor.
loop at i_elements into data(element).
me->set~add_element( element ).
endloop.
endmethod.
method set~add_element.
if not line_exists( me->elements[ table_line = i_element ] ).
append i_element to me->elements.
Line 101 ⟶ 113:
method set~remove_element.
if line_exists( me->elements[ table_line = i_element ] ).
delete me->elements where table_line = i_element.
Line 108 ⟶ 120:
method set~contains_element.
r_contains = cond abap_bool(
when line_exists( me->elements[ table_line = i_element ] )
Line 116 ⟶ 128:
method set~get_size.
r_size = lines( me->elements ).
endmethod.
method set~is_equal.
if i_set->get_size( ) ne me->set~get_size( ).
r_is_equal = abap_false.
return.
Line 138 ⟶ 150:
method set~get_elements.
endmethod.
method set~stringify.
r_string = cond string(
when me->elements is initial
Line 163 ⟶ 175:
regex = `, $`
with = ` }`).
endmethod.
data(powerset_elements) = value stringtab( ( `` ) ).▼
do lines( powerset_elements ) times.▼
if powerset_elements[ sy-index ] ne `∅`.▼
append |{ powerset_elements[ sy-index ] }{ element }| to powerset_elements.▼
append element to powerset_elements.▼
endif.▼
enddo.▼
endloop.▼
endmethod.
endclass.
Line 168 ⟶ 197:
start-of-selection.
data(result_set) = new
data(set1) = new
data(set2) = new
data(set3) = new
write |𝑷( { set1->set~stringify( ) } ) ->|.
result_set = set1->build_powerset( ).
▲ perform build_powerset using set1
write result_set->set~stringify( ).
new-line.
write |𝑷( { set2->set~stringify( ) } ) ->|.
result_set = set2->build_powerset( ).
write result_set->set~stringify( ).
new-line.
write |𝑷( { set3->set~stringify( ) } ) ->|.
result_set = set3->build_powerset( ).
write result_set->set~stringify( ).
new-line.
▲ data(powerset_elements) = value stringtab( ( `` ) ).
▲ loop at set->get_elements( ) into data(element).
▲ do lines( powerset_elements ) times.
▲ if powerset_elements[ sy-index ] ne `∅`.
▲ append |{ powerset_elements[ sy-index ] }{ element }| to powerset_elements.
▲ else.
▲ append element to powerset_elements.
▲ endif.
▲ enddo.
▲ endloop.
▲ powerset = new set( powerset_elements ).
</lang>
|