Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Death, when unnecessary, is a tragic thing. -- Flint, "Requiem for Methuselah", stardate 5843.7


devel / comp.lang.cobol / Why is my execution order weird

SubjectAuthor
* Why is my execution order weirdBruce Axtens
`* Re: Why is my execution order weirdRick Smith
 `- Re: Why is my execution order weirdBruce Axtens

1
Why is my execution order weird

<611d8589-aed3-4d75-8b29-9b53071140b1n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=354&group=comp.lang.cobol#354

  copy link   Newsgroups: comp.lang.cobol
X-Received: by 2002:a05:622a:40a:b0:31f:878:7bcb with SMTP id n10-20020a05622a040a00b0031f08787bcbmr4953102qtx.627.1658393011753;
Thu, 21 Jul 2022 01:43:31 -0700 (PDT)
X-Received: by 2002:a25:8c07:0:b0:670:85b8:7fd8 with SMTP id
k7-20020a258c07000000b0067085b87fd8mr9772742ybl.375.1658393011344; Thu, 21
Jul 2022 01:43:31 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.cobol
Date: Thu, 21 Jul 2022 01:43:31 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=49.196.18.236; posting-account=1W9SuAoAAAApKJ8N7QNszANYOyWIVzjG
NNTP-Posting-Host: 49.196.18.236
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <611d8589-aed3-4d75-8b29-9b53071140b1n@googlegroups.com>
Subject: Why is my execution order weird
From: bruce.axtens@gmail.com (Bruce Axtens)
Injection-Date: Thu, 21 Jul 2022 08:43:31 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 5251
 by: Bruce Axtens - Thu, 21 Jul 2022 08:43 UTC

It being some years since I studied COBOL full-time (1983-85), I've forgotten more than ever knew. That being the case can some merciful soul tell me why the code at the end gives the following execution output, especially the duplication of
PLAY-YACHT-CHECK WITH 6
THERE ARE 5 X 6 IN 66666
1000-BUBBLE-SORT
[console]
C:\>cobc -xj YACHT.CBL
66666
1000-BUBBLE-SORT
66666
PLAY-YACHT-CHECK WITH 1
PLAY-YACHT-CHECK WITH 2
PLAY-YACHT-CHECK WITH 3
PLAY-YACHT-CHECK WITH 4
PLAY-YACHT-CHECK WITH 5
PLAY-YACHT-CHECK WITH 6
THERE ARE 5 X 6 IN 66666
PLAY-YACHT-CHECK WITH 6
THERE ARE 5 X 6 IN 66666
1000-BUBBLE-SORT
[console]
[code]
IDENTIFICATION DIVISION.
PROGRAM-ID. YACHT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CATEGORY PIC X(12).
01 WS-DICE PIC 9(5).
88 LITTLE-STRAIGHT VALUES 1 2 3 4 5.
88 BIG-STRAIGHT VALUES 2 3 4 5 6.
01 WS-DICE-ARRAY REDEFINES WS-DICE.
03 WS-DICE-DIE PIC 9 OCCURS 5 TIMES INDEXED BY DICE-INDEX.
01 WS-TEMP PIC 9.
01 WS-CHANGED-FLAG pic X.
88 HAS_CHANGED value 'Y'.
88 NOT_CHANGED value 'N'.
01 WS-COUNTER PIC 9 USAGE BINARY.
01 WS-RESULT PIC 99.
01 WS-DOTS PIC 9.
PROCEDURE DIVISION.
000-SETUP.
MOVE 0 TO WS-RESULT.
MOVE 66666 TO WS-DICE.
MOVE 'yacht' TO WS-CATEGORY.
PERFORM 200-PLAY-DICE.
DISPLAY "WS-RESULT " WS-RESULT.
GOBACK.
000-SETUP-EXIT.
EXIT.

200-PLAY-DICE.
DISPLAY WS-DICE.
PERFORM 1000-BUBBLE-SORT.
DISPLAY WS-DICE.
EVALUATE WS-CATEGORY
WHEN 'yacht'
PERFORM 210-SCORE-YACHT-ROLL
END-EVALUATE.
200-PLAY-DICE-EXIT.
EXIT.

210-SCORE-YACHT-ROLL.
MOVE 1 TO WS-DOTS.
PERFORM 220-PLAY-YACHT-CHECK.
IF HAS_CHANGED
GO TO 210-SCORE-YACHT-ROLL-EXIT
END-IF.

MOVE 2 TO WS-DOTS.
PERFORM 220-PLAY-YACHT-CHECK.
IF HAS_CHANGED
GO TO 210-SCORE-YACHT-ROLL-EXIT
END-IF.

MOVE 3 TO WS-DOTS.
PERFORM 220-PLAY-YACHT-CHECK.
IF HAS_CHANGED
GO TO 210-SCORE-YACHT-ROLL-EXIT
END-IF.

MOVE 4 TO WS-DOTS.
PERFORM 220-PLAY-YACHT-CHECK.
IF HAS_CHANGED
GO TO 210-SCORE-YACHT-ROLL-EXIT
END-IF.

MOVE 5 TO WS-DOTS.
PERFORM 220-PLAY-YACHT-CHECK.
IF HAS_CHANGED
GO TO 210-SCORE-YACHT-ROLL-EXIT
END-IF.

MOVE 6 TO WS-DOTS.
PERFORM 220-PLAY-YACHT-CHECK.
IF HAS_CHANGED
GO TO 210-SCORE-YACHT-ROLL-EXIT
END-IF.

210-SCORE-YACHT-ROLL-EXIT.
EXIT.

220-PLAY-YACHT-CHECK.
DISPLAY "PLAY-YACHT-CHECK WITH " WS-DOTS.
SET NOT_CHANGED TO TRUE.
MOVE 0 TO WS-COUNTER.

INSPECT WS-DICE
TALLYING WS-COUNTER FOR ALL WS-DOTS.

IF WS-COUNTER = 5
DISPLAY "THERE ARE " WS-COUNTER " X "
WS-DOTS " IN " WS-DICE
MOVE 50 TO WS-RESULT
SET HAS_CHANGED TO TRUE
ELSE
MOVE 0 TO WS-RESULT
END-IF.
220-PLAY-YACHT-CHECK-EXIT.
EXIT.

1000-BUBBLE-SORT.
DISPLAY "1000-BUBBLE-SORT".
MOVE 5 TO WS-COUNTER.
PERFORM WITH TEST AFTER UNTIL NOT_CHANGED
SET NOT_CHANGED TO TRUE
SUBTRACT 1 FROM WS-COUNTER
PERFORM VARYING DICE-INDEX
FROM 1
BY 1
UNTIL DICE-INDEX > WS-COUNTER
IF WS-DICE-DIE (DICE-INDEX) > WS-DICE-DIE (DICE-INDEX + 1)
MOVE WS-DICE-DIE (DICE-INDEX) TO WS-TEMP
MOVE WS-DICE-DIE (DICE-INDEX + 1)
TO WS-DICE-DIE (DICE-INDEX)
MOVE WS-TEMP TO WS-DICE-DIE (DICE-INDEX + 1)
SET HAS_CHANGED TO TRUE
END-IF
END-PERFORM
END-PERFORM.
1000-BUBBLE-SORT-EXIT.
EXIT.

[/code]
Thanks in advance,
Bruce

Re: Why is my execution order weird

<863f054b-4ae8-4ac9-bb2e-cb23d0f24da9n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=355&group=comp.lang.cobol#355

  copy link   Newsgroups: comp.lang.cobol
X-Received: by 2002:a05:622a:1350:b0:31f:1cb2:926d with SMTP id w16-20020a05622a135000b0031f1cb2926dmr234093qtk.279.1658404956689;
Thu, 21 Jul 2022 05:02:36 -0700 (PDT)
X-Received: by 2002:a0d:f445:0:b0:31d:4f2c:a0b0 with SMTP id
d66-20020a0df445000000b0031d4f2ca0b0mr47360741ywf.73.1658404956383; Thu, 21
Jul 2022 05:02:36 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.cobol
Date: Thu, 21 Jul 2022 05:02:36 -0700 (PDT)
In-Reply-To: <611d8589-aed3-4d75-8b29-9b53071140b1n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=98.180.88.86; posting-account=CcFQgQoAAAB4uPj9HOgZiRCM2Y_v-jmi
NNTP-Posting-Host: 98.180.88.86
References: <611d8589-aed3-4d75-8b29-9b53071140b1n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <863f054b-4ae8-4ac9-bb2e-cb23d0f24da9n@googlegroups.com>
Subject: Re: Why is my execution order weird
From: rs847925@gmail.com (Rick Smith)
Injection-Date: Thu, 21 Jul 2022 12:02:36 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2456
 by: Rick Smith - Thu, 21 Jul 2022 12:02 UTC

On Thursday, July 21, 2022 at 4:43:32 AM UTC-4, bruce....@gmail.com wrote:
> It being some years since I studied COBOL full-time (1983-85), I've forgotten more than ever knew. That being the case can some merciful soul tell me why the code at the end gives the following execution output, especially the duplication of
> PLAY-YACHT-CHECK WITH 6
> THERE ARE 5 X 6 IN 66666
> 1000-BUBBLE-SORT
> [console]
> C:\>cobc -xj YACHT.CBL
> 66666
> 1000-BUBBLE-SORT
> 66666
> PLAY-YACHT-CHECK WITH 1
> PLAY-YACHT-CHECK WITH 2
> PLAY-YACHT-CHECK WITH 3
> PLAY-YACHT-CHECK WITH 4
> PLAY-YACHT-CHECK WITH 5
> PLAY-YACHT-CHECK WITH 6
> THERE ARE 5 X 6 IN 66666
> PLAY-YACHT-CHECK WITH 6
> THERE ARE 5 X 6 IN 66666
> 1000-BUBBLE-SORT
> [console]
> [code]
[snip]

> PERFORM 210-SCORE-YACHT-ROLL

Change to

PERFORM 210-SCORE-YACHT-ROLL THRU 210-SCORE-YACHT-ROLL-EXIT

[snip]

> 210-SCORE-YACHT-ROLL.

[snip]

> MOVE 6 TO WS-DOTS.
> PERFORM 220-PLAY-YACHT-CHECK.
> IF HAS_CHANGED
> GO TO 210-SCORE-YACHT-ROLL-EXIT

When control reaches the above GO TO, control breaks out
of the active PERFORM 210-SCORE-YACHT-ROLL causing
control to "fall thru" the remaining code.

> END-IF.
>
> 210-SCORE-YACHT-ROLL-EXIT.
> EXIT.

[snip]

> [/code]
> Thanks in advance,
> Bruce

Re: Why is my execution order weird

<9899ff98-94dd-4302-a7e7-dc7226af91efn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=356&group=comp.lang.cobol#356

  copy link   Newsgroups: comp.lang.cobol
X-Received: by 2002:a05:622a:1183:b0:31e:f639:ca15 with SMTP id m3-20020a05622a118300b0031ef639ca15mr13839511qtk.462.1658410026215;
Thu, 21 Jul 2022 06:27:06 -0700 (PDT)
X-Received: by 2002:a81:1b08:0:b0:31e:5f26:8ae9 with SMTP id
b8-20020a811b08000000b0031e5f268ae9mr13596573ywb.155.1658410025961; Thu, 21
Jul 2022 06:27:05 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.cobol
Date: Thu, 21 Jul 2022 06:27:05 -0700 (PDT)
In-Reply-To: <863f054b-4ae8-4ac9-bb2e-cb23d0f24da9n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=49.196.18.236; posting-account=1W9SuAoAAAApKJ8N7QNszANYOyWIVzjG
NNTP-Posting-Host: 49.196.18.236
References: <611d8589-aed3-4d75-8b29-9b53071140b1n@googlegroups.com> <863f054b-4ae8-4ac9-bb2e-cb23d0f24da9n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9899ff98-94dd-4302-a7e7-dc7226af91efn@googlegroups.com>
Subject: Re: Why is my execution order weird
From: bruce.axtens@gmail.com (Bruce Axtens)
Injection-Date: Thu, 21 Jul 2022 13:27:06 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1490
 by: Bruce Axtens - Thu, 21 Jul 2022 13:27 UTC

On Thursday, 21 July 2022 at 8:02:37 pm UTC+8, Rick Smith wrote:
> PERFORM 210-SCORE-YACHT-ROLL THRU 210-SCORE-YACHT-ROLL-EXIT

I thanked you in advance, but I'm sufficiently grateful to thank you after the fact. I doubt I would have twigged to that behaviour without help. Thank you!

-- Bruce

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor