- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在学习一门古老的编程语言 COBOL,但遇到了一个问题。这是 Cobol 程序的示例。
IDENTIFICATION DIVISION.
PROGRAM-ID. MONTHLY.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO "USERINPUT.DAT".
SELECT OUT-FILE ASSIGN TO "USEROUTPUT.DAT".
DATA DIVISION.
FILE SECTION.
FD IN-FILE
LABEL RECORDS ARE STANDARD
DATA RECORD IS IN-REC.
01 IN-REC.
02 C-NAME PIC X(25).
02 STREET PIC X(20).
02 ZIP-CODE PIC X(15).
02 CREDIT PIC 9(6)V99.
02 MONTH PIC 99.
02 FILLER PIC XX VALUE "\n".
FD OUT-FILE
LABEL RECORDS ARE STANDARD
DATA RECORD IS OUT-REC.
01 OUT-REC PIC X(80).
*-----------------------
WORKING-STORAGE SECTION.
*-----------------------
01 HDG-01.
02 FILLER PIC X(27) VALUE SPACES.
02 FILLER PIC X(27) VALUE "ABC Loans & Savings Company".
01 HDG-02.
02 FILLER PIC X(28) VALUE SPACES.
02 FILLER PIC X(25) VALUE "Ayala Avenue, Makati City".
01 HDG-03.
02 FILLER PIC X(30) VALUE SPACES.
02 FILLER PIC X(20) VALUE "SCHEDULE OF PAYMENTS".
01 HDG-04.
02 FILLER PIC X(28) VALUE SPACES.
02 FILLER PIC X(15) VALUE "ORIGINAL AMOUNT".
02 REC-CREDIT PIC Z(5)9.99.
01 HDG-05.
02 FILLER PIC X(14) VALUE SPACES.
02 FILLER PIC X(9) VALUE "MONTH".
02 FILLER PIC X(11) VALUE "INTEREST".
02 FILLER PIC X(17) VALUE "TOTAL-PAYMENT".
02 FILLER PIC X(14) VALUE "UNPAID-BALANCE".
01 TRANSFER-LINE.
02 FILLER PIC X(16) VALUE SPACES.
02 REC-MONTH PIC 99.
02 FILLER PIC X(6) VALUE SPACES.
02 INTEREST PIC 9(3)V99.
02 FILLER PIC X(7) VALUE SPACES.
02 TOTAL-PAY PIC 9(6)v99.
02 FILLER PIC X(10) VALUE SPACES.
02 UNPAID-BAL PIC 9(6)v99.
01 PRINT-LINE.
02 FILLER PIC X(16) VALUE SPACES.
02 FILLER PIC 99.
02 FILLER PIC X(6) VALUE SPACES.
02 FILLER PIC ZZ9.99.
02 FILLER PIC X(7) VALUE SPACES.
02 FILLER PIC Z(5)9.99.
02 FILLER PIC X(10) VALUE SPACES.
02 FILLER PIC Z(5)9.99.
01 PRINT-NULL.
02 FILLER PIC X(16) VALUE SPACES.
02 FILLER PIC XX VALUE "--".
02 FILLER PIC X(6) VALUE SPACES.
02 FILLER PIC XXXXX VALUE "-----".
02 FILLER PIC X(7) VALUE SPACES.
02 FILLER PIC X(9) VALUE "---------".
02 FILLER PIC X(9) VALUE SPACES.
02 FILLER PIC X(9) VALUE "---------".
01 X PIC 99.
01 REM PIC 999.
01 CHECK-MONTH PIC 99.
01 CLIENT-NO PIC 9.
01 PRINT-ASTERISK.
02 FILLER PIC X(30) VALUES ALL "*" .
02 FILLER PIC X(18) VALUES "-END OF CLIENT NO ".
02 CLIENT PIC 9.
02 FILLER PIC X VALUE "-".
02 FILLER PIC X(30) VALUES ALL "*" .
PROCEDURE DIVISION.
OPEN INPUT IN-FILE
OUTPUT OUT-FILE.
REPEAT-RTN.
ADD 1 TO CLIENT-NO.
MOVE CLIENT-NO TO CLIENT.
READ IN-FILE AT END PERFORM CLOSE-RTN.
MOVE CREDIT TO UNPAID-BAL.
MOVE MONTH TO CHECK-MONTH.
PERFORM WITH TEST BEFORE UNTIL CHECK-MONTH < 13
COMPUTE CHECK-MONTH = CHECK-MONTH - 12
END-PERFORM.
COMPUTE CHECK-MONTH = MONTH + (12 - CHECK-MONTH).
MOVE ZEROES TO X.
PERFORM PROCESS-RTN CHECK-MONTH TIMES.
WRITE OUT-REC FROM PRINT-ASTERISK AFTER 1 LINE.
PERFORM REPEAT-RTN.
PROCESS-RTN.
ADD 1 TO X.
MOVE X TO REM.
PERFORM WITH TEST BEFORE UNTIL REM <= 13
COMPUTE REM = REM - 12
END-PERFORM.
IF REM=13 OR REM = 1 THEN
PERFORM HDG-RTN
END-IF.
IF REM=13 THEN
MOVE SPACES TO OUT-REC
WRITE OUT-REC.
MOVE X TO REC-MONTH.
COMPUTE INTEREST = UNPAID-BAL * 0.015.
COMPUTE TOTAL-PAY ROUNDED= CREDIT / MONTH + INTEREST.
COMPUTE UNPAID-BAL = UNPAID-BAL - TOTAL-PAY + INTEREST.
IF UNPAID-BAL < 1 THEN
MOVE ZEROES TO UNPAID-BAL
END-IF.
IF X > MONTH THEN
WRITE OUT-REC FROM PRINT-NULL AFTER 1 LINE
ELSE
MOVE TRANSFER-LINE TO PRINT-LINE
WRITE OUT-REC FROM PRINT-LINE AFTER 1 LINE
END-IF.
HDG-RTN.
IF X > 1 THEN
WRITE OUT-REC FROM HDG-01 AFTER 2 LINE
WRITE OUT-REC FROM HDG-02 AFTER 1 LINE
WRITE OUT-REC FROM C-NAME AFTER 2 LINE
ELSE IF CLIENT-NO > 1 THEN
WRITE OUT-REC FROM HDG-01 AFTER 1 LINE
WRITE OUT-REC FROM HDG-02 AFTER 1 LINE
WRITE OUT-REC FROM C-NAME AFTER 2 LINE
ELSE
WRITE OUT-REC FROM HDG-01 BEFORE 1 LINE
WRITE OUT-REC FROM HDG-02 BEFORE 1 LINE
WRITE OUT-REC FROM C-NAME AFTER 1 LINE
END-IF.
WRITE OUT-REC FROM STREET AFTER 1 LINE.
WRITE OUT-REC FROM ZIP-CODE AFTER 1 LINES.
WRITE OUT-REC FROM HDG-03 AFTER 2 LINE.
MOVE CREDIT TO REC-CREDIT.
WRITE OUT-REC FROM HDG-04 AFTER 1 LINE.
WRITE OUT-REC FROM HDG-05 AFTER 2 LINE.
CLOSE-RTN.
CLOSE IN-FILE , OUT-FILE.
STOP RUN.
END PROGRAM MONTHLY.
程序假设产生这样的输出:
ABC Loans & Savings Company
Ayala Avenue, Makati City
The Client Name is Here:
The Client Address:
The ZiP/CITY:
SCHEDULE OF PAYMENTS
ORIGINAL AMOUNT 4291.50
MONTH INTEREST TOTAL-PAYMENT UNPAID-BALANCE
01 64.37 422.00 3933.87
02 05900 416.63 3576.24
03 05364 411.27 3218.61
04 04827 405.90 2860.98
05 04291 400.54 2503.35
06 03755 395.18 2145.72
07 03218 389.81 1788.09
08 02682 384.45 1430.46
09 02145 379.08 1072.83
10 01609 373.72 715.20
11 01072 368.35 357.57
12 00536 362.99 0.00
******************************-END OF CLIENT NO 1-******************************
但是我运行程序时的程序输出是不一样的。它看起来像这样:
ABC Loans & Savings Company
Ayala Avenue, Makati City
The Client Name is Here:
The Client Address:
The ZiP/CITY:
SCHEDULE OF PAYMENTS
ORIGINAL AMOUNT 4291.50
MONTH INTEREST TOTAL-PAYMENT UNPAID-BALANCE
01 06437 00042200 00393387
02 05900 00041663 00357624
03 05364 00041127 00321861
04 04827 00040590 00286098
05 04291 00040054 00250335
06 03755 00039518 00214572
07 03218 00038981 00178809
08 02682 00038445 00143046
09 02145 00037908 00107283
10 01609 00037372 00071520
11 01072 00036835 00035757
12 00536 00036299 00000000
******************************-END OF CLIENT NO 1-******************************
我遇到了关于小数格式和消零的问题。有什么建议吗?顺便说一句,我只是使用 DAT 文件进行输入,所以我没有使用任何 ACCEPT 或输入函数,它包含记录所需的确切字符,如下文所示:
客户名称在这里:客户地址:ZiP/CITY:0042915012
我认为问题在于工作存储打印线和传输线。
最佳答案
乍一看,我注意到您的代码有两个问题:
PRINT-LINE
和 TRANSFER-LINE
的长度不同,因为数字项的 PICTURE
子句不同.例如,PRINT-LINE
使用 PIC ZZ9.99
而 TRANSFER-LINE
使用 PIC 9(3)V99
。请注意,PICTURE
子句中的小数点 .
需要一个字节的存储空间,而 V
根本不占用任何存储空间,因此PRINT-LINE
中的字段比TRANSFER-LINE
中的字段大一个字节。MOVE TRANSFER-LINE TO PRINT-LINE
时,您不会进行逐字段传输,而是将整个数据 block 作为一个数据 block 移动,因此 PICTURE
- PRINT-LINE
中的子句被完全忽略。你不会遇到更大的麻烦,因为 PRINT-LINE
比 TRANSFER-LINE
占用更多的存储空间(见 1.)——如果反过来你甚至可能有存储覆盖问题(但至少应该得到编译器警告)。要做到这一点,您可以
PRINT-LINE
的 level-02-items 命名为 TRANSFER-LINE
的项目,然后执行 MOVE CORRESPONDING TRANSFER-LINE TO PRINT-LINE
- 但随后您必须使用限定名称来处理您的字段(INTEREST OF TRANSFER-LINE
)或
TRANSFER-LINE
并将您的数据直接放入 PRINT-LINE
关于output - 如何在cobol中显示十进制格式输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39119422/
我正在用 C 语言实现一个带有输入和输出重定向的 shell。我可以成功进行输入重定向,但输出重定向不起作用。例如,如果我执行 ls > out.txt,则 out.txt 包含文本“out.txt”
我正在处理创建 AWS API 网关。我正在尝试创建 CloudWatch Log 组并将其命名 API-Gateway-Execution-Logs_${restApiId}/${stageName
我正在修改原作者使用数组构建网页的一些代码: $output[]=$stuff_from_database; $output[]='more stuff'; // etc echo join(
我只想知道它们之间的区别: sort < output 和 sort output 在 Linux 中。它是如何工作的? 最佳答案 这已经在 unix.stackexchange 上讨论过:Perfo
我正在生成外部控制台应用程序并使用异步输出重定向。 as shown in this SO post 我的问题是,在我收到 OutputDataReceived 事件通知之前,生成的进程似乎需要产生一
在 Udemy 上开设类(class)时,我们一直允许使用组件类中的 @Input() 装饰器向组件传递数据。 在阅读 ngBook-2 时,我发现还有另一种方法,即在 @Component 装饰器中
考虑一个 Linux 服务器,它在您的用户的 .bash_profile 中有以下行: echo "Hello world" 因此,每次您通过 ssh 进入它时,您都会看到 Hello world 现
public static void main(String[] args) { String input = new String(JOptionPane.showInputDialog("
我正在使用 MSVS 2008 中的 FFTW3 库对某些数据执行 r2c DFT (n=128)。我已经发现只使用了真实数据 DFT 输出的前半部分……如果我查看我的输出,这似乎是正确的: 0-64
我制作了一个 C 程序,可以从二进制文件中打印出很多值。我相信程序完成它的功能并在它实际显示它吐出的值之前结束。因此,结果我得到了一个可爱的 RUN SUCCESSFUL(总时间:198ms) 突然出
在 hadoop 作业计数器中,“映射输出具体化字节”与“映射输出字节”之间有什么区别?当我禁用映射输出压缩时我没有看到前者所以我猜它是真正的输出字节(压缩)而后者是未压缩的字节? 最佳答案 我认为你
有很多 Stack Overflow 文章与此相关,但没有直接的答案。 这条命令会输出一堆单词 OutputVariable.exe %FILEPATH% 输出: Mary had a little
互联网上的许多文章都使用“标准输入/输出/错误流”术语好像每个术语都与使用的“标准输入/输出/错误设备”术语具有相同的含义在其他文章上。例如,很多文章说标准输出流默认是监视器,但可以重定向到文件、打印
我在 Keras 中使用一些 tensorflow 函数(reduce_sum 和 l2_normalize)在最后一层构建模型时遇到了这个问题。我已经搜索了一个解决方案,但所有这些都与“Keras
我有来自 API 的自定义输出,我想将其格式化为带有一些颜色值的字符串。 最佳答案 输出 channel 可以用 TmLanguage grammar 着色. Output Colorizer扩展扩展
我正在寻找一种方法来查看虚拟机创建过程中发生的情况,因为我使用复杂的集群配置并测试其是否正常工作,我需要能够查看输出,在某些情况下我是不是因为敏感。这与运行remote-exec选项有关 module
当谷歌搜索此错误时没有看到任何相关结果,所以我想发布它。 stack build Building all executables for `gitchapter' once. After a suc
假设module_a里面有register_a,它需要链接到module_b。 register_a 是否应该单独声明并分配给 module_a 的输出: reg register_a; assign
我正在寻找一种方法来查看虚拟机创建过程中发生的情况,因为我使用复杂的集群配置并测试其是否正常工作,我需要能够查看输出,在某些情况下我是不是因为敏感。这与运行remote-exec选项有关 module
输入文件如下 eno::ename::dept::sal 101::emp1::comp1::2800000 201::emp2::comp2::2800000 301::emp3::comp3::3
我是一名优秀的程序员,十分优秀!