m0_59696843 2021-06-25 21:02 采纳率: 0%
浏览 3

visual foxpro数据库的程序设计 希望可以帮我解释解释这个逻辑!

 

【程序填空】

功能:通过循环程序输出图形:

          *

        *   *

      *       *

    *            *

 *                  *

    *            *

       *     *

         * *

          *

SET TALK OFF

CLEAR

FOR N=1 TO 9

   IF N<=5

       M1=【?】

ELSE

       M1=【?】

ENDIF

FOR M=1 TO ABS(【?】)

??" "

ENDFOR

  FOR M=1 TO ABS(M1-2*N+1)

    IF M=1 OR M=ABS(M1-2*N+1)

??"*"

ELSE

??" "

    ENDIF

  ENDFOR

ENDFOR

SET TALK OFF

标准答案:

(1)0&2+(n-1)*4

(2)18&4*(n-5)

(3)5-N

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-06 16:15
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    解答: 该程序需要填空的位置有三个,分别对应输出的第一颗星、每行空格数、每行星号数。
    1. 第一颗星的位置 根据图形可以看出,第一颗星的位置在第5行第1列,所以可以直接填写为5。 答案:5
    2. 每行空格数 根据图形可以看出,在第1行有4个空格,每一行比上一行少2个空格。那么可以使用公式2+(n-1)(-2)来得到每一行的空格数。其中n表示当前行数。 答案:2+(n-1)(-2)
    3. 每行星号数 根据图形可以看出,在第1行有1颗星,每一行比上一行多2颗星。那么可以使用公式18+4*(n-5)来得到每一行的星号数。其中n表示当前行数。 需要注意的是,当n大于等于5时,需要使用另一种公式来计算。第5行及其以下的行数,每行星号数会增加4,所以可以使用公式5-n来得到每一行的星号数。 答案:IF N<=5 THEN 18+4*(n-5) ELSE 5-N ENDIF 完整代码: SET TALK OFF CLEAR FOR N=1 TO 9 IF N<=5 M1=5 ELSE M1=IF N<=5 THEN 18+4*(n-5) ELSE 5-N ENDIF ENDIF FOR M=1 TO ABS(2+(n-1)(-2)) ?" "; ENDFOR FOR M=1 TO ABS(M1-2N+1) IF M=1 OR M=ABS(M1-2N+1) ?""; ELSE ?" "; ENDIF ENDFOR ENDFOR SET TALK OFF
    评论

报告相同问题?