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

Kategorien

0 Pluspunkte 0 Minuspunkte
65 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?
...