Maschinenmodell: Register-Maschine

  • Hallo Leute,
    Ich sitz hier vor einem unlösbaren Problem...
    Befehlsvorrat: ganze 4 stück!

    1) clear name name := 0
    2) incr name name := name + 1
    3) decr name name := name – 1
    4) while name not 0 do ....Anweisungsfolge.... end

    Beispiel:
    Programmbeispiel A := B + C
    clear A

    while B not 0 do
    incr A
    decr B
    end

    while C not 0 do
    incr A
    decr C
    end


    bisher ist mir alles klar, aber dann wirds kompliziert:

    Stellen sie folgende Funktion mit den 4 oben genannten Befehlen dar:
    A := B²


    wie soll das gehn?

  • B² ist B*B. Das da oben kann aber nur + und -. Also zerlgene wir mal das :*
    2 * 2: Rechne 2-1 (also 1) mal +2 => 2 +2 =4
    2 * 3: Rechne 3-1 (also 2) mal +2 => 2 +2 +2 =6
    6 * 5: Rechne 5-1 (also 4) mal +6 => 6 +6 +6 +6 +6 =30
    [EDIT]
    B * B: Rechne B-1 mal +B
    [/EDIT]
    Stichwort: Verschachtelte schleife

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!