Ludwig Mair: Struktogramm - Einfacher Gruppenwechsel

Hi,
bin Programmieranfänger und suche schon seit Stunden im Internet
nache einen Struktogramm eines einfachen Gruppenwechsels.
Leider Fehlanzeige. Ist das Thema zu trivial, oder ist der Gruppenwechsel ausgestorben? Macht keiner mehr Strucktugramme mehr, weil alle so gut sind?
Ich suche verzweifelt nach einen Struktogramm für einen einfachen Gruppenwechsel.
Hat irgendjemand noch so ein Blatt zuhause?

Vielen Dank für die Hilfe
Ludwig

  1. Hallo Ludwig,

    Was ist denn ein Gruppenwechsel? Ich hab etwas recherchiert, aber hab nicht wirklich etwas gefunden.

    Struktogramme macht glaube ich wirklich niemand. Seit dem Informatikunterricht in der Schule habe ich auch keine mehr gesehen.
    Ich sehe auch keinen Sinn darin, da die Dinger nicht anschaulicher sind als Code und auch nicht mehr Semantik enthalten.

    Grüße

    Daniel

    1. Hello,

      Ich sehe auch keinen Sinn darin, da die Dinger nicht anschaulicher sind als Code und auch nicht mehr Semantik enthalten.

      Ob sie nun "Semantik" oder "Grafik" enthalten, ist mir eigentlich quark-egal. Aber sinnvoll sind sie immer noch. Allerdings finde ich bei der Web-Programmierung die Programmablaufpläne für den großen Überblick noch etwas aussagefähiger. Webprogrammierung ist ja auch selten streng struktoriert, sondern man kann in jeder beliebigen Stelle Sprünge ausführen...

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi, Leute
        hääte ja nicht gedacht, daß man darüber so diskutieren kann.
        Erst mal an alle ein Dankeschön.
        Eigentlich suche ich immernaoch nach einer Grafischen Darstellung eines einfachen Gruppenwechsels in Form eines Atruktogramms.

        Mein Problem ist, daß ich Daten aus einer Textfile habe. Und diese dan in dieser Form erhalte:
            [0] => Array
                (
                    [Produkt] => Glas
                    [Niederlassung] =>  Besteller: Spanien
                    [Datum] =>  25.03.2005
                    [Stueck] =>  123

        )

        [1] => Array
                (
                    [Produkt] => Prospekte
                    [Niederlassung] =>  Besteller: Spanien
                    [Datum] =>  25.03.2005
                    [Stueck] =>  4333

        )

        [2] => Array
                (
                    [Produkt] => Becher
                    [Niederlassung] =>  Besteller: Spanien
                    [Datum] =>  25.03.2005
                    [Stueck] =>  5555

        )

        [3] => Array
                (
                    [Produkt] => Glas
                    [Niederlassung] =>  Besteller: Frankreich
                    [Datum] =>  25.03.2005
                    [Stueck] =>  4000

        )

        [4] => Array
                (
                    [Produkt] => Prospekte
                    [Niederlassung] =>  Besteller: Frankreich
                    [Datum] =>  25.03.2005
                    [Stueck] =>  700

        )

        [5] => Array
                (
                    [Produkt] => Bilder
                    [Niederlassung] =>  Besteller: Spanien
                    [Datum] =>  25.03.2005
                    [Stueck] =>  1900

        )

        [6] => Array
                (
                    [Produkt] => Glas
                    [Niederlassung] =>  Besteller: England
                    [Datum] =>  25.03.2005
                    [Stueck] =>  9000
                )

        )

        Ich möchte nun dieses mehrdimensionale aRRAY IN DER fORM AUSGEBEN:
        Abgegebene Bestellungen:
        Produkt 1: Tasse, Gesamtmenge: 280 Stück
        Besteller: Niederlassung Spanien, 12.4.2005, 100 Stück
        Besteller: Niederlassung Frankreich, 11.4.2005, 150 Stück
        Besteller: Niederlassung Italien, 18.4.2005, 20 Stück

        Produkt 2: Prospekt, Gesamtmenge: 8000 Stück
        Besteller: Niederlassung Frankreich, 8.4.2005, 1000 Stück
        Besteller: Niederlassung Italien, 14.4.2005, 2000 Stück
        Besteller: Niederlassung Spanien, 16.4.2005, 5000 Stück

        Nun, bin ich leider Anfänger und häng da.
        Ich hoffe das ist gut genug erklärt, das ist nicht unbedingt meine Stärke, sorry!

        Für Hulfe wäre ich dankbar

        Gruß Ludwig

        1. Hallo Ludwig,

          so auf die Schnelle hingeschrieben würde ich das in etwa so machen (angenommen Du verwendest PHP):

          foreach ($data as $details) {
          foreach ($details as $k => $v) {
            if ($k == "Produkt") {
             $out[$v]['Gesamt'] = $out[$v]['Gesamt'] + $details['Stueck'];
             $out[$v][$details['Niederlassung']] = $out[$v][$details['Niederlassung']] + $details['Stueck'];
             }
            }
          }

          $data = das Array welches Du bekommst
          $out = das was rauskommt

          An welchen Stellen Überprüfungen notwendig sein könnten überlasse ich dir (is_array(), etc.). Genauso das Vorbelegen der Variablen.

          Ok, wenn der Input in folgendem Format vorliegen würde:

          Array
          (
              [0] => Array
                  (
                      [Produkt] => Glas
                      [Niederlassung] => Besteller: Spanien
                      [Datum] => 25.03.2005
                      [Stueck] => 123
                  )

          [1] => Array
                  (
                      [Produkt] => Prospekte
                      [Niederlassung] => Besteller: Spanien
                      [Datum] => 25.03.2005
                      [Stueck] => 4333
                  )
          [...]

          Wäre das Ergebnis (nach ausführen meines Codes):

          Array
          (
              [Glas] => Array
                  (
                      [Gesamt] => 13123
                      [Besteller: Spanien] => 123
                      [Besteller: Frankreich] => 4000
                      [Besteller: England] => 9000
                  )

          [Prospekte] => Array
                  (
                      [Gesamt] => 5033
                      [Besteller: Spanien] => 4333
                      [Besteller: Frankreich] => 700
                  )
          [...]

          Ich möchte nun dieses mehrdimensionale aRRAY IN DER fORM AUSGEBEN:
          Abgegebene Bestellungen:
          Produkt 1: Tasse, Gesamtmenge: 280 Stück
          Besteller: Niederlassung Spanien, 12.4.2005, 100 Stück
          Besteller: Niederlassung Frankreich, 11.4.2005, 150 Stück
          Besteller: Niederlassung Italien, 18.4.2005, 20 Stück
          [...]

          Den Output entsprechend deinen Wünschen zu Formatieren überlasse ich ebenfalls dir.

          Hoffe dir geholfen zu haben.

          Grüsse
          Frankie

          1. Hallo. Frankie
            Super, einfach toll.
            Genau das, was ich mir vorgestellt hatte, eigentlich ganz einfach wenn mans kann. Bist meine Rettung.
            Auch möchte ich mich für deine schnelle klare kurze Lösung bedanken.

            Danke
            Ludwig

            1. Hallo Ludwig,

              Super, einfach toll.
              Genau das, was ich mir vorgestellt hatte, eigentlich ganz einfach wenn mans kann. Bist meine Rettung.

              freut mich, dass ich dir helfen konnte ;-)

              Auch möchte ich mich für deine schnelle klare kurze Lösung bedanken.

              Und ich möchte mich bedanken für dein Feedback. Daran könnten sich andere Fragesteller ein Beispiel nehmen, ich meine jetzt nicht an der Lobhudelei, sondern daran, dass überhaupt eine Reaktion auf einen Lösungsvorschlag erfolgt.

              Viele Grüsse aus dem Süden

              Frankie

              1. Hi,
                ja da hast du sicher recht. Das ist in Foren sicher ein grosses Problem. Aber leider wird sich so etwas nie ändern.
                Wenn ich schon dabei bin, noch eine Frage:
                Kennst du dich mit Smarty aus?
                Ich versuch nähmlich gerade das dabei entstandene Array in ein Template per section zu bekommen und hab da so meine Probleme.
                Kriegs irgendwie nicht angezeigt.
                Gruß Ludwig

                1. Hallo Ludwig,

                  ja da hast du sicher recht. Das ist in Foren sicher ein grosses Problem. Aber leider wird sich so etwas nie ändern.

                  Ja, schaut so aus.

                  Wenn ich schon dabei bin, noch eine Frage:
                  Kennst du dich mit Smarty aus?

                  Nein. Für meine einfachen Ansprüche bastele ich mir meine Templates (noch) selbst.

                  Ich versuch nähmlich gerade das dabei entstandene Array in ein Template per section zu bekommen und hab da so meine Probleme.
                  Kriegs irgendwie nicht angezeigt.

                  Hmmm, wie schon gesagt, keine Ahnung von Smarty und Konsorten ... aber das Array so auszuwerten, dass es irgendwo in ein Schema reinpasst dürfte doch kein Problem sein ...

                  Konkretisiere dein Problem, dann könnte ich (und natürlich auch andere) dir evtl. weiterhelfen.

                  Grüsse
                  Frankie

                  1. Hi, Frank

                    ich möchte es in der Form

                    Abgegebene Bestellungen:
                    Produkt 1: Tasse, Gesamtmenge: 280 Stück
                    Besteller: Niederlassung Spanien, 12.4.2005, 100 Stück
                    Besteller: Niederlassung Frankreich, 11.4.2005, 150 Stück
                    Besteller: Niederlassung Italien, 18.4.2005, 20 Stück

                    Produkt 2: Prospekt, Gesamtmenge: 8000 Stück
                    Besteller: Niederlassung Frankreich, 8.4.2005, 1000 Stück
                    Besteller: Niederlassung Italien, 14.4.2005, 2000 Stück
                    Besteller: Niederlassung Spanien, 16.4.2005, 5000 Stück

                    ausgeben und hab meine Probleme das so hinzukriegen.
                    Zeile 1 krieg ich noch, aber die einzelnen Niederlassungen krieg ich nicht zu fassen, da ja der Key jedesmal anders ist.

                    Gruß Ludwig

                    1. Hallo Ludwig,

                      [...]
                      Produkt 2: Prospekt, Gesamtmenge: 8000 Stück
                      Besteller: Niederlassung Frankreich, 8.4.2005, 1000 Stück
                      Besteller: Niederlassung Italien, 14.4.2005, 2000 Stück
                      Besteller: Niederlassung Spanien, 16.4.2005, 5000 Stück

                      ausgeben und hab meine Probleme das so hinzukriegen.

                      Zeile 1 krieg ich noch, aber die einzelnen Niederlassungen krieg ich nicht zu fassen, da ja der Key jedesmal anders ist.

                      Natürlich ist der Key jedesmal anders. Sind ja auch verschiedene Gruppierungen. Und natürlich darfst Du "meinen" Key nicht 1:1 übernehmen. Aber eigentlich sollte mein Code doch sehr transparent sein, da er auf _deinem_ Input-Array beruht.

                      Und was hat diese Frage mit Smarty zu tun?

                      Grüsse
                      Frankie

                      1. Hi,
                        In Smarty kann man mit sogenannten swctions arrays einlesen.
                        Leider ist die beschreibung etwas dürftig.
                        Aber meine Schwierigkeit liegt in der ausgabe. Da die Keys ja unterschiedlich sind kann ich ja vorher nicht festlegen, daß man z.B. auf $out[italien] zugreifen kann, da dieser ja variabel ist.
                        oder wie gibst du so etwas aus. Wenn ich einen Index von 0 bis ... habe ist das ja ok, aber in diesen fall?
                        Komm da leider nicht weiter

                        Gruß Ludwig

  2. Hello,

    mmhh, liegt es vielleicht auch daran, dass die Dinger "Struktogramm" heißen?

    Wenn Du nun noch verrätst, was Du unter "Gruppenwechsel" verstehst, kann man Dir vielleicht sogar helfen.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Hi,
    erst mal Danke für die rege Diskussion.
    Ich weiß, daß diese Dinger sehr veraltet sind, aber einen Gruppenwechsel auswendig zu lernen istdoch  nicht notwendig, wenn man
    ihn alle 5 jahre mal braucht.

    ICh würde aber gern mal so ein Teil in der Hand haben.

    Gruppenwechsel liegt z.B vor, wenn man die Umsätze von verschiedenen Abteilungen haben will und diese nach Abteilung  oder Umsatz gruppiert.

    1. Hello,

      Die Tabelle muss über die Spalte $gruppe sortiert sein

      $merkgruppe = '';
        solange nicht am Ende der Tabelle
          lese Datensatz
          wenn $gruppe == $merkgruppe
            # selbe Gruppe
          anderenfalls
            # andere Gruppe
            # Gruppensummen rücksetzen
            # $merkgruppe = $gruppe
          --
        ----

      Meintest Du das so?

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
    2. Hallo Ludwig,

      Gruppenwechsel liegt z.B vor, wenn man die Umsätze von verschiedenen Abteilungen haben will und diese nach Abteilung  oder Umsatz gruppiert.

      Hm, für sowas gibt es nen extra Begriff?
      Ich würde das etwa so machen:

        
      var summe = new Object();  
      for(eintrag in tabelle) {  
        if(summe[eintrag.gruppe]) {  
          summe[eintrag.gruppe] = entrag.betrag;  
        } else {  
          summe[eintrag.gruppe] += entrag.betrag;  
        }  
      }  
      
      

      Eine exakte Definition des Begriffs wäre schon interessant, falls es sowas gibt.

      Grüße

      Daniel

      1. 你好 Daniel,

        Gruppenwechsel liegt z.B vor, wenn man die Umsätze von verschiedenen
        Abteilungen haben will und diese nach Abteilung  oder Umsatz gruppiert.
        Hm, für sowas gibt es nen extra Begriff?

        In der Fachinformatikerausbildung - Anwendungsentwicklung wird einem sowas
        beigebracht.

        Ich würde das etwa so machen:
        [...]

        Bei einem Gruppenwechsel geht man davon aus, dass die Gruppen der
        Reihenfolge nach in einem Array vorliegen. Beim klassischen Gruppenwechsel
        arbeitet man mit einer Hilfsvariablen und ohne zusaetzliche Arrays.

        再见,
        克里斯蒂安

        --
        Sobald dir ein Gedanke kommt, lache über ihn.
        1. Hallo Christian,

          Bei einem Gruppenwechsel geht man davon aus, dass die Gruppen der
          Reihenfolge nach in einem Array vorliegen. Beim klassischen Gruppenwechsel
          arbeitet man mit einer Hilfsvariablen und ohne zusaetzliche Arrays.

          Also bei den Beispielen die Ludger verlinkt hat, gibt es ja eine Eingabe und eine Ausgabedatenstruktur.
          Wenn es nur ein Array mit den Daten gibt, verstehe ich noch nicht ganz, was man da dann machen soll.
          Nach einem anderen Kriterium gruppieren (da würde man halt einen Sortieralgorithmus drüber jagen) oder für jede Gruppe eine Eigenschaft berechnen. Bei letzterem sehe ich nicht, wie das vernünftig in place gehen soll. Man will ja als Ausgabe ein Array mit weniger und anderen Elementen, als sie in der Eingabe stehen.

          Grüße

          Daniel

        2. yo,

          In der Fachinformatikerausbildung - Anwendungsentwicklung wird einem sowas
          beigebracht.

          schöne bilder haben wir auch gemalt, aber zumindestents in meiner ausbildung zum Fachinformatiker der Anwendungsentwicklung war von "gruppenwechsel" nie die rede. oder habe ich da etwa wieder geschlafen...

          Ilja

          1. Hello,

            In der Fachinformatikerausbildung - Anwendungsentwicklung wird einem sowas
            beigebracht.

            schöne bilder haben wir auch gemalt, aber zumindestents in meiner ausbildung zum Fachinformatiker der Anwendungsentwicklung war von "gruppenwechsel" nie die rede. oder habe ich da etwa wieder geschlafen...

            Das ist sogar eine Prüfungsaufgabe einer IHK-Prüfung gewesen.
            Man sollte (Struktogramm für ein) Druckprogramm erstellen, dass diesen Gruppenwechsel ermöglicht, auf jeder Seite einen Kopf und einen Fuß und auf der letzten Seite die Gesamtsummen druckt.

            Unter http://www.suicidal.de/index_gr1024_dhtml.htm wird sicher auch noch irgendwo die Lösung sein.

            Leider war die Aufgabenstellung (der Rahmen, in den das Teil passen sollte) schon so verkorkst, dass die Lösung nur sehr umständlich möglich war. Allerdings hat die Prüfungskommission dann nur die Lösungen als richtig anerkannt, die in die Aufgabenstellung gepasst hätten, wenn sie richtig gestellt worden wäre.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
          2. 你好 Ilja,

            In der Fachinformatikerausbildung - Anwendungsentwicklung wird einem
            sowas beigebracht.

            schöne bilder haben wir auch gemalt, aber zumindestents in meiner
            ausbildung zum Fachinformatiker der Anwendungsentwicklung war von
            "gruppenwechsel" nie die rede. oder habe ich da etwa wieder geschlafen...

            Vielleicht ist das regional unterschiedlich? Ich war in Muenster.

            再见,
            克里斯蒂安

            --
            Die Stärke des Geistes ist unendlich, die Muskelkraft dagegen ist begrenzt.
            1. yo,

              Vielleicht ist das regional unterschiedlich? Ich war in Muenster.

              nun, die prüfungen selbst sind bundesweit einheitlich, wenn ich das richtig in erinnerung habe. aber ich würde sogar einen schritt weiter gehen, nicht nur regional unterschiedlich, sondern auch von den tutoren und schulen abhängig, was genau gelehrt wird.

              Ilja

  4. Hi,

    Ist das Thema zu trivial, oder ist der Gruppenwechsel ausgestorben?

    vielleicht hilft sowas:
    http://imeneo.unibw-hamburg.de/lehre/ab-wi96/gr_w1.html

    Gruss,
    Ludger