[Frage] Code verstehen und in Struktogramm umwandel

11/10/2011 13:26 cornrock#1
Hi!
Ich hab folgendes Problem: 3 Geschäfte (g1,g2,g3) haben jeweils 7 Artikel (a1,a2,...,a7) welche jeweils zu einer menge M (m1,m2,m3) eingekauft werden müssen. Jedes Geschäft hat für einen Artikel einen Unterschiedlichen Preis, es ergibt sich also (a1g1, a1g2, a1g3 ...).

Daraus möchte ich jetzt ein Struktogramm erstellen, welches mir alle Möglichen Kombinationen aus Artikeln, Mengen und Geschäften mit den Preisen ausrechnet. Dazu habe ich einen Code bekommen, welchen ich leider nicht verstehe

Code:
for(Startartikel iShopA; iShopA <= anzahl_der_artikel, i++){

double Preis_ShopA = Preis_von_iShopA;

for(Startartikel iShopB; iShopB <= anzahl_der_artikel, i++){

double Preis_ShopB = Preis_von_iShopB;

for(Startartikel iShopC; iShopC <= anzahl_der_artikel, i++){

double Preis_ShopC = Preis_von_iShopC;

for(Startartikel iShopD; iShopD <= anzahl_der_artikel, i++){

double Preis_ShopD = Preis_von_iShopD;

<< Speichere Kombination {Preis_ShopA, Preis_ShopB, Preis_ShopC, Preis_ShopD} >>

}
}
}
}

<<Kombinationen sortieren >>
<<Günstigsten Preis ausgeben >>
Kann mir jemand weiterhelfen? Mir fehlt da leider die zündende Idee, wie ich quasi die Schleife für das Struktogramm erstelle, welches mir alle Kombinationen erstellt und ausrechnet :/
Als kleinen Anreiz: Die 78eg sind nicht festgewachsen an meinem Account, für den guten Ansatz/Lösung/Erklärung gibts sicherlich eine dementsprechende Entlohnung :)
11/10/2011 16:40 Muddy Waters#2
Nur damit die Begriffe klar sind: ein Stuktogramm macht in dem Sinne nichts, es ist lediglich eine Möglichkeit der abstrakten Darstellung von Programmen oder Programmteilen. Nur dein Programm macht etwas und du kannst es wahlweise in Stuktogrammform darstellen, sofern du es denn musst (ich musste es während meiner zwei Module Informatik auch regelmäßig machen, insofern leide ich mit dir, ich fand es jedenfalls immer ziemlich obsolet).

Zum Problem:
Verstehe ich es richtig, dass es im Grunde nur darum geht, eine Art Einkaufsliste auf das Angebot von Geschäften anzuwenden, um daraufhin die Preise aller Artikel auf dieser Liste aufzusummieren und danach zu sortieren?
In dem Fall wäre das gaze recht leicht zu lösen.

Du solltest aber mal dazusagen, in welcher Sprache das ganze eigentlich stattfinden soll, denn das wäre im Bezug auf Codebeispiele schon irgendwie essentiell. ;)
11/10/2011 17:18 boxxiebabee#3
Ich hab mal den von dir geposteten Code in ein Struktogramm "umgewandelt".
Für die Zukunft, wenn du sowas am PC machen willst:
Structorizer (für Struktogramme)
Dia (für PAP's)

[Only registered and activated users can see links. Click Here To Register...]
11/10/2011 17:37 cornrock#4
Quote:
Originally Posted by Muddy_Waters View Post
Zum Problem:
Verstehe ich es richtig, dass es im Grunde nur darum geht, eine Art Einkaufsliste auf das Angebot von Geschäften anzuwenden, um daraufhin die Preise aller Artikel auf dieser Liste aufzusummieren und danach zu sortieren?
In dem Fall wäre das gaze recht leicht zu lösen.
Ja, das hört sich nach meinem Problem an :) Jedes Geschäft führt jeden Artikel zu unterschiedlichen Preisen, und ich möchte verschiedene Mengen jedes Artikel einkaufen. Und das Programm soll mir letztendlich die günstigste Methode herausgeben.

Aber: Das Programmieren des Ganzen ist kein Problem, sondern das Struktogramm mit dem Algorithmus! Denn ich weiß nicht, wie ich letztendlich diesen aufs Papier bringe :)

@ Lizzaran
Das Problem war, dass ich den Code nicht verstehe. Es wird zwar richtig sein was du geschrieben hast, jedoch wüsste ich zum Schluss nicht, wie ich das erklären sollte :)
Edit: Danke für den Programmtipp zum Structorizer, den hab ich glaube ich damals schon in der Schule verwenden dürfen :)
11/10/2011 19:06 Muddy Waters#5
Wenn du das ganze schon fertig programmiert hast, könntest du das mal posten? Denn wenn ich die Problemstellung richtig verstanden habe, verstehe ich nicht, wieso man da mit 4 verschachtelten for-Schleifen rangeht, scheint einfach nicht sinnvoll, da das viel einfacher gehen würde.

Sofern du den Quellcode hast, ist der Weg zum Struktogramm eigentlich recht simpel. Du musst lediglich die verwendeten Anweisungen durch die passenden Symbole ersetzen (eine Erklärung letzterer findet sich beispielsweise im zugehörigen Wikipedia Artikel) und deinen Quelltext gegbenenfalls weiter vereinfachen, also dich weiter von der eigentlichen Syntax der verwendeten Programmiersprache entfernen, i.e. abstrahieren und das ganze eventuell noch etwas eindeutschen. Wie genau das aussehen soll, hängt aber wohl von deinem Professor ab, darum kann ich es dir jetzt schlecht sagen, dass du es nach den Vorgaben machen sollst, die mein Prof mir seinerzeit gestellt hat.