### Eingabe-Menge ausgeben print "Eingabe-Menge: {" set S0, "" set I4, 0 set I5, P5 _print_em: inc I4 eq I4, I5, _print_em_ende set S5, P5[I4] print S0 set S0, "," print S5 bsr _print_em _print_em_ende: print "}\n" ### Programm initialisieren new P1, .PerlArray # Potenzmenge new P2, .PerlArray # wird initislisiert mit der "leeren Menge" als einziges Element set P1[0], P2 ### Potenzmenge berechnen set I4, 0 # aktueller Index für P5 set I5, P5 # Elemente in P5 _p: # while inc I4 eq I4, I5, _p_ende set P0, P5[I4] # aktuelles Element der Eingabe-Menge set I0, 0 # aktueller Index für P1 set I1, P1 # Elemente in P1 _p_map: # map set P2, P1[I0] clone P3, P2 # aktuelle Teilmenge aus P1 kopieren, push P3, P0 # um aktuelles Element der Eingabe-Menge erweitern push P1, P3 # und wiederum an P1 anhängen inc I0 ne I0, I1, _p_map bsr _p _p_ende: ### Potenzmenge ausgeben print "Potenzmenge: {" set S0, "" set I0, 0 set I1, P1 _print_pm: print S0 set S0, "," set P8, P1[I0] print "{" set S1, "" set I7, 0 set I8, P8 unless I8, _print_pm_tm_ende _print_pm_tm: set S8, P8[I7] print S1 set S1, "," print S8 inc I7 ne I7, I8, _print_pm_tm _print_pm_tm_ende: print "}" inc I0 ne I0, I1, _print_pm print "}\n" ### Programm beenden end