Marc Otte Geschrieben 20. März 2007 Teilen Geschrieben 20. März 2007 Hallo, ich hoffe das ich hier richtig bin, unser Lehrer kam in den Unterricht und schrieb an die Tafel: SUMME:=1-2+3-4+5-6+7-8+9-10 Aufgabe: Schreibt einen PAP + Struktogramm. Am Ende der Stunde hatten wir mitm Lehrer das hier ausgearbeitet: Dann sagte er uns: Macht euch Gedanken wie das Programm jetzt umgesetzt werden könnte. Das hab ich getan: Viscob und vclinkx sagten "keine fehler" aber beim ausführen hab ich nurn schwarzes DOS fenster und es hängt sich auf. Kann jmd vllt einen Blick darauf werfen und mir vllt helfen Danke im Voraus Grüße Marc Mein Code ************************************* identification division. ************************************* program-id. plusmin. author. M.Otte. ************************************* environment division. ************************************* ************************************* data division. ************************************* working-storage section. 01 summe pic S99. 01 i pic S99. 01 schalter pic 9. ************************************* procedure division. ************************************* anfang. display spaces erase. move 0 to summe. move 0 to schalter. perform varying i from 1 by 1 until i > 10 if schalter = 0 then add summe to i move 1 to schalter else if schalter = 1 then subtract i from summe move 0 to schalter end-if end-if end-perform. display summe. ende. stop run. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 then add summe to iDas ist das Problem. Das muss add i to summe heißen. Bei dir passiert folgendes: Beim 1. Durchlauf (i=1) wird summe (0) zu i addiert, i bleibt 1. Beim 2. Durchlauf (i=2) wird 2 von summe abgezogen, summe wird -2. Beim 3. Durchlauf (i=3) wird summe (-2) zu i addiert, i ist wieder 1 (!) Beim 4. Durchlauf (i=2) wird 2 von summe abgezogen, summe wird -4. Beim 5. Durchlauf (i=3) wird summe (-4) zu i addiert, i wird -1 Beim 6. Durchlauf (i=0) wird 0 von summe abgezogen, summe bleibt -4. Beim 7. Durchlauf (i=1) wird summe (-4) zu i addiert, i wird -3 Beim 8. Durchlauf (i=-2) wird -2 von summe abgezogen, summe wird -2. Beim 9. Durchlauf (i=-1) wird summe (-2) zu i addiert, i wird -3 Beim 10. Durchlauf (i=-2) wird -2 von summe abgezogen, summe wird 0. Beim 11. Durchlauf (i=-1) wird summe (0) zu i addiert, i bleibt -1. Beim 12. Durchlauf (i=0) wird 0 von summe abgezogen, summe bleibt 0. Beim 13. Durchlauf (i=1) wird summe (0) zu i addiert, i bleibt 1. Nach dem 13. Durchlauf ist das Programm im selben Zustand wie nach dem 1. Durchlauf -> Endlosschleife. P.S.: Verschoben -> Delphi/RPG+CL/Sonstige Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MaddinMV Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 perform varying i from 1 by 1 until i > 10 if schalter = 0 then add summe to i move 1 to schalter else if schalter = 1 then subtract i from summe move 0 to schalter end-if end-if end-perform. display summe. ende. stop run. versuchs mal so...: perform vaying i from 1 by 1 until i <= 10 if schalter = 0 then add i to summe move 1 to schalter else if schalter = 1 then subtract i from summe move 0 to schalter end-if end-if end-perform. display summe. ende. stop run. also bei ende. und stop run. bin ich mir nicht sicher....kenns nur mit end-section. oder nur end. ka. bye Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MaddinMV Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Das ist das Problem. Das muss add i to summe heißen. Bei dir passiert folgendes: Beim 1. Durchlauf (i=1) wird summe (0) zu i addiert, i bleibt 1. Beim 2. Durchlauf (i=2) wird 2 von summe abgezogen, summe wird -2. Beim 3. Durchlauf (i=3) wird summe (-2) zu i addiert, i ist wieder 1 (!) Beim 4. Durchlauf (i=2) wird 2 von summe abgezogen, summe wird -4. Beim 5. Durchlauf (i=3) wird summe (-4) zu i addiert, i wird -1 Beim 6. Durchlauf (i=0) wird 0 von summe abgezogen, summe bleibt -4. Beim 7. Durchlauf (i=1) wird summe (-4) zu i addiert, i wird -3 Beim 8. Durchlauf (i=-2) wird -2 von summe abgezogen, summe wird -2. Beim 9. Durchlauf (i=-1) wird summe (-2) zu i addiert, i wird -3 Beim 10. Durchlauf (i=-2) wird -2 von summe abgezogen, summe wird 0. Beim 11. Durchlauf (i=-1) wird summe (0) zu i addiert, i bleibt -1. Beim 12. Durchlauf (i=0) wird 0 von summe abgezogen, summe bleibt 0. Beim 13. Durchlauf (i=1) wird summe (0) zu i addiert, i bleibt 1. Nach dem 13. Durchlauf ist das Programm im selben Zustand wie nach dem 1. Durchlauf -> Endlosschleife. P.S.: Verschoben -> Delphi/RPG+CL/Sonstige aber nicht solange i < 10 ist, da passiert naemlich gar nix, glaub ich ^^ kann mich natürlich irren^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.