loop-berechenbare Funktionen



  • Hi,

    Ich habe leider keinen Anfang und kein Ende, darum bitte ich um Hilfe.

    Aufagbe

    a) Zeigen Sie, dass jede loop-berechenbare-Funktion auch durch ein loop'-Programm berechent werden kann, bei dem die Wertzuweisung xi:=xj+1 und xi:=xj-1 durch die Wertzuweisung xi:=xi+1 und xi:=xiersetzt wurden.

    b) Zeigen Sie (zum Beispiel mit Hilfe einer strukturellen Induktion), dass nicht jede loop-berechenbare Funktion durch ein loop''-Programm berechnet werden kann, bei dem die Wertzuwesiung xi:=xj+1 durch die Wertzuweisung xi:=xj ersetzt wurde.

    Gruß Cuculli



  • (vorweg: Bist du dir sicher, daß die Indizes richtig gesetzt sind? "xi:=xi" wäre eine noop.)

    @a: Du mußt die Dekrement-Operation durch Inkrement und Zuweisung realisieren, z.B. so:

    y=0;
    while(y+1!=x)
      y=y+1;
    

    @b: Du mußt beweisen, daß du die Inkrement-Operation NICHT durch die vorhandenen Sprachmittel (und Zuweisung) ausdrücken kannst.

    PS: Und wie bei deinem Kollegen gilt - die korrekte Syntax mußt du aus deinem Skript abschreiben.



  • CStoll schrieb:

    PS: Und wie bei deinem Kollegen gilt - die korrekte Syntax mußt du aus deinem Skript abschreiben.

    Dabei ist allerdings ein bißchen problematisch, daß Du immer while-Programme schreibst. while-Programme lassen sich aber nicht immer als loop-Programme umschreiben. Das ist hier also keine rein syntaktische Frage. Ich denke einfacher wäre es, würdest Du for-Schleifen schreiben. 🙂



  • So weit ist mir die Loop-Programmierung nicht im Gedächtnis geblieben 😉

    OK, dann ein Versuch mit for:

    y=0;
    for(z=0;z!=x;z=z+1)
      y=z;
    

    (wenn mich mein Gedächtnis nicht komplett täuscht, gilt damit am Ende y==x-1)


Anmelden zum Antworten