【问题标题】:I want to print triangle of " * " on middle of the screen using cobol?? how do i do it?我想使用 cobol 在屏幕中间打印“*”的三角形??我该怎么做?
【发布时间】:2018-09-21 05:37:09
【问题描述】:
 IDENTIFICATION DIVISION.
        PROGRAM-ID. 11.
        WORKING-STORAGE SECTION.
        01 NUM1 PIC X(010) VALUE "*".
        01 NUM2 PIC S9(001) VALUE +2 COMP.
        PROCEDURE DIVISION.
        PERFORM TRI 6 TIMES
        STOP RUN.
       TRI.
        DISPLAY NUM1
        ADD +2 TO NUM2
        MOVE "*" TO NUM1(NUM2:6).

【问题讨论】:

  • 最简单的方法之一是进行一系列显示并在显示文本中手动创建三角形
  • 但我想使用循环
  • 这是一个“实心”三角形还是只是三角形的“轮廓”?
  • 实心三角形
  • @SrinivasanJv - 将代码作为答案而不是评论发布,但我建议将 WS-OUT 更改为 X(80) 并将 WS-CENTER 更改为 VALUE 40

标签: cobol


【解决方案1】:

下面给出了在屏幕中间打印星号三角形的 COBOL 代码。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.

DATA DIVISION. 
WORKING-STORAGE SECTION.
01 WS-OUT PIC X(80) VALUE SPACES.
01 WS-N PIC 9(2) VALUE 0. 
01 WS-CENTER PIC 9(2) VALUE 40. 

PROCEDURE DIVISION.

PERFORM VARYING WS-N FROM 1 BY 2 UNTIL WS-N > 20
MOVE ALL '*' TO WS-OUT(WS-CENTER:WS-N)
COMPUTE WS-CENTER = WS-CENTER - 1
DISPLAY WS-OUT
END-PERFORM. 

STOP RUN.

输出:

                               *                                        
                              ***                                       
                             *****                                      
                            *******                                     
                           *********                                    
                          ***********                                   
                         *************                                  
                        ***************                                 
                       *****************                                
                      *******************                               

运行它here

感谢 Rick Smith 的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2015-10-17
    • 2011-12-14
    • 2020-11-01
    • 2023-04-06
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多