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!
 

 

wie kommt man auf n^2?

0 Punkte
83 Aufrufe
Wahrscheinlich habe ich etwas falsch verstanden.

Aber ich fragen mich, wie ich bei dem Programm bzw im Aufgabenteil a) auf n^2 komme? Ich habe hier doch in keine Anweisung eine Opeation bei der ich Mutlipiziere? Wie kann ich dann auf ein n^2 kommen? Ich habe dies so verstanden, dass zu dem Wert in R3 bei jedem Durchlauf der Innerloop ein n addiert wird, dh im 1. Durchgang habe R3 = n, im 2. Durchlauf R3 = 2n ....

​Außerdem frage ich mich, wie man überhaupt in den Teil "store" gelangt?
​Jumpzero heißt doch, dass ich zu store springe, falls der Wert meines Akkumulator (ACC) = 0 ist oder? Aber wie weiß ich denn wann der wert gleich 0 ist, wenn ich zu Beginn keinen konkreten Wert in R8 habe, sonder nur die Angabe dass in R8 = n ist?

​Laut meinem Verständnis wird der Wert in ACC in jedem Schleifendurchlauf -1 genommen?

Vielen Dank für Ihre Hilfe!
bezieht sich auf eine Antwort auf: a): Erklärung des Befehls (STORE,STORE_IND,R3,R2) ?
Gefragt 6, Feb 2018 in 2015-H-10 von drittsemester  

Eine Antwort

0 Punkte
Hallo,

ich beantworter dir jetzt zuerst einmal deine zweite Frage, dann ist auch die erste einfacher zu verstehen.
Du hast ja schon selbst erkannt, dass du von deinem Wert im ACC im endeffekt immer eine 1 abziehst. Da du zuvor einen Wert n in deinen ACC geladen hast, wirst du so lange den Innerloop durchlaufen, bis dein n null wird (JUMPZERO). Das wird der Wert ja dann wenn du n mal  die 1 von n abgezogen hast, also n mal deine innere Schleife durchlaufen hastl Dann springst du zu store (da n-n*1=0).

Nun zu deiner zweiten Frage. Wie du schon erkannt hast wird in jedem Durchlauf deiner inneren Schleife ein n hinzuaddiert. Da wir ja jetzt wissen, dass die innere Schleife n mal durchlaufen wird, wird auch n mal ein n dazuaddiert. Also haben wir n mal n = n ^2.

Ich hoffe das war so weit verständlich,

Liebe Grüße
Verena (Tutor)
Beantwortet 6, Feb 2018 von updrq updrq Tutor(in) (103,620 Punkte)  
...