实验4:程序结构.docVIP

  • 22
  • 0
  • 约 4页
  • 2017-05-12 发布于河南
  • 举报
实验4:程序结构

实验4:程序结构 [实验目的] 理解VFP的2种工作方式:交互和程序执行方式;掌握程序文件的建立、存盘、调用方法和注释语句的使用;熟悉3种程序结构;会用调试器来分析程序流程。 [理论要点] 行首注释语句: NOTE | * 在程序文件中指示注释行的开始,注释行不被执行。 行尾注释语句: [实验内容]完善下列程序横线处的代码,并调试运行。 1、建立并执行程序p1.prg,程序功能:判断用户输入的整数是否是偶数。 (在命令窗口中输入:modify command p1)并输入程序代码如下: input 一个整数 to x if ? “偶数” else ? “奇数” endif (按CTRL+W键,存盘;在命令窗口中输入命令:DO p1来执行该程序。) 2、建立并执行p2.prg,程序功能:判断用户输入的整数是正数、负数还是零,代码如下: input 一个整数 to x if x0 ? 你输入的是一个正数 else ? 你输入的是一个负数 else ? 你输入的是零 endif endif 3、建立并执行p3.prg,程序功能:根据学生的分数情况给出成绩等级,代码如下: Input 输入成绩的数值: to x Do case Case x=90 and x100 ? 优秀 Case x=80 and x90 ? 良好 Case x=70 and x80 ? 中等 Case x=60 and x70 ? 及格 ______ ? 悲惨,你可能不及格阿! Endcase 4、建立sum.prg,程序功能是求 1+2+3+…+10的和,代码如左下栏所示: S=0 K=1 DO WHILE K=10 S=S+K ENDDO ? “1+2+…+10=”,S *S=0 *K=1 *DO WHILE K=10 * K=K+1 * S=S+K *ENDDO *? “1+2+…+10=”,S 注意:S=S+K为求和表达式,在循环中的作用是累加K的值,结果保存到S变量中。 思考: (1)若s=s+k分别改为s=s+k**2和s=s+1/k,程序的功能又是什么? (2)请分析右上栏的程序段的功能是什么? 操作练习:用调试器,来跟踪该程序的执行情况,步骤为: 工具/调试器 在调试器窗口中单击“文件”菜单/“打开”,打开要跟踪的程序:sum.prg。 执行“调试”菜单中的“单步跟踪”命令,来跟踪程序的执行,并观察程序中局部变量的值的变化情况。 5、在程序功能不变的情况下,用FOR循环来改写第四题sum.prg。 6、编写程序JC.PRG,程序功能是求5的阶乘(5!=1*2*3*4*5),参考代码如下。 Y=1 FOR X=1 TO 5 ENDFOR ? 5!=,Y 打开调试器,来跟踪该程序的执行情况。 7、参照上一题的程序,编写程序求S=1!+2!+3!+4!+5!的值。 S=0 Y=1 FOR X=1 TO 5 Y=Y*X ENDFOR ? S=,S 8、用调试器跟踪下面程序的执行情况,并写出运行结果。 Store 0 to x, y, s1, s2, s3 Do while x10 x=x+1 Do case Case int(x/2)=x/2 S1=s1+x/2 Case mod(x,3)=0 S2=s2+x/3 Case x%2!=0 s3=s3+1 Endcase Enddo ? s1,s2,s3 运行结果为: 9、找出100—900之间的“水仙花数”(指一个三位数,其各位数字的立方和等于该数本身,如:153=13+53+33),下面是部分代码,请完善,并调试该程序。 *****SXH.PRG求水仙花数**** CLEAR FOR K=100 TO 999 A=INT(K/100) 取百位数字 B=INT((K-100*A)/10) 取十位数字 C=MOD(K,10) 取个位数字,看看取十位是否还有别的方法? IF ? K ENDIF ENDFOR *****结果为:153,370,371,407****** 12、用scan-endscan循环结构来显示zgda表中所有女讲师的记录

文档评论(0)

1亿VIP精品文档

相关文档