VisualFoxPro程序设计教程课件作者刘瑞新第6章节.pptVIP

  • 0
  • 0
  • 约8.43千字
  • 约 45页
  • 2018-05-08 发布于广东
  • 举报

VisualFoxPro程序设计教程课件作者刘瑞新第6章节.ppt

编写Combo1的RightClick事件代码: IF THIS.ListIndex 0 THISFORM.Text1.Value = THIS.List(THIS.ListIndex) THIS.RemoveItem (THIS.ListIndex) THIS.Value = 1 ENDIF 尚辅网 / 第6章 循环结构程序设计 6.1 循环结构语句 6.2 列表框与组合框控件 6.3 页框 6.1 循环结构语句 6.1.1 当型循环命令DO WHILE 想要在某一条件满足时执行循环,可以使用当型循环(DO WHILE)结构。当型循环的N-S流程图,如图6-1所示。 {条件成立时所执行的操作块,即循环体} a块 {该(循环)条件成立吗?} 当 条件 当型循环的语法格式为: DO WHILE 〈条件〉 [〈命令列〉] [EXIT] [LOOP] ENDDO 【例6-1】计算阶乘的程序(图6-2)。非负整数n的阶乘定义如下: 分析:求阶乘n!,可以采用累乘的方法,用变量t来存放累乘的积(初值为1),用变量i来存放“乘数”。i从1开始到n为止。 根据以上分析画出流程图,如图6-3所示。 THISFORM.Text2.Value = t {输出乘积} 输出t {计数器增1} i ← i + 1 {累乘} t ← t × i {当计数器的值不超过n时} 当 i = n {计数器赋初值} i ← 1 {累乘器赋初值} t ← 1 输入n 根据流程图可写出命令按钮的Click事件代码如下。 n = THISFORM.Text1.Value t = 1 i = 1 DO WHILE i = n t = t * i i = i + 1 ENDDO 另外,为了防止数据溢出,限制输入的整数不超过20。为此,编写文本框Text1的事件代码如下:⑴ Valid事件代码: a = THIS.Value IF a 0 OR a 20 MESSAGEBOX(请输入不超过20的非负整数!) THIS.GotFocus RETURN 0 ELSE RETURN .T. ENDIF ⑵ GotFocus事件代码: THIS.SelStart=0 THIS.SelLength=LEN(THIS.Text) 【例6-2】输入两个正整数,求它们的最大公约数。如图6-4所示。 根据此分析画出流程图如图6-5所示。 输出n {输出最大公约数} 求m / n的余数 n ← r m ← n 当 r ≠ 0 求m / n的余数 大数放入m,小数放入n 输入m,n 表单界面的设计参见前面章节,这里给出命令按钮的Click事件代码: m = THISFORM.Text1.Value n = THISFORM.Text2.Value IF n * m = 0 MESSAGEBOX(两数都不能为0!) RETURN ENDIF IF m n t = m m = n n = t ENDIF r = m % n DO WHILE r != 0 m = n n = r r = m % n ENDDO THISFORM.Text3.Value = n 【例6-3】输入一个正整数,利用“当型”循环判断是否素数。 根据上述分析,画出流程图,如图6-7所示。 输出:n不是素数 假 输出:n是素数 真 如果 s = 0 I ← I + 1 假 s ← 1 真 如果n 被I整除 and s = 0 I ← 2,s ← 0 输入n 表单界面的设计参见前面章节,这里给出命令按钮的Click事件代码: n = THISFORM.Text1.Value s = 0 假设该数是素数 i = 2 DO WHILE i = SQRT(n) AND s = 0 IF n % i = 0 整除 s = 1 不是素数 ELSE i = i + 1 产生下一个除数 ENDIF ENDDO IF s = 0 a = 是一个素数 ELSE a = 不是素数 ENDIF = MESSAGEBOX(ALLT(STR(n)) + a, 64 + 0 + 0, 信息) THISFORM.Text1.SetFocus 编写Text1的GotF

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档