Een programma moet de tijd afdrukken, zoals we hem spreken. Voorbeelden:
0013: dertien minuten over twaalf
0715: kwart over zeven
1029: een minuut voor half elf
1344: veertien minuten over half twee
2055: vijf minuten voor negen
2300: elf uur precies
illustratie: Geert Nijmolen
Voor dit probleem is de oplossing gegeven in de vorm van een programmastructuurdiagram. Verder is er een tabel bij nodig. Die tabel heeft de naam klein en bevat de woorden een, twee, drie, vier, enzovoort tot en met veertien.
De uitwerking van dit probleem in een COBOL-programma volgt hierna. De regels van het programma zijn genummerd om er in een opgave van het werkboek naar te kunnen verwijzen.
100 IDENTIFICATION DIVISION. 101 PROGRAM-ID. Gesproken-Tijd. 102*Auteur: Andree Hollander 103*Datum: 1989/01/03 104 105 DATA DIVISION. 106 WORKING-STORAGE SECTION. 107 01 tabel-klein. 108 02 klein picture x(8), occurs 14 times. 109* voor de woorden 'een' tot en met 'veertien' 110 111 01 systeemtijd. 112 02 uren picture 99. 113 02 minuten picture 99. 114* voor de in woorden uit te drukken tijd 115 116 01 mintekst picture x(7). 117* voor de juiste minuten-tekst: 'minuut' of 'minuten' 118 119 01 hulp-subscript picture 99. 120* nodig omdat in COBOL een subscript als (30 - minuten) 121* niet is toegestaan 122 123 PROCEDURE DIVISION. 124 HOOFD-GEDEELTE. 125 Perform VUL-TABEL 126 Accept systeemtijd from time 127 If uren > 12 then subtract 12 from uren end-if 128 If uren = 0 then move 12 to uren end-if 129 Evaluate minuten 130 when 1 131 when 29 132 when 31 133 when 59 move "minuut" to mintekst 134 when other move "minuten" to mintekst 135 end-evaluate 136 If minuten <= 15 137 then perform TOT-KWART-OVER 138 else perform NA-KWART-OVER 139 end-if 140 Stop run. 141 142 VUL-TABEL. 143 Move " een " to klein(1) 144 Move " twee " to klein(2) 145 Move " drie " to klein(3) 146 Move " vier " to klein(4) 147 Move " vijf " to klein(5) 148 Move " zes " to klein(6) 149 Move " zeven " to klein(7) 150 Move " acht " to klein(8) 151 Move " negen " to klein(9) 152 Move " tien " to klein(10) 153 Move " elf " to klein(11) 154 Move " twaalf " to klein(12) 155 Move "dertien " to klein(13) 156 Move "veertien" to klein(14). 157 158 TOT-KWART-OVER. 159 Evaluate minuten 160 when 0 161 display klein(uren), space, "uur precies" 162 when 1 thru 14 163 display klein(minuten), space, mintekst, 164 " over ", klein(uren) 165 when 15 166 display "kwart over", space, klein(uren) 167 end-evaluate. 168 169 NA-KWART-OVER. 170 Add 1 to uren 171 If uren > 12 then subtract 12 from uren end-if 172 Evaluate minuten 173 when 16 thru 29 174 compute hulp-subscript = 30 - minuten 175 display klein(hulp-subscript), space, 176 mintekst, " voor half ", klein(uren) 177 when 30 178 display "half", space, klein(uren) 179 when 31 thru 44 180 display klein(minuten - 30), space, 181 mintekst, " over half ", klein(uren) 182 when 45 183 display "kwart voor", space, klein(uren) 184 when 46 thru 59 185 compute hulp-subscript = 60 - minuten 186 display klein(hulp-subscript), space, 187 mintekst, " voor ", klein(uren) 188 end-evaluate.