Struktogramme

Neue Frage »

Auf diesen Beitrag antworten »
ManuP Struktogramme

Meine Frage:
Kann jemand für Normalbürger erklären, wie man Struktogramme richtig erstellt?


Meine Ideen:
Dass Werte an Variablen übergeben werden ist mit klar, jedoch fehlt mir die Logik dahinter.
Ich füge ein Beispiel an, welches meine Tutoren stets bemängeln, für mich jedoch macht es Sinn.
Es soll die Matrixspur berechnet und als Summe ausgegeben werden.
 
Auf diesen Beitrag antworten »
ed209

wow, wo wird denn sowas noch gelehrt? :O
Auf diesen Beitrag antworten »
Karlito

Hallo,

Wenn ich es richtig verstehe, versuchst Du mit 2 Schleifen über die gesamte Matrix zu iterieren und berechnest die Spur, indem Du s immer dann um den Wert der Zelle in der Matrx erhöhst, wenn die beinden indizes übereinstimmen. Das kann ich aus deinem Struktogramm jedoch nicht lesen.

Hier meine Probleme mit deiner Darstellung:
Problem 1: in den Schleifenköpfen exisitiert nur eine Zuweisung, das führt zu einer Endlosschleife oder unbestimmten Verhalten
Problem 2: Der Ausdruck 1(1)M_nn ist unklar (mir zumindest)
Problem 3: n und m werden immer die selben Werte Zugewiesen
Problem 4: der Ausdruck n_mn ist nicht eingeführt

Bei Fragen, gerne nachfragen. Augenzwinkern

@ed209: Überall smile Vor allem aber in Berufsschulen reiten die auch auf den Dingern rum. Ich finde es tw gar nicht so dumm, da es der Kommunikation dient, wenn man einfach nur einen Algorithmus darlegen will. Vor allem wenn man mit Nichtinformatikern spricht. Besser ist an dieser Stelle aus Meiner Sicht nur noch der Programmablaufplan, da er den Verlauf des Kontrollflusses besser visualisiert.

Gruß,

Karlito
Auf diesen Beitrag antworten »
ManuP

Ich muss es im Zuge meines Fernstudiums verstehen lernen... Zunge raus
Kennst ihr da vielleicht eine Seite, wo sowas für Normalbürger erklärt wird?

"Problem 1: in den Schleifenköpfen exisitiert nur eine Zuweisung, das führt zu einer Endlosschleife oder unbestimmten Verhalten"

Was sollte ich dort noch initialisieren? Die Indizies werden ja erst noch gesuch...

"Problem 2: Der Ausdruck 1(1)M_nn ist unklar (mir zumindest)"

Das ist die Schleifenbedingung: Starte an Position 1 und gehe in einer (1) Schritten bis zum Ende der Matrix M_nn. Nicht richtig?

Problem 3: n und m werden immer die selben Werte Zugewiesen

m und n werden in jedem Schleifenduchlauf neu zu gewiesen, so sollte es zumindest sein.

Problem 4: der Ausdruck n_mn ist nicht eingeführt

Wie kann ich darstellen, dass genau der Wert, welcher im Zeilen- und Spaltenindex den gleichen Wert hat, zur Summe ´s`addiert werden soll?

Wie ihr seht hab ich da wohl noch einiges an Nachholbedarf, meine Tutorin macht schon geaume Zeit ein ratespiel mit mir und ich steig nicht so recht dahinter...
Bin für jede Hilfe Dankbar!

Grüße Wink
Manu
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

Sorry, dass ich erst jetzt dazu komme...

Ich finde Struktogramme sind auf Wikipedia recht gut erklärt.

An den Schleifenköpfen ist es glaube besser wenn du beschreibst, was du an dieser Stelle machst anstatt irgendeine Notation zu verwenden, die unklar sein könnte.

Die Zuweisung für n und m bleib weiterhin unklar. Wird der Wert der Zelle zugewiesen oder der Index? Da in beiden Fällen die Zuweisung gleich ist, muss ich davon ausgehen, dass 1(1)M_nn die gesamte Matrix abläuft und nicht nur die einzelne Spalte oder Zeile. Die würde keinesfalls dazu führen, dass die Spur errechnet wird, da nicht nur die Diagonale betrachtet wird.

Wie könnte also eine Lösung aussehen? Eine Matrix wird oft durch ein 2 dimensionales Feld repräsentiert. Der Zugriff erfolgt dann über Matrix[Zeilenindex][Spaltenindex]. Außerdem ist ja die Spur die Summer der Werte der Diagonalen der Matrix. Dazu braucht man nur die Zellen aufaddieren, bei denen Zeilen- und Spaltenindex gleich sind. Meine Lösung habe ich angehängt.

Solltest Du noch fragen haben, kannst du diese gern hier stellen.

Gruß,

Karlito
Auf diesen Beitrag antworten »
ManuP

Hallo Karlito,

eine Frage hab ich da noch:

i ist die Zählvariable der Schleife und gleichzeitig Matrix[Zeilenindex][Spaltenindex]?
Verstehe ich das richtig?

Danke!
...es wird langsam heller...im Dunkeln smile
Auf diesen Beitrag antworten »
Karlito

Hallo ManuP,

i ist eine Variable, welche eine Zahl als Inhalt hat. Wenn die Matrix M als zweidimensionales Array repräsentiert ist, kann man mit M[i][j] auf die i-te Zeile und die j-te Spalte zugreifen. Zumindest vereinfacht. In der Realität ist es meist so, dass man je noch 1 abziehen muss, da die erste Zeile und die erste Spalte meist den Index 0 haben.

Alles klar?

Ich rate Dir auch einfach mal ein Lehrbuch zu nehmen und etwas zu programmieren. Deine Fragen deuten darauf hin, dass du noch nie programmiert hast.

VG,

Karlito
Auf diesen Beitrag antworten »
ManuP

Hallo nochmal smile ,

danke für die Hilfe, ich werde deinem Rat folgen und erstmal ein wenig c++ praktizieren. Daumen hoch

Ich wünsche euch schon mal schöne Feiertage und einen guten Rutsch in 2014!!!

Prost
Auf diesen Beitrag antworten »
Karlito

Hallo,

Danke, ebenfalls.

Beste Grüße,

Karlito
 
Neue Frage »
Antworten »


Verwandte Themen