尉文刚
摘 要:笔者在《数据库应用基础—Visual FoxPro(第三版)》教学中发现学生在“案例5.4.1循环结构程序设计”章节知识的理解及应用环节存在很大困难,特别是在运用For语句进行程序设计时困难更大。结合学生实际学情,通过深入剖析For语句知识点,提出“Visual FoxPro中For循環的理解及应用”心得来解决教学中的困惑,并应用于教学实践,在教学中取得了良好的效果。
关键词:循环结构;For循环流程图;满足条件;案例
笔者就以教学中For循环语句的理解及应用为例,谈谈从For循环流程图中学应用的几点心得。循环结构的程序可以根据指定的条件重复执行某个程序段,Visual FoxPro提供了3中循环结构:基于条件的循环(Do-while循环)、针对记录的循环(Scan循环)、指定次数的循环(For循环)。
一、For循环流程图
(一)指定次数的循环For循环流程图如下:
(二)我们从以下四个方面理解For循环流程图:
1.处是将<初值>赋给“循环控制变量”,使其在接下来判断是否执行循环体时有确切的值,程序设计时我们要根据For语句完成的任务给“循环控制变量”确定正确的初值。有些应用中“循环控制变量”只起控制循环执行次数的作用,有些应用中“循环控制变量”不仅控制循环执行的次数,而且还参与完成?处循环所执行操作任务的实现(本文所举的案例属于这种情况)。
2.处“满足条件?”是指判断“循环控制变量”是否满足介于“初值”和“终值”之间(包括“初值”和“终值”)这一条件。如果满足,则执行?,不满足则执行“Endfor之后的语句”。
3.处指定For循环体要执行的操作,程序设计时我们要根据任务要求正确设计此处的语句序列,以完成任务。
4..④处根据可选项[step 步长]中的“步长”值修改“循环控制变量”的值:若[step 步长]缺省,则“循环控制变量”增值1,若[step 步长]出现,则“循环控制变量”按“步长”确定的值增值(“步长”为正,则增;“步长”为负,则减)。
二、For循环应用案例——编程打印九九乘法表
(一)九九乘法表结构如下:
1×1=1
2×1=2 2×2=4
......
(二)结合For流程进行案例分析
1.从案例要完成的任务分析,九九乘法表打印的45个式子有共同的结构:被乘数×乘数=积,程序实现时可以不换行输出这样的形式:被乘数(i)×乘数(j)=积(i*j),该处任务由For流程图中?处实现。
2.分析九九乘法表结构可知换行情况:被乘数每增一,则要换行(输出换行),该处任务由For流程图中?处实现。
3.分析九九乘法表中被乘数递变规律:每行被乘数相同,九行被乘数从1按自然数递增至9,该处任务由For流程图中??④出实现。
4.分析九九乘法表中乘数递变规律:每行乘数从1按自然数递增至该行被乘数,该处任务由For流程图中??④出实现。
5.综合上述分析,用嵌套For循环实现:外层For的“循环控制变量”i表示被乘数,则i由1递增至9;内层For的“循环控制变量”j表示乘数,则j由1递增至i;i*j的值表示乘积。
(三)该任务的实现程序如下:
*for语句应用-----九九乘法表
CLEAR
FOR i=1 to 9&&流程图中??④处
FOR j=1 to i&&流程图中??④处
?? ALLTRIM(STR(i)) +"×" +ALLTRIM(STR(j)) +;
"="+ ALLTRIM(STR(i*j))&&输出:被乘数*乘数=积流程图中?处
??" "
ENDFOR
?&&被乘数每增一,换行流程图中?处
ENDFOR
Return
从上述案例我们可以看出,在For语句流程图的理解中,我们从四个方面做了彻底认识;在应用中紧扣For流程图的理解,实现任务时巧妙地与解决实际问题的方法相结合,达到准确深刻地理解知识点、巧妙高效地解决实际问题的目的。笔者在实际教学中取得不错的教学效果。