版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、要点:要点: 1.算法的概念及特点算法的概念及特点 2.掌握程序掌握程序3种根本构造的表示种根本构造的表示 3.掌握利用分支构造编程掌握利用分支构造编程 4.掌握利用循环构造编程掌握利用循环构造编程 5.常用控件常用控件 循环构造可以使某些语句或程序段反复执行假设干次。 假设某些语句或程序段需求在一个固定的位置上反复操作,运用循环是最好的选择。 3循环构造循环构造常见的循环构造有:涉及数据表的循涉及数据表的循环,第环,第6章引见章引见条件条件语句序列语句序列EnddoEnddo之后的语句之后的语句NY循环循环体体 教材P62【例】计算【例】计算1+2+3+1001+2+3+100第第 1 1
2、步,步, 计算计算 0+1 0+1;第第 2 2 步,步, 计算计算 (0+1)+2 (0+1)+2;第第 3 3 步,步, 计算计算 (0+1+2)+3 (0+1+2)+3; 第第 i i 步,步, 计算计算 (0+1+i-1)+i (0+1+i-1)+i; . . 第第 100 100 步,计算步,计算 (0+1+99)+100 (0+1+99)+100; 递归递归算法算法前前i-1次累加和次累加和第第i次累加项次累加项递推公式递推公式在条件循环中如在条件循环中如何表达的?何表达的?s=1+2+3+100s=1+2+3+100根本方法根本方法: :属于属于“累加器类型问题累加器类型问题 1
3、 1在进入累加前先给累加器赋初值在进入累加前先给累加器赋初值 s=0 s=0求和普通为求和普通为0 02 2用循环语句实现累加用循环语句实现累加 循环控制变量赋初值:循环控制变量赋初值:i=1i=1 循环条件循环条件:i=100:i=100 循环变量的改动规律循环变量的改动规律:i=i+1:i=i+13 3循环体语句的设计循环体语句的设计 s=s+i s=s+i ( (累加器当前值累加器当前值= =累加器原值累加器原值+ +循环当前值循环当前值) ) i=100s=s+i i=i+1s=0, i=1开场开场终了终了输出输出sYN循环变量赋初值循环变量赋初值循环条件循环条件i大于大于100就终了
4、就终了循环变量的变化趋势循环变量的变化趋势从从1变到变到100“计算按钮的计算按钮的clickclick事件代码:事件代码:s=0s=0i=1i=1do while i=100do while i=100s=s+is=s+ii=i+1i=i+1enddoenddoThisform.text1.value=sThisform.text1.value=s循环体循环体【修正例【修正例3-83-8】计算】计算s=1+2+3+n s=1+2+3+n x: x=0 x=n x=x+1S: s=0 S=s+x“计算命令按钮的计算命令按钮的“click事件代码:事件代码:n=thisform.text1.va
5、lue s=0 x=1do while x=ns=s+xenddothisform.text2.value=s 阐明:阐明: 循环构造从循环构造从do whiledo while开场,到开场,到enddoenddo终终了,两者必需成对出现;在了,两者必需成对出现;在enddoenddo后面可以书后面可以书写注释。写注释。 循环能否继续取决于条件的当前取值,循环能否继续取决于条件的当前取值,普通情况下循环体中应含有改动条件取值的普通情况下循环体中应含有改动条件取值的命令或语句,否那么将呵斥死循环。命令或语句,否那么将呵斥死循环。 循环构造能本身嵌套循环构造能本身嵌套( (多重循环多重循环) ),
6、还,还能与选择构造的各种方式嵌套。能与选择构造的各种方式嵌套。 教材P62确定循环变量并赋初值确定循环变量并赋初值( (在在FORFOR中实现中实现) )确定循环条件并判别?确定循环条件并判别?( (在在FORFOR中实现中实现) )执行循环体中语句序列执行循环体中语句序列循环体变量按步长变化循环体变量按步长变化( (在在FORFOR中实现中实现) )执行执行ENDFORENDFOR之后的语句之后的语句计算计算1+2+3+1001+2+3+100s=0s=0for i=1 to 100 for i=1 to 100 s=s+is=s+iendforendforThisform.text1.va
7、lue=sThisform.text1.value=sstep 1( (教材教材P60) P60) 【例【例3-93-9】设计如下图表单,在文本框】设计如下图表单,在文本框text1text1中输入中输入N N的值,求的值,求N!N!。 如:如:123.1001给累乘器赋初值给累乘器赋初值 p=1普通为普通为12用循环语句实现累乘用循环语句实现累乘 循环变量赋初值循环变量赋初值:i=1 循环条件循环条件:i= thisform.text1.value 循环变量改动规律循环变量改动规律: i=i+13循环体设计循环体设计 p=p*i (累乘器当前值累乘器当前值=累乘器原值累乘器原值*循环当前值循
8、环当前值 )根本方法根本方法: :属于属于“累乘器类型问题累乘器类型问题 输入输入n ni=1i=1,fac=1fac=1 i=n i=1 n=1 fac=fac fac=fac* *n n n=n-1 n=n-1 输出输出facfac 求求n n!的!的N-SN-S图图“计算命令按钮的计算命令按钮的“Click事件代码:事件代码:p=1for i=1 to thisform.text1.valuep=p*iendforthisform.text2.value=p 阐明:阐明: 步长可正可负,缺省为步长可正可负,缺省为1 1。 循环体中不应包含改动循环变循环体中不应包含改动循环变量值的命令,否
9、那么循环次数将随量值的命令,否那么循环次数将随之改动。之改动。 假设循环可以经过计数来控制,假设循环可以经过计数来控制,那么本循环比条件循环更为方便。那么本循环比条件循环更为方便。【练习【练习1】求】求100以内的奇数和。以内的奇数和。A=1+3+5+99A=1+3+5+99循环变量循环变量初值初值n=1循环条件循环条件n100循环变量的变化循环变量的变化趋势趋势n=n+2请同窗们本请同窗们本人写出流程人写出流程图和程序图和程序循环体累加语句:循环体累加语句:A=A+n222.21nK【练习【练习2】求】求循环变量循环变量初值初值x=1循环条件循环条件xn循环变量的变化循环变量的变化趋势趋势x
10、=x+1循环体累加语句:循环体累加语句:K=K+x2请同窗们本请同窗们本人写出流程人写出流程图和程序图和程序【练习【练习3】 n1.312111001.4131211请同窗们本请同窗们本人写出流程人写出流程图和程序图和程序s=0for i=1 to 100s=s+(-1)(i+1)/iendforthisform.text1.value=s方法方法1:方法方法2:s=0k=1for i=1 to 100s=s+k/ik=-kendforthisform.text1.value=s命令按钮的命令按钮的“click事件代码:事件代码:s1=0s2=0for i=1 to 99 step 2s1=s
11、1+1/iendforfor i=2 to 100 step 2s2=s2+1/iendforthisform.text1.value=s1-s2方法方法3:思索:计算思索:计算e e的近似值。其公式为:的近似值。其公式为:e e1+1/1!1+1/1!1/2!1/2!1/3!1/3!1/N!1/N!,直到直到1/N!0.0000011/N!=0.000001s=s+1/pp=p*ii=i+1enddothisform.text1.value=s阶乘累加【例】求一切的水仙花数。【例】求一切的水仙花数。(所谓水仙花数是指一所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。个三位数,其各
12、位数字的立方和等于该数本身。编程方法:编程方法: “枚举法枚举法 按问题本身的性质,一一列举出该问题按问题本身的性质,一一列举出该问题一切能够的解,并在逐一列举的过程中,检验一切能够的解,并在逐一列举的过程中,检验每个能够解能否是问题的真正解,假设是,我每个能够解能否是问题的真正解,假设是,我们采用这个解,否那么丢弃它。对于所列举的们采用这个解,否那么丢弃它。对于所列举的值,既不能脱漏也不能反复。值,既不能脱漏也不能反复。查找范围:查找范围:三位数三位数100999恣意一个三位数恣意一个三位数X百位数字百位数字X1十位数字十位数字X2个位数字个位数字X3判别这个三位数判别这个三位数x是水仙花数
13、的条件:是水仙花数的条件:X=x13+x23+x33【练习【练习4】 100以内可以被以内可以被X整除的数之和。整除的数之和。开场开场S=0,i=1S=0,i=1输入输入X Xi=100i=100真真输出输出s s的值的值终了终了假假i=i+1i=i+1S=S+iS=S+iMod(i,X)=0Mod(i,X)=0真真假假【练习【练习5】找出一切的四位水仙花数】找出一切的四位水仙花数开场开场S=0,i=1S=0,i=11000=i and i=99991000=i and i=9999真真输出输出y y终了终了假假i=i+1i=i+1分别取各位数分别取各位数Y=XY=X真真假假计算各位数立方和计
14、算各位数立方和y y【练习【练习6】找出一切的三位回文数】找出一切的三位回文数开场开场S=0,i=1S=0,i=1100=i and i=999100=i and i8x=Av56:YijB8逆序:逆序: 从右到左逐个取出从右到左逐个取出8 8 B Bj j i iY Y : : 6 6 5 5 v v A A 11 10 9 8 7 6 5 4 3 2 1 次数次数i(i(循环变量循环变量):):总次数总次数= =总的字符数总的字符数c=c+substr(x,c=c+substr(x,i,1)i,1)C=8BjiY:65vA C=8BjiY:65vA substr(x,i,1) substr
15、(x,i,1)总的字符总的字符数数len(x)len(x)确定变量:确定变量:x x:存恣意字符串:存恣意字符串x= Av56:YijB8 x= Av56:YijB8 i i:存截取次数:存截取次数(1len(x)(1len(x)c c:存逆序字符串:存逆序字符串 c=c+substr(x,i,1) c=c+substr(x,i,1)确定算法:用循环在原字符串中从右到左逐个截取字符,重新组装确定算法:用循环在原字符串中从右到左逐个截取字符,重新组装成逆序字符串成逆序字符串确定循环三要素:确定循环三要素:循环变量循环变量 : i (i : i (i初值为初值为len(x),len(x),终值为终
16、值为1)1)循环条件循环条件: i=1: i=1循环条件改动:循环条件改动:i=i-1(i=i-1(从右到左截取从右到左截取) )【例】输入一串【例】输入一串ASCII字符,显示数字字符串。假设字符,显示数字字符串。假设输入:输入:Av56:YijB8 显示:显示:568。 请同窗们本请同窗们本人写出程序人写出程序从左到右逐个取出字符从左到右逐个取出字符x x判别判别x x是数字的条件:是数字的条件:Asc(x)asc(0) and Asc(x)asc(0) and Asc(x)asc(9) Asc(x)8 显示:显示: AYB 。 输入一串输入一串ASCII字符,显示小写字母串。假设输入:字
17、符,显示小写字母串。假设输入: Av56:YijB8 显示:显示:vij 。请同窗们本请同窗们本人写出程序人写出程序【例】如下图一程序界面。文本框【例】如下图一程序界面。文本框TEXT1曾经输入一曾经输入一串文字,单击串文字,单击“转换命令按钮后,文本框的值将变转换命令按钮后,文本框的值将变为什么?为什么?“转换转换 命令按钮的命令按钮的CLICK 事件代码:事件代码:N=LEN(THISFORM.TEXT1.VALUE)Y=DO WHILE N0 X=SUBSTR(THISFORM.TEXT1.VALUE,N,1) IF ASC(X)=ASC(a) X=UPPER(X) ELSE X=LOW
18、ER(X) ENDIF Y=X+YN=N-1ENDDOTHISFORM.TEXT1.VALUE=YtHIS IS A cpu.【练习【练习7】输入一个正整数判别这个是几位数。】输入一个正整数判别这个是几位数。Command1_click:x=thisform.text1.valueW=0 &位数计数器位数计数器If int(x)=x and x=0 do while x=1 x=int(x/10) w=w+1 enddo messagebox(他输入的是一个他输入的是一个+alltrim(str(w)+位位数数)Else messagebox(请输入正整数请输入正整数.)endif拓展拓展【练习【练习8】将整数】将整数x中每一位上为奇数的数依次取出,并逆中每一位上为奇数的数依次取出,并逆序构成一个新数前往。例如:程序运转时输入序构成一个新数前往。例如:程序运转时输入123456789,输出:,输出:b=97531。Command1_click:x=thisform.text1.valuey=0 If int(x)=x and x=0 do while x=1 x1=mod(x,10) &记录从后向前的每一位数记录从后向前的每一位数 IF x1%2=1 &判别每一位能否为奇数判别每一位能否为奇数 y=y*10+x1 &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全面试题及答案详解
- 临床高钾血症治疗指南
- 糖尿病足综合防治临床指南
- 企业客户投诉处理流程优化
- 地理课程教学设计案例分析
- 高层住宅楼消防设施升级方案
- 内外结合混合运算专项训练题库
- 抹灰工岗位理论知识考核试卷
- 城市绿化项目管理流程
- 电力公司设备日常检修流程
- 公路养护管理计划与执行报告
- 2025年城市地下综合管廊建设财务可持续性研究报告
- 6.2 学会依法办事 课件-2025-2026学年统编版道德与法治 八年级上册
- 2025江西南昌市青山湖区招聘社区工作者(专职网格员)45人考前自测高频考点模拟试题及参考答案详解一套
- 小学数学课标考试真题及答案
- 2025年银行招聘各银行笔试真题(附答案)
- (初级)小红书种草营销师认证考试真题试题(附答案)
- 预包装食品安全管理制度
- T/CCSAS 025-2023化工企业作业安全分析(JSA)实施指南
- MOOC 旅游学概论-中国地质大学(武汉) 中国大学慕课答案
- 地震与地震灾害第四章-海啸篇课件
评论
0/150
提交评论