Struktogramme |
ed209
Routinier
 
Dabei seit: 07.09.2006
Beiträge: 324
 |
|
wow, wo wird denn sowas noch gelehrt? :O
|
|
08.12.2013 18:32 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
 |
|
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.
@ed209: Überall
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
|
|
08.12.2013 19:45 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
 |
|
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
Karlito hat dieses Bild (verkleinerte Version) angehängt:
|
|
12.12.2013 12:27 |
|
|
ManuP
Grünschnabel
Dabei seit: 08.12.2013
Beiträge: 4
 |
|
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
|
|
12.12.2013 13:13 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
 |
|
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
|
|
12.12.2013 14:43 |
|
|
ManuP
Grünschnabel
Dabei seit: 08.12.2013
Beiträge: 4
 |
|
Hallo nochmal
,
danke für die Hilfe, ich werde deinem Rat folgen und erstmal ein wenig c++ praktizieren.
Ich wünsche euch schon mal schöne Feiertage und einen guten Rutsch in 2014!!!
|
|
17.12.2013 13:50 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
 |
|
Hallo,
Danke, ebenfalls.
Beste Grüße,
Karlito
|
|
17.12.2013 19:11 |
|
|
|