Codierbeispiel: LKW-Beladung
Autorin: Claudia Fabritius    Das folgende Codierbeispiel zeigt, wie man folgendes Problem lösen kann:    Beliebig schwere Kisten mit maximal 25 kg sollen auf LKWs mit beliebiger Ladekapazität geladen werden.

Jackson Baum

      LKW beladen (*)
          │
          ├── Gesamtgeicht erfassen
          │
          ├── Kiste laden (*)
          │           │
          │           ├── Gewicht eingeben
          │           │
          │           ├── Gewicht prüfen
          │           │
          │           └── Gewicht addieren (o)
          │
          └── Abschluss

* = mehrmals ...o = optional

IDENTIFICATION DIVISION.
PROGRAM-ID. LKW-Beladung.
AUTHOR. Fabritius.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
  CONSOLE IS CRT,
  DECIMAL-POINT IS COMMA.

DATA DIVISION.
WORKING-STORAGE SECTION.
77 EKZ PIC X.
77 KGew PIC 9(5)v99.
77 Zuladung PIC 9(5)v99.
77 E-Zuladung PIC Z9,99.
77 Kiste PIC 99v99.
77 E-Kiste PIC Z9,99.
PROCEDURE DIVISION.
  MOVE "j" TO EKZ.
  PERFORM UNTIL EKZ = "n"
    PERFORM LKW-beladen
    DISPLAY "Nochmal (j)a (n)ein?" AT 2401
      ACCEPT EKZ AT 2430
  END-PERFORM.
  STOP RUN.

LKW-beladen.
PERFORM Gesamtgewicht-erfassen.
MOVE 0 TO KGew.
PERFORM UNTIL KGew >= Zuladung
  PERFORM Kiste-laden
END-PERFORM.
PERFORM Abschluss.

Gesamtgewicht-erfassen.
  DISPLAY SPACES.
  DISPLAY "LKW-Beladung" AT 0115.

DISPLAY "LKW-Zuladung in t:" AT 0501.
ACCEPT E-Zuladung AT 0525.
MOVE E-Zuladung TO Zuladung.
COMPUTE Zuladung = Zuladung * 1000.

Kiste-laden.
DISPLAY "Kisten-Gewicht in kg:" AT 0801.
ACCEPT E-Kiste AT 0825.
MOVE E-Kiste TO Kiste.

IF Kiste <= 25 THEN
  COMPUTE KGew = KGew + Kiste
ELSE   DISPLAY "Kiste ist zu schwer!" AT 2401
END-IF.

Abschluss.


...