Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Beliebteste Tags

verständnis alternativlösung klausur kellerautomat endlicher-automat grammatik regulärer-ausdruck turingmaschine pumpinglemma tipp zahlendarstellung cmos bonusklausur klausurrelevant komplexität schaltwerk binary-decision-diagram deterministisch assembler schaltnetz minimierung sprachen nichtdeterministisch huffman chomsky-normalform fehler-in-aufgabe anwesenheitsübung rechtslinear heimübung flip-flop huffman-kodierung cocke-younger-kasami-algorithmus kontextsensitive-grammatik kontextfreie-grammatik fehlererkennbarkeit hauptklausur vorlesungsfolien polynomialzeitreduktion kontextfreie-sprache faq gleitkommazahl fehlerkorrigierbarkeit rechtslineare-grammatik dateiorganisation cache darstellung-klausur nachklausur xwizard adressierungsarten mealy lambda endliche-automaten konjunktive-normalform pipelining zustände saalübung leeres-wort moore ohne-lösungen betriebssystem speicherorganisation monotone-grammatik 2-komplement hammingzahl lösungsweg fehler pumping-lemma-für-kontextfreie-sprachen pumping-lemma reguläre-sprache monoton kodierung berechenbarkeit klausureinsicht disjunktive-normalform abzählbarkeit info-ii bussysteme rechnerarchitektur entscheidbarkeit komplexitätsklassen chomsky-klassen ableitungsbaum vorlesungsaufzeichnung round-robin aufzählbarkeit minimierung-endlicher-automaten von-neumann-rechner binärzahl entscheidbar programmiersprachen stern-symbol automaten schaltnetze-und-schaltwerke nukit-fragen bewertung zugriffsarten umformung adressierung mengen binär-subtrahieren

Kategorien

0 Pluspunkte 0 Minuspunkte
78 Aufrufe
Kann mir jemand erklären weshalb sich durch das Hinzufügen der Zeile zwischen 2. und 3. die auf R1 bezogene berechnete Funktion des Programms ändert?

Die neue Zeile bezieht sich doch lediglich auf R2 und beim nächsten Durchlauf wird R2 ja sowieso wieder auf 1 gesetzt...

Ich kann auch mit dem Einsetzen von verschiedenen Werten für n nicht festellen wie man neben der Fakultätsfunktion auf 2^n kommt.
in AU-6-3 von  

2 Antworten

0 Pluspunkte 0 Minuspunkte
Hallo,

es stimmt schon, dass sich die neue Zeile nur auf R2 bezieht, allerdings springt man mit dem Sprungbefehl in die 2. Zeile, da sich dort das Label L1 befindet. Man setzt R2 nur einmal ganz am Anfang des Programms auf 1. Deswegen ändert sich auch die Funktion, die berechnet wird.

Viele Grüße

Julia (Tutor)
von uodvo uodvo Tutor(in) (107k Punkte)  
0 Pluspunkte 0 Minuspunkte

Hallo,

 

nachdem du R2 = R2 + R2 gemacht hast, subtrahierst du ja in Zeile 3 noch 1 von R1 und speicherst es dann in R1. Anschließend prüfst du, ob R1 ungleich 0 ist. Falls das der Fall ist (wovon wir bei einem allgemeinen n erstmal ausgehen), sagt uns der Jump-not-zero-Befehl, wir sollen zur Marke L1 springen, also in Zeile 2. Zeile 1 wird also nicht  noch mal abgearbeitet, daher wird R2 nicht auf 1 gesetzt.

 

Viele Grüße 

 

You-Ri (Tutorin) 

von  
0 0
Das habe ich jetzt verstanden. Allerdings kann ich immer noch absolut nicht begreifen wie man auf den Teil 2^n der Funktion kommt. Die Frage lautet ja welche Funktion das Programm bezogen auf R1 berechnet und wenn ich das Ganze mit Werten für n durchspiele kann ich immernoch nur die Fakultätsfunktion erkennen, die das Programm bezogen auf R1 berechnet...

Muss ich also doch zusätzlich auch die Werte in R2 betrachten?
...