- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环结构程序设计 安庆四中 丁贤友 while 循环语句 格式: while 布尔表达式do 循环体; 功能: (1)计算布尔表达式的值; (2)若布尔表达式的值为true ,则转(3) ,否则,转(5) ; (3)执行循环体; (4)转(1) ; (5)循环结束,执行循环体后面的语句。 while 循环语句的执行过程 说明: (1)在进入循环体之前测试布尔表达式的值,若最初的值为false ,则根本不进入循环体。 (2)为了使循环能终止,循环体中一定要有影响布尔表达式的操作,否则该循环将陷入死循环。 (3)循环体只能是一条简单的语句或一条复合语句。 例如: s:= 0 ; i:= 1 ; while (i= 4) do begin s:=s+i; i:=i+1 ; end ; begin 和end 括起来的就是while 循环语句的循环体。 while 循环语句的应用 【例4‐8】 输入一串以“ ?”为结束标志的字符,统计其中字母和数字的个数。 问题分析: 很明显,本题是一个计数问题:重复读入字符,根据字符的类别,进行统计。但是,输入多少个字符呢? 题目中没有明确说明,只说明了结束输入的标记。由于这个重复操作的次数未知,不适于应用for 循环语句了。而解决未知次数的循环是while 循环语句所擅长的,因此本题应用while 循环语句来解决。 算法描述: (1)计数器初始化:字母个数zm←0 ,数字个数sz←0 ; (2)读入一个字符给ch ; (3)当该字符ch 不是“ ?”时,重复操作: ① 若ch 是字母,则字母个数加1 ∶ zm ← zm + 1 , ② 若ch 是数字,则数字个数加1 ∶ sz ← sz + 1 , ③ 读入一个新字符给ch ; (4)输出统计结果zm 和sz ; (5)结束。 program exam4_8 ; var ch∶ char ; zm ,sz∶ integer ; begin zm ∶= 0 ; sz∶= 0 ; read(ch) ; //在循环外读入第一个字符,使while的条件能正常判断 while ch< > ? do begin if ((ch> = a) and (ch< = z)) or ((ch> = A) and (ch< = Z)) then zm ∶= zm + 1 //输入的是字母 else if (ch> = 0) and (ch< = 9) then sz∶= sz+ 1 ; //输入的是数字 read(ch) ; //继续读入字符 end ; writeln(The numberof letters is :,zm) ; writeln(The numberof figures is :,sz) ; end . 【例4‐9】 求两个正整数m 和n 的最大公约数。 问题分析: 最大公约数(greatest common divisor ,简写为gcd)是指几个数共有的因数之中最大的一个,例如8 和12 的最大公约数是4 ,记作gcd(8 ,12) = 4 。 辗转相除法的算法思想是:对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成一对新数,继续进行上面的除法,直到大数被小数除尽,这时较小的数就是原来两个数的最大公约数。 算法描述: (1)计算被除数m 除以除数n 的余数r ; (2)当r ≠ 0 时,重复下面操作: ① m ← n ; ② n ← r ; ③ r ← m mod n ; (3)输出最大公约数n ; (4)结束。 程序设计: program exam4_9 ; varm ,n ,r∶ integer ; begin write(Please input m ,n :) ; readln(m ,n) ; r∶= m mod n ; //r取m 和n的余数 while r< > 0 do //辗转相除 begin m ∶= n ; n∶= r ; r∶= m mod n ; end ; writeln(The greatestcommon divisor is :,n) ; end . 【例4‐10】 设计问题4‐3 的程序。 program exam4_10 ; var n∶ integer ; score ,tot ,min ,max∶ real; begin writeln(Please input the scores ,and end the inputby print - 1 !) ; n∶= 0 ; //初始化人数 tot∶= 0
您可能关注的文档
- unit8 sectionb第一课时unit8 section b第一课时unit8 section b第一课时unit8 section b第一课时.ppt
- vb6.0教程--从入门到通vb6.0教程--从入门到精通vb6.0教程--从入门到精通vb6.0教程--从入门到精通.ppt
- vb程序设计--循环结构v程序设计--循环结构vb程序设计--循环结构vb程序设计--循环结构.ppt
- urp高校研究生教务管理系介绍urp高校研究生教务管理系统介绍urp高校研究生教务管理系统介绍urp高校研究生教务管理系统介绍.ppt
- vb打开excel的方法v打开excel的方法vb打开excel的方法vb打开excel的方法.doc
- vb部分考试试题及答案vb分考试试题及答案vb部分考试试题及答案vb部分考试试题及答案.doc
- vb第三章课后习题答案vb三章课后习题答案vb第三章课后习题答案vb第三章课后习题答案.doc
- vb复习题选择填空vb复习选择填空题选择填空.doc
- vb教程,分支结构vb教程分支结构,分支结构.ppt
- vap呼吸机相关性肺炎va呼吸机相关性肺炎vap呼吸机相关性肺炎vap呼吸机相关性肺炎.ppt
文档评论(0)