作业帮 > 综合 > 作业

求vfp大神解释代码(虽然执完成了行了但有些小地方仍胡涂)比如(n=len(c)/2);(?subs(c,2*i-1,2

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/23 15:40:54
求vfp大神解释代码(虽然执完成了行了但有些小地方仍胡涂)比如(n=len(c)/2);(?subs(c,2*i-1,2)
clear
c="金字大宝塔"
n=len(c)/2
for i=1to n
space(70-i)
for j=1 to i
subs(c,2*i-1,2)
=inkey (3)
endfor
endfor
求vfp大神解释代码(虽然执完成了行了但有些小地方仍胡涂)比如(n=len(c)/2);(?subs(c,2*i-1,2
clear
c="金字大宝塔"
n=len(c)/2 && 此处n=5,len(c)是表示取出c这个字符串的长度,c中5个汉字,一个汉字占两个字符,所以len(c)=10,n=len(c)/2=10/2=5
for i=1to n && 循环 i从1到5
space(70-i)
for j=1 to i && 循环 j从1到i
subs(c,2*i-1,2) && subs是取子串函数,subs(c,2*i-1,2)表示取c中,从 2*i-1开始,长度为2(也就是一个汉字)的串;
所以 当i=1时,subs(c,2*i-1,2)=subs(c,2*1-1,2)=subs(c,1,2),也就是第一个汉字金,这个金在输出前,已经输出了space(70-i)=space(69),即69个空格,此处是?所以金在69个空格后输出.
接着再循环i=2,输出68个空格,subs(c,2*i-1,2)=subs(c,2*2-1,2)=subs(c,3,2)=字,之后输出“字字”;之后i=3,输出67个空格,subs(c,2*i-1,2)=subs(c,2*3-1,2)=subs(c,5,2)=字,之后输出“大大大”;i=4,输出66个空格,subs(c,2*i-1,2)=subs(c,2*4-1,2)=subs(c,7,2)=字,之后输出“宝宝宝宝”;i=5,输出65个空格,subs(c,2*i-1,2)=subs(c,2*5-1,2)=subs(c,9,2)=字,之后输出“塔塔塔塔塔”;
=inkey (3)(这句应该是多余的吧)
endfor
endfor
再问: 恩。去掉=inkey (3),结果一下子出来。 按原程序执行,会出现那个图片。连按{取消}键,,会出现同样结果。这是不是inkey()函数的功能? 还是其他的什么错误?
再答: INKEY([数值表达式])是FOXBASE提供的函数之一。其功能是返回用户所按键的键值,一般该值与用户按键的ASCII码值对应。