作业帮 > 综合 > 作业

vfp程序循环功能下列程序功能是输出如图文字:金宇宇大大大宝宝宝宝塔塔塔塔塔CLEARc="金宇大宝塔"n=LEN(c)

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/26 09:24:23
vfp程序循环功能
下列程序功能是输出如图文字:

宇宇
大大大
宝宝宝宝
塔塔塔塔塔
CLEAR
c="金宇大宝塔"
n=LEN(c)/2
FOR i =1 TO n
SPACE(70-i)
FOR j = 1 TO i
SUBS(c,2 * i - 1,2)
= INKEY (0.5)
END FOR
ENDFOR
谁能给我解释下每个步骤的具体意思啊,具体哦
SPACE(70-i) 70是什么,i又是什么
SUBS(c,2 * i - 1,2) (c,2 * i - 1,为什么这么写
哪位朋友能给我讲讲啊,我是自学的.
程序的思路 是把一个字符串的第一个字输出1次换行 第二个字输出2次 换行
并且每换行一次, 输出位置提前一个字符(中文是占2个字符宽度的)
CLEAR // 清屏幕
c="金宇大宝塔" // 把 字符串 "金宇大宝塔" ,赋值到变量C 里面
n=LEN(c)/2 // 设置一个变量 N 来存放循环的次数,
// 因为中文占2个字符宽度,所以实际次数是原字符创长
//度的一般
FOR i =1 TO n // 开始定长循环(大循环) ,决定输出的行数
? SPACE(70-i) // 设置第一行的字符开始位置
FOR j = 1 TO i //套内循环开始, 这个循环决定输出的字数
?SUBS(c,2 * i - 1,2) // 输出第I个字
= INKEY (0.5) // 等待 0.5秒
END FOR // 循环输出几次由I的值决定,
ENDFOR //输出下一行 , 下一个字
特别问题 ? SPACE(70-i) 70-i是什么意思,70是什么,i又是什么
SPACE(70-i) 是输出 70-i个空格 就是60个空格 70 是代表第一行的第一个字从第70个字符位开始(前69个都是空格)I 是行数变量, 意思是第一行从70-1=69 开始, 第二行从70-2=68 开始 第三行从70-3=67开始
?SUBS(c,2 * i - 1,2) (c,2 * i - 1,2)是什么意思,为什么这么写
SUBS(c,2 * i - 1,2) 是取一个字符串中的一部分的函数,得到一个字串的一部分的一个新字串.
在I=1的情况下 得到的字串是
SUBS(‘金宇大宝塔’,1,2) 字串C的第1个字符开始 取2个字符 就是 ‘金’字.
= INKEY (0.5)//如果你没有写错的话,这行应该是错的!
这行不是错的.
INKEY() 函数是等待用户从键盘输入一个字符 并返还按键的代码.括号里的数字式等待的时间,超出这个时间就忽略,就是没有按键也继续运行下一条命令.如果括号里面有数字就无限等下去直到有按键按下去. 用在这里的用途就是要输出一个字以后暂停0.5秒再输出下一个字.
=INKEY(0.5) 的用法是忽略了键盘返回值(因为这里只是延时,按下什么键对程序来说无关紧要.)
用”=“号 呼叫函数的用法 相当于 do INKEY(0.5) 就是把函数当成一个不需要返回值的过程.
而 A=INKEY(0.5) 就是把按下的键的键值放在变量A 里面, 共后面的程序来使用
使用“=”号来呼叫函数的例子有很多
如 A=MESSAGEBOX('确认删除吗',4+32+256,'系统提示')
(系统出现一个窗口 有2个按钮 是 和 否 按下 是 就返回 6 按下 否就返回 7)
if a=7 // 按下 否 按钮
retu //直接返回
endif
if a=6 //按下 是 按钮
dele next 1 //删除一个
endif
(注意这里)
=messageboxmessagebox('记录已删除',0+64+0,'系统提示')
(再次出现一个窗口 提示 记录已删除' 只有一个 确定 按钮, 因为这里只有一个按钮,就是说只有一个固定的返回值, 不需要对返回的值进行判断了,就不需要返回值了, 就直接用 "=" 来呼叫这个函数了!