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.)

Schöne Ferien!
 

 

Was passiert?

+4 Punkte
363 Aufrufe
Kann mir irgendjemand vielleicht Schritt für Schritt erklären was passiert, also wie man zunächst mal bei der a) auf die Lösung kommt, auch wenn es etwas Schreibaufwand ist? Ich versteh es einfach nicht...

vielen Dank!
Gefragt 3, Feb 2016 in 2015-H-10 von uedqa uedqa Eins-Komma-Null-Anwärter(in) (1,550 Punkte)  
Das ist ein bisschen arg allgemein gefragt. Wie weit verstehen Sie es denn und ab wo kommen Sie nicht weiter?

Eine Antwort

+2 Punkte

Hallo,

ich komme auch nicht darauf, dass n^2 in Hauptspeicheradresse n gespeichert wird, sondern auf die Speicherung von 2n in Adresse n. Ich habe es mir so überlegt:
 
Annahme: n=2, also R8 = n = 2
 
-lade Registerinhalt R8 in Akkumulator, also R8 = n = 2
 
outerloop
R8 = n = 2 ≠ 0, also springe nicht zur Marke „fertig“
R1 = R8 = n = 2 , also in R1 befindet sich jetzt ebenfalls der Inhalt aus R8, nämlich 2
R2 = R8 = n = 2 , also in R2 befindet sich jetzt ebenfalls der Inhalt aus R8, nämlich 2
R3 = 0 , also speichere in R3 die Konstante 0
 
innerloop 1. Durchgang
R2 + R3 = R3
n    + 0   = R3 
2    + 0   = R3 , also neues R3: R3 = n = 2
 
R1 - 1 = R1
n   - 1  = R1 
2    -1  = R1 , also neues R1: R1 = (n-1) = (2-1) = 1
 
-lade Registerinhalt R1 in Akkumulator, also R1 = (n-1) = (2-1) = 1
R1 = (n-1) = (2-1) = 1 ≠ 0 also springe nicht zu Marke „store“
 
innerloop 2. Durchgang
R2 + R3 = R3
n    + n   = R3 
2    + 2   = R3 , also neues R3: R3 = 2n = 4
 
R1      - 1  = R1
(n-1)   - 1  = R1 
1         -1   = R1 , also neues R1: R1 = (n-2) = (2-2) = 0
 
-lade Registerinhalt R1 in Akkumulator, also R1 = (n-2) = (2-2) = 0
R1 = (n-2) = (2-2) = 0 also springe zu Marke „store“
 
store
speichere den Wert aus R3, also R3 = 2n an Stelle im Hauptspeicher, die durch R2 gegeben ist, also R2 =n
R8 - 1 = R8
n   -  1 = R8
2   -  1 = R8, also neues R8: R8 = (n-1) = (2-1) = 1
-lade Registerinhalt R8 in Akkumulator, also R8 = (n-1) = (2-1) = 1
springe zu Marke „outerloop“
 
Also wäre der erste Durchgang von „outerloop“ jetzt beendet.
Wo liegt der Fehler?
Beantwortet 6, Feb 2016 von utdtz utdtz Eins-Komma-Null-Anwärter(in) (3,110 Punkte)  
Ich habe auch dasselbe Ergebnis/denselben Ablauf. Verstehe ebenso nicht, wie man auf n^2 kommt.
Du hast doch alles richtig gemacht. Dein Ergebnis entspricht doch für dein Beispiel n=2 genau R3=2n=2*2=n^2.
Dass hier R3=2n genau n^2 entspricht liegt an deiner Wahl für n. Für größere n hättest du im "innerloop" ja mehr als zwei Durchläuft...
...