Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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:

plusmin.gif

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.

Geschrieben
then add summe to i
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 ;)

Geschrieben


           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

Geschrieben
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^^

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...