2018.4.13 星期五
教学内容:魔方程序段的语句注释理解
教学目的:根据注释,了解规则代码化
教学重点:理解分支与循环结构
教学难点:英语单词与语句的关连
教学时间:2课时
教学地点:微机84班教室
教学过程:
一、导入
我们从九宫格的填写及规则的认识,会填写了25、49、81等宫格,让我们熟悉了魔方中数据的排列规则,我们的目的是通过程序代码的形式,完成
相关的控制逻辑,达到提升数据库技术的应用。
我们又从找网站(熟悉网络地址的应用)、找教案(熟悉网络资源的查找)、找内容(根据微机84班的链接,找到本班的教学内容)、找代码(根据跳转链接,让学生看到程序代码,并看到丰富的教学内容)、抄代码(利用手机完成上述内容的查找,并把代码抄写几遍,达到对魔方代码的感性认识)。
本节课,我们把代码的重要部分,进行注释,帮助大家熟悉每一行代码的主要作用,为增加学习程序语方言的逻辑性打下基础。
二、新授(熟悉程序代码中的主要含义,要求根据解释,能看懂多少代码就消化多少,增强代码与含义的对等消化)
*魔方
CLEAR &&清除屏幕,让屏幕上的内容清除
_screen.FontSize=10 &&设置屏幕上的字体大小为10磅
input "请输入宫格数" to n &&输入魔方中宫格的阶数(宫格的边长数),比如九宫,阶数就是3,并把3保存到n(叫变量)中,以备后用
DIMENSION a(n,n) &&定义数组(就是保存宫格数字的二维表格A)
IF MOD(n,2)=0
? "请输入奇数"
RETURN
ENDIF &&以上一段程序代码(分支结构),如果输入的阶数是偶数,则提示用户需要输入奇数(偶数不符合要求)
d=INT(n/2)+1 &&计算出数字1,应该在第一行中间的位置,算法就是阶数除以2,去掉小数,然后加1。如果n=5(即边长为5,阶数为5,就是25宫格),5除以2,得2.5,去掉小数部分,是2,再加1,得3。 这样就是说明对于25宫格来说,数字1应该在第一行的第3个位置上,并把3保存到d变量中
c=1 &&c变量里保存需要即将填写的数字(变量是什么)
a(1,d)=c &&将数字填入指定的宫格中,重点看第一个数字(C),放到了整 个宫格(A)第一行的(D)列中。
x=1 &&x变量控制着宫格的行数,且x从1开始,就是先填写首行
y=d &&y变量控制着宫格的列数,且从D开始(D应该是上边计算出来的,那个中间位置)
FOR i=1 to n*n &&循环结构,如何计算循环次数(N*N是什么意思,N是什么?)
a(x,y)=c &&将C填写入格
c=c+1 &&填好一个后,让C中的数字增加1,就会由已经填好的1,改成2,以备后用
IF MOD(i,n)=0 &&判断变量 I 是N的倍数吗?如果是n的整数倍,则 i 除以n 的余数就是0(注意程序中代码的大小写都一样行,没区别)
x=x+1 &&行数加1
ELSE &&否则
x=x-1 && 行数减1
y=y+1 &&列数加1
IF x<1 &&行数小于1,就是到了宫格外
x=n &&则将行重新定位到N(N是什么?)
ENDIF
IF y>n &&如果Y(列数)大于N,则行数路到了宫格外
y=1 &&则将列数重要定位到1
ENDIF
ENDIF
ENDFOR
?
s=0 &&这个S也很有用,大家看看有会么用?
FOR i=1 to n &&这里用了循环嵌套,以后会讲到的
s=s+a(i,1) &&这个S将来会用到,看看最后一个S在程序的最后一次出现的地方就行!
FOR j=1 to n
?? STR(a(i,j),LEN(ALLTRIM(STR(n*n)))+1) &&显示宫格的数字,里边的内容,为了显示出对齐的格式而处理的(叫函数)
ENDFOR
?
ENDFOR
? ALLTRIM(STR(n*n)),"宫格的横行、纵列、对角线上",ALLTRIM(STR(n)),"个数字之和为:",ALLTRIM(STR(s))
RETURN &&程序结束,并返回!
三、本节要求
1.根据注释,熟悉代码
2.将本程序段抄写,包括注释(强调一个程序员,都是从抄写程序代码开始的)
3.边抄边想
四、作业及重点
1.熟悉规则中选择(分支)是如何实现的,重复(循环)是如果实现的
2.根据这节课,有哪些注释 没有理解
|