Sind diese 2 Struktogramme richtig?

Darie0606

Neues Mitglied
Ich habe für folgende Aufgabe Struktogramme erstellt. Meine Lösung steht auf dem Bild. bin mir nur unsicher, ob das auch wirklich richtig ist.
1732049996587.jpeg
1732050012375.jpeg
1732050130704.jpeg
Danke jetzt schonmal für eure Hilfe
 

mihe7

Top Contributor
bin mir nur unsicher, ob das auch wirklich richtig ist.
Wenn Du die Anweisungen in der Aufgabe zur Funktion absSub() nochmal liest, wirst Du schnell feststellen, dass Deine Lösung sehr wenig damit zu tun hat. Hervorgehoben wurde z. B. extra, dass eine Konstante verwendet werden soll. Eine solche taucht in Deiner Lösung überhaupt nicht auf, somit kann die Lösung nicht richtig sein.

Das zweite Struktogramm soll wohl für die Funktion berechne() sein? Dort verwendest Du Parameter im Aufruf von absSub() - solche gibt es nicht, da zur Übergabe der Werte einfach die Register genutzt werden sollen. Auch sehe ich in der Formel zwei Beträge, wo ist der zweite Aufruf von absSub()? Außerdem führst Du eine Variable Ergebnis ein. Wozu? Reicht Dir R0 nicht?
 

Darie0606

Neues Mitglied
Wenn Du die Anweisungen in der Aufgabe zur Funktion absSub() nochmal liest, wirst Du schnell feststellen, dass Deine Lösung sehr wenig damit zu tun hat. Hervorgehoben wurde z. B. extra, dass eine Konstante verwendet werden soll. Eine solche taucht in Deiner Lösung überhaupt nicht auf, somit kann die Lösung nicht richtig sein.

Das zweite Struktogramm soll wohl für die Funktion berechne() sein? Dort verwendest Du Parameter im Aufruf von absSub() - solche gibt es nicht, da zur Übergabe der Werte einfach die Register genutzt werden sollen. Auch sehe ich in der Formel zwei Beträge, wo ist der zweite Aufruf von absSub()? Außerdem führst Du eine Variable Ergebnis ein. Wozu? Reicht Dir R0 nicht?
Hallo, danke für dein Feedback! Ehrlich gesagt stehe ich gerade ein bisschen auf dem Schlauch und bin unsicher, wie ich die Lösung korrekt umsetzen soll. (das war eigentlich alles was mir dazu eingefallen ist...)
 

mihe7

Top Contributor
Hallo, danke für dein Feedback! Ehrlich gesagt stehe ich gerade ein bisschen auf dem Schlauch und bin unsicher, wie ich die Lösung korrekt umsetzen soll. (das war eigentlich alles was mir dazu eingefallen ist...)
Halte Dich einfach genau an die Aufgabe. Machen wir mal absSub():
Implementiere die Funktion absSub(), die zwei Zahlen, die in den Registern R0 und R1 übertragen wurden, voneinander subtrahiert und anschließend, falls das Ergebnis negativ ist, über eine reverse Subtraktion mit einer Konstanten, einen Absolutbtrag bildet (|R0|) . Das Ergebnis wird in R0 zurückgeliefert.
Also:
1. R0 und R1 voneinander subtrahieren
2. Falls das Ergebnis negativ ist, führe eine weitere Subtraktion mit einer Konstanten durch, so dass der Absolutbetrag herauskommt.
3. Das Ergebnis wird in R0 erwartet.

Bzgl. 2.: es gilt x = -(-x) = 0-(-x). D. h. |x| = 0 - x falls x < 0.

Damit hast Du im Prinzip schon das Struktogramm dastehen. Als Pseudocode
Code:
Funktion addSub():
R0 := R0 - R1
IF R0 < 0 THEN
    R1 := R0
    R0 := 0 // Konstante
    R0 := R0 - R1 // oder addSub() nochmal aufrufen
END IF
END // Ergebnis steht in R0
 

Neue Themen


Oben