Vereinfachter PAP

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Antworten
QWERTZ7
Beiträge: 3
Registriert: Di Jun 11, 2013 10:27 am

Vereinfachter PAP

Beitrag von QWERTZ7 » Di Jun 11, 2013 10:39 am

Guten Tag,

ich hoffe ihr könnt mir weiterhelfen :)

Ich möchte einen kleinen Algorithmus mit einem sehr vereinfachten PAP darstellen. Vereinfacht deshalb, weil ich im Rahmen einer Präsentation nicht viel Platz auf der Powerpoint-Folie habe und es nur um die reine Grundfunktion geht.
Der Algorithmus liest eine Datei, die mehrere Benutzernamenenthält, in ein Array ein. Dieses Array wird dann mit einer kopfgesteuerten Schleife durchlaufen und führt für jeden Benutzernamen einen Befehl aus, bis das Array zu Ende durchlaufen ist.
Wie kann ich das nun möglichst knapp darstellen, ohne es falsch zu machen? In meinem momentanen Entwurf fehlt z.B. die Darstellung der Laufvariable.

Danke schonmal!

Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Vereinfachter PAP

Beitrag von cloidnerux » Di Jun 11, 2013 11:09 am

Wie kann ich das nun möglichst knapp darstellen, ohne es falsch zu machen? In meinem momentanen Entwurf fehlt z.B. die Darstellung der Laufvariable.
Indem du unwichtiges außen vor lässt, z.B auch eine Laufvariable. Du kannst dann auch Code zu Aktionen zusammen zu fassen, z.B Datei Öffnen, Zeile für Zeile Lesen und in ein Array speichern durch Daten auslesen substituieren.

Mir fällt auch auf, dass dein PAP in so fern falsch ist, als dass die Aufgabe eine Kopfgesteuerte Schleife fordert:
Aufgabe hat geschrieben:kopfgesteuerten Schleife durchlaufen
Vereinfachen Könntest du es ca so:

Code: Alles auswählen

Start
   |
   v
Solange nicht EOF  <---------------+
   |                                                |
   v                                                |
Zeile Auslesen  ---> Auswerten --+

Ansonsten -> Ende
Redundanz macht wiederholen unnötig.
quod erat expectandum

QWERTZ7
Beiträge: 3
Registriert: Di Jun 11, 2013 10:27 am

Re: Vereinfachter PAP

Beitrag von QWERTZ7 » Di Jun 11, 2013 11:13 am

Danke für die Antwort.

Durch die Raute mit "Ende des Arrays erreicht (EOF)" habe ich eigentlich die Schleifenbedingung gemeint. Wird das nicht ersichtlich?

Gruß

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Vereinfachter PAP

Beitrag von Xin » Di Jun 11, 2013 11:47 am

QWERTZ7 hat geschrieben:Guten Tag,
ich hoffe ihr könnt mir weiterhelfen :)

Ich möchte einen kleinen Algorithmus mit einem sehr vereinfachten PAP darstellen. Vereinfacht deshalb, weil ich im Rahmen einer Präsentation nicht viel Platz auf der Powerpoint-Folie habe und es nur um die reine Grundfunktion geht.
Programm-Ablauf-Plan. Das musste ich erstmal googlen... als ob UML nicht schlimm genug wäre, muss die DIN da natürlich auch noch was eigenes haben...
Der Algorithmus liest eine Datei, die mehrere Benutzernamenenthält, in ein Array ein. Dieses Array wird dann mit einer kopfgesteuerten Schleife durchlaufen und führt für jeden Benutzernamen einen Befehl aus, bis das Array zu Ende durchlaufen ist.
Wenn "Einlesen der Benutzerliste in Array" bereits die Schleife "Lese Zeile, wenn vorhanden" und "Parse Datensatz" und "Kopiere Datensatz in Array" beinhaltet, dann ist das wohl sehr einfach
QWERTZ7 hat geschrieben:Wie kann ich das nun möglichst knapp darstellen, ohne es falsch zu machen?

Code: Alles auswählen

Algorithmus
     |
     v
Ende
QWERTZ7 hat geschrieben:In meinem momentanen Entwurf fehlt z.B. die Darstellung der Laufvariable.
Vielleicht überlegst Du Dir, was dabei eigentlich wichtig ist. Die Darstellung der Laufvariable ist ein Implementationsdetail - anders ausgedrückt: Das interessiert niemanden. Muss die Laufvariable ein integer sein, der als Index fungiert oder ein Iterator-Objekt oder liefert ein forach( item in array )-Konstrukt einfach Referenzen auf die items und Du siehst das Objekt, dass Du als Laufvariable siehst niemals.

Die Frage ist, welche Information möchtest Du abbilden. Seien wir ehrlich, wenn Du für "man iteriere durch die Liste der Bentzer" eine ganze Seite brauchst, ist so ein PAP wohl eher überflüssig und Füllmaterial für eine Folie - worin ich auch vorrangig den Wert von UML und PAPs sehe.

Möchtest Du den Algorithmus für das Parsen der einzelnen Benuztereinträge, die in XML vorliegen als PAP beschreiben, hast Du genug Folien für einen mehrstündigen Vortrag.

Wenn Du also etwas sinnvolles tun möchtest, wirst Du kein UML und kein PAP verwenden. Wenn Du das kurz haben willst, schreib

Code: Alles auswählen

  std::vector< User > users = readUserList();
  for( auto it = users.begin(); it != users.end(); it++ )
    adjustUserOnServer( *it );
Drei Zeilen, gleicher Inhalt, kann von einem Entwickler direkt übernommen werden. Da auf eine Folie 5-7 Zeilen passen, ist sogar noch Platz für eine Überschrift.

Also denk darüber nach, was Du eigentlich demonstrieren willst und konzentriere Dich darauf. Eine Schleife als PAP ist Show, aber kein wirklicher Inhalt. Wenn Du eine Präsentation machst und musst so ein PAP zeigen, dann hast Du eins. Wenn Du möchtest, dass Dir jemand zuhört, wirf eine weiße, leere Folie an die Wand und rede mit den Leuten.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

QWERTZ7
Beiträge: 3
Registriert: Di Jun 11, 2013 10:27 am

Re: Vereinfachter PAP

Beitrag von QWERTZ7 » Di Jun 11, 2013 1:05 pm

Danke, das kann ich in gewisser Weise nachvollziehen, allerdings benötige ich das Ganze im Rahmen meiner IHK-Abschlusspräsentation nächste Woche.

Ich habe halt im Betrieb ein Projekt durchgeführt, welches ich abschließend der IHK präsentieren muss.

Daher ist die Zielgruppe eher ein allgemeines IT-Publikum, teilweise sitzen dort auch "nur-BWLer" im Ausschuss. Deshalb wollte ich von Quellcode weg, hin zu einem recht einfach zu verstehndem PAP.
Des Weiteren war die Erstellung der kleinen Skripte nicht Hauptthema des Projektes, sie dienten nur dazu, den entwickelten Ablauf/ Workflow zu automatisieren. Daher wollte ich mich auf die Kern-Funktion konzentrieren, und ich denke, dass so ein PAP das dann schön visualisiert und meinen Vortrag unterstützt.

Leider kann ich den Anmerkungen und dem Beispiel von cloidnerux nicht ganz folgen.

Gruß

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Vereinfachter PAP

Beitrag von cloidnerux » Di Jun 11, 2013 1:12 pm

Leider kann ich den Anmerkungen und dem Beispiel von cloidnerux nicht ganz folgen.
Ich meinte, dass du eine Fußgesteuerte Schleife in deinem PAP zeigst, du aber eine Kopfgesteuerte schleife präsentieren willst.
Dann bist du zu umständlich. Du liest erst alle Zeilen, speicherst die und interierst erst dann durch dein Array.
Das kannst du abkürzen. Direkt Zeile für Zeile lesen bis zum ende der Datei und direkt die gelesene Zeile weiterverarbeiten.
Dann reduziert sich dein PAP neben Start und Ende zu einer Abzweigung und 2 Aktionen, oder 3 wenn du das Parsen als eigenen Punkt aufführen willst.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Vereinfachter PAP

Beitrag von Xin » Di Jun 11, 2013 1:20 pm

QWERTZ7 hat geschrieben:Ich habe halt im Betrieb ein Projekt durchgeführt, welches ich abschließend der IHK präsentieren muss.

Daher ist die Zielgruppe eher ein allgemeines IT-Publikum, teilweise sitzen dort auch "nur-BWLer" im Ausschuss. Deshalb wollte ich von Quellcode weg, hin zu einem recht einfach zu verstehndem PAP.
Nachvollziehbar, allerdings sollte das PAP etwas darstellen. Dein PAP stellt ein "solange noch nicht alle User bearbeitet sind, bearbeite nächsten User" dar.
Ich denke, die BWLer sollten durchaus wissen, dass Du mehr als einen Dreizeiler geleistet hast, oder?

Daher denke ich, dass dieses PAP aufgrund mangelnder Komplexität keine Folie wert wäre, sondern bestenfalls einen Nebensatz des Sprechers.

Konzentriere Dich auf die Dinge, die Du wirklich präsentieren möchtest. Dass Du eine Liste vollständig bearbeiten kannst, ist - denke ich ich mal - nicht das Ziel der Ausbildung gewesen?
QWERTZ7 hat geschrieben:Leider kann ich den Anmerkungen und dem Beispiel von cloidnerux nicht ganz folgen.
Da es in PAP offenbar keine Schleifen gibt, sondern sie über If-realisiert werden, passt das mit Deinem PAP soweit eigentlich schon, die kopfgesteuerte Schleife ist im Text von Cloidnerux aber schöner beschrieben, wegen des Wortes "solange..."
cloidnerux hat geschrieben:Ich meinte, dass du eine Fußgesteuerte Schleife in deinem PAP zeigst, du aber eine Kopfgesteuerte schleife präsentieren willst.
Ich sehe in dem PAP eine kopfgesteuerte Schleife: Abfrage->Dann und zurück zur Abfrage.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten