1、仍然利用小数点前移然后求整 fix(71/10)就求出 b=fix(7.1)=7c为m的个位:跟求b一样利用先前求出的a与b,将m的十位,百位都减去就OK啦这样,a与b与c就都有了然后用选择结构如果m 满足这样的条件 m=a3+b3+c3 则 m为一个水仙花数 打印m否则 m不是一个水仙花数最后,另m从100开始循环到500 结束。程序是form = 100 to 500 a=fix(m/100) b=fix(m-a*100)/10) c=m-a*100-b*10 if m=a3+b3+c3 then print m;为一个水仙花数 endifnext mPS: 你可以用这种方法另m从100开
2、始到999循环,找出所有水仙花数 可以找出从1000到9999 中找出有这样特点数m: m= a4+b4+c4+d4 其中 a,b,c,d分别为m的千位,百位,十位,个位。这样的数叫做玫瑰花数! 从10000到99999一样可以找出 5次方的数。叫做五角星数2日志标题:关于Fibonacci函数发表作者:8000087发表时间:31:51 更新时间:51Fibonacci函数是一个很有名的函数:表达式为F(i)= 0 i=1= 1 i=2= f(i-1)+f(i-2) i2也就是 F(3)= F(2)+F(1) F(4)= F(3)+F(2) :怎么写这个循环?显然先要给出初始值:first=
3、0 F(1)的值; secoend= 1 F(2)的值 然后进行循环,定义循环变量i 从3开始到N结束(N是你想要结束的那个数,题目里是30。)求F(I)并打印出来这样循环体就是F= first +secoendfirst=secoendseconed= F这是啥意思?我们说每循环一次,就计算出了新一个数。这样下一个数就应该是这个新数与前面那个第2个数的和了。就是新数将前两个数象挤牙膏一样挤出一个来。 first secoend F first seconed F这个first就不要了,seconed变成first, F变成了seconed下次循环还是计算 first+seconed 就可以了
4、。保证了循环体表达式F=first+secoend不变明白了?所以程序就可以写成private sub form_click()dim i%, first%, secoend%, f%first = 0seconed = 1for i = 3 to 30 f=first + seconed print f first = seconed secoend = fnext iend sub3日志标题:关于while30:42 更新时间:42所有的for 循环都可以变成while格式 FOR I = 1 TO 3 PRINT INEXT I改怎么改?首先设置 I的 初始值为1 循环的条件就为 I=3
5、 就是I为1 当 I不大于3的时候执行循环,当I大于3了就退出了。当然在循环体内要把I的值加一了,不然就死循环了i = 1whlie i=3 print i i= i + 1wend非常容易吧扩展一下!扩展一:i= 1while i=1i=i-14志标题:关于九九乘法表29:59 更新时间:59九九乘法表是本章比较重要的题目。以前考试出过原题。很好的利用了循环语句及循环的嵌套。同学应该尽量理解每一个语句。如果不能理解。不妨把它背下来 理解:重点是一个print语句的理解。循环的嵌套应该比较容易理解了,主要是print语句把大家搞晕了 要参考一下前面对print语句的介绍!程序: dim i%,
6、 j%, str$print Tab(35); 九九乘法表for i= 1 to 9 for j= 1 to 9 str= i &* & j &= i*j print Tab(j-1)*15 + 1); str; next jprintendsub1、程序开始定义了i:外循环变量,J:内循环变量,STR:所要打印的字符串变量2、PRINT之一: 用PRINT来打印表头,print可以跟函数(Tab(35),Spc(35).还记得什么意思吗?TAB表示向后移动一段距离,SPC表示打印多少个空格);可以跟字符串(print 你好,乘号,*,!,这些被引号引起来的都是字符串,可以是任意字符);还可以
7、跟变量。比如print i 这时候I是多少就打印出多少。(比如 i=5, print i)这个时候print出来的就是5了3、print之二: 容易被大家忽略的是print 后面跟的标点符号 print后面主要可以跟分号,或者不跟。不跟的时候是默认打印完这一语句后换行,下一个print语句在第二行打印。跟分号的时候是不换行,下一个print语句紧跟着上一个语句之后看例子:for i= 1 to 3 与 for i= 1 to 3print i print i;next i next i的区别左边打出来是右边打出来就是1233print 什么也不加,就是换行了3、关于字符串STRSTR是定义的一
8、个字符串变量。STR是什么。我们想根据循环执行到不同时候STR不一样。当I为1,J为1的的时候 STR为“1*1=1”,I为2,J为2的时候 STR就为“2*2=4”。所以要对STR赋值的时候做一个字符串连接的小技巧另STR为I的值连接一个乘号字符,再连接J的值,再连接一个等号字符,再连接I*J的结果,所以写成 str=i &4、开始循环了,我们要打印9行,假设每行1个表达式,第1行是 1*1=1第2行是 2*1=1第3行是 3*1=1这时候程序就是for i = 1 to 9print i & 1 &i此时,我们希望的是每一行打印九个表达式。第一行变成:1*1=1 1*2=2 1*3=3。1
9、*9=9于是将print i*1=i语句改成(1)打印9次(2)隔一定区域打印(为了让每个表达式分开打印)(3)不换行所以用内循环实现FOR J = 1 TO 9 print i & i*j ;NEXT J此时I 为外循环给他赋的值表示第几行。也表示乘数。注意后面的分号。当然在程序中我们把这个字符串赋给了strstr= i &于是可以写成FOR J= 1 TO 9 PRINT STR;就可以了不过这样打印出来还不是我们想要的效果,为什么。都挤在一起了呀怎么样让每一个表达式都间隔一定的距离呢。用TAB()函数,或者SPC()都可以。这里用TAB(j-1)*15)+1)(j-1)*15+1 是什么
10、?是空格或者间隔区域的大小呀:)书上是乘9,这里用乘15。看看效果如何?这样把程序改完就成了好了,这样循环完是个什么样?1*9=9 2*1=2 2*2=4。9*9=81怎么会这样?哈哈,每行打印完忘记换行了呀在内循环结束,外循环开始下一次之前,就是在每打印完一行,开始打印第二行之前加一个换行呀什么时候外循环开始下一次?NEXT I 嘛笨换行怎么换?print什么也不加于是程序就成了上面所写的5日志标题:999的那个课堂补充习题26:20 更新时间:28:25第5章 需要解释的题目:补充题第3题:用户输入数据,统计用户输入次数和所有数据之和。当用户输入999时结束。1.关于读题!大家读题的本事还
11、真是有一套,本题要求统计用户输入的次数,另外统计所有输入数据的和.不是输入次数与所有数据的和.无言啊2.要求统计用户输入次数,定义变量n%,每输入一次N加1即可3.统计用户输入数据的和,定义temp%暂存用户输入数据.定义s%累加每次输入的temp值!4.关于输入,使用inputbox让用户输入数据temp=val(inputbox(输入数据)5.循环条件是temp是否为999,若temp为999时,循环退出,否则继续让用户输入.6.循环体为 n=n+1 次数加一 temp=inputbox()让用户新输入一个数据 s=s+temp计算累加值7.程序:form_click()dim n%,temp%,s%n=1temp=val(inputbox(s=tempwhile temp999n=n+1s=s+tempprint 用户输入了;n;次N次结果之和为s
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1