http://nathaniel.tyblog.com/index.shtml
 
 

日历记忆 日历记忆
<<  < 2014 - >  >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
 
 
   
 
我的相册 我的相册
 
 
   
 
分类导航 分类导航

最新日志 最新日志


最新留言 最新留言


最新评论 最新评论

 
 
   
 
日志搜索 日志搜索

用户登陆 用户登陆


我的圈子 我的圈子


我的好友 我的好友


友情链接 友情链接


博客信息 BLOG信息




 
 
 
 
vb | 2014-3-18 14:34:00
 
 
Dime A(10)  &&定义一个数组,具体为什么要定义,开始时可以不加考虑

INPUT “一个十进制整数=” TO X  &&输入语句,等待用户从键盘上输一个数给X变量,这里可以假设输入的是4(这个数小点好跟踪)

I=1   &&变量I被赋值为1,为什么要赋值为1,开始时也别管它,后面自然会知道的(I=1)

YS=MOD(X,2)  &&对X取2的余数,结果赋值给变量YS,因为前面假设是4,所以这里YS变量值为(YS=0)

ZS=INT(X/2)  &&计算出X除以2的商,结果赋值给变量ZS,因为前面假设是4,所以这里ZS变量值为2  (ZS=2)

DO WHILE ZS!=0  &&判断循环条件是否满足,因为ZS最新的值是2,所以条件为真,进入循环体

A(I)=YS  &&此时I为1,将最新的YS值赋值给A(1),也就是余数了(A(1)=0)

YS=MOD(ZS,2)  &&ZS为最新商的值,对其再次取2的余数,结果赋值给YS(YS=0)

ZS=INT(ZS/2)  &&ZS为最新商的值,对其再次计算新的商值(ZS=1)

I=I+1  &&数组下标增加1(I=2)

ENDD  &&跳转到循环开头再次判断ZS!=0是否为真,因为此时最新的ZS是1,所以条件为真,进入循环体

A(I)=YS  &&此时I为2,将最新的YS值赋值给A(2),也就是余数了(A(2)=0)

YS=MOD(ZS,2)  &&ZS为最新商的值,对其再次取2的余数,结果赋值给YS(YS=1)

ZS=INT(ZS/2)  &&ZS为最新商的值,对其再次计算新的商值(ZS=0)

I=I+1  &&数组下标增加1(I=3)

ENDD  &&跳转到循环开头再次判断ZS!=0是否为真,因为此时最新的ZS是0,所以条件为假,不再进入循环体,执行ENDDO后面的语句

A(I)=YS  &&此时I为3,将最新的YS值赋值给A(3),也就是余数了(A(3)=1)

***此时可以考虑一下数组元素A(1)、A(2)、A(3)分别放的是每次得到的余数,是不是有感觉了呢?******

继续!

J=I  &&此时I为3,赋值给J(J=3)

DO WHILE J>=1  &&判断循环条件是否满足,因为J的值是3,所以条件为真,进入循环体

?? STR(A(J),1)  &&以字符形式输出A(J)的内容,也就是A(3)的内容(屏幕上显示1)

J=J-1  &&数组下标减1(J=2)

ENDD  &&跳转到循环开头再次判断J>=1是否为真,因为此时最新的J是2,所以条件为真,进入循环体

?? STR(A(J),1)  &&以字符形式输出A(J)的内容,也就是A(2)的内容(屏幕上显示0)

J=J-1  &&数组下标减1(J=1)

ENDD  &&跳转到循环开头再次判断J>=1是否为真,因为此时最新的J是1,所以条件为真,进入循环体

?? STR(A(J),1)  &&以字符形式输出A(J)的内容,也就是A(1)的内容(屏幕上显示0)

J=J-1  &&数组下标减1(J=0)

ENDD  &&跳转到循环开头再次判断J>=1是否为真,因为此时最新的J是0,所以条件为假,不再进入循环体,执行ENDDO后面的语句

结束

***此时可以考虑一下数组元素A(1)、A(2)、A(3)是从后往前进行屏幕输出的,正好满足我们对余数的从下往上书写的规律******

   

[ By:Nathaniel | 阅读全文 | 回复(0) | 引用通告 | 编辑 ]
 
发表评论:
 
     
 
天涯博客 www.tyblog.com 版权所有
 
天涯博客欢迎您!