Marc Otte Geschrieben 20. März 2007 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.
Klotzkopp Geschrieben 21. März 2007 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
MaddinMV Geschrieben 21. März 2007 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
MaddinMV Geschrieben 21. März 2007 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^^
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden