版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、循环结构程序设计,Alex Zhang,首先,我们回顾一下前面还未完成的一个任务,【任务1】: 4人中有一人是小偷,现在警察得到了这样的证词: A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。 已知3个人说的是真话,一个人说的是假话。现在要根据这些信息,确认小偷是谁。,【分析】:现在我们已经能够将已知描述为计算机语言,那么如何才能求解呢?,可以这样考虑:假设小偷是“thisman”,则已知就可以写作,A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。,由于“thisman”的取值无非是A、B、C、D,如果我们让“thisman”的取值依次是AD,分别对4个关系式求值,如果为“
2、True”的表达式有3个那么这时“thisman”的值就是问题的解。 怎样才能让“thisman”的值从AD呢?,ThismanA; Thisman=C; Thisman=D; ThismanD;,一、 FOR语句,1.简单For循环语句 For语句构成的循环有递增和递减循环两种形式: (1)递增型FOR循环。,如果我们想重复的做某件事可以使用循环语句,FP中有三种循环语句:,FOR 循环变量:= 初值 downto 终值 DO 循环的语句(或语段),FOR 循环变量:=初值 to 终值 DO 循环语句 (或语段),(2)递减型FOR循环,递减型FOR循环与递增型FOR循环基本相同,只是循环控
3、制变量每次递减。,例1:从键盘读入10个数,求和输出;,例2:倒序输出大写字母表;,1).循环变量赋初值; 2).检测循环变量是否超过终值;超过则执行For的 下一条语句,否则下一步; 3).执行循环体; 4).改变循环变量; 5).跳转到到第2步;,(3)For循环的执行步骤:,For 程序框图:,再接着前面的例子讨论,要让“thisman”从AD,显然thisman应该是一个什么类型的变量?那么我们解决问题的过程可以用下面的流程图表示:,ThismanA; Thisman=C; Thisman=D; ThismanD;,【程序实现】,【任务2】:求100以内奇数之和。 【任务3】:求10的
4、阶乘。,2. For循环的嵌套使用(多重循环) 多重循环 循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。 例如,以下FOR循环输出5行,每行输出10个星号(*) for i:=1 to 5 do begin for j:=1 to 10 do write(*); writeln; end;,【练习】检查下面程序的错误: 1),2),3),4),5)百元买百鸡问题; 一只公鸡值元,一只母鸡值元,只小鸡值元,现用一百元要买一百只鸡,问有什么方案?,6)刑侦大队对涉及6个嫌疑犯人的一桩疑案进行分析:,A、B至少有1人作案; A、E、F3人中至少有2人参与
5、作案; A、D不可能是同案犯; B、C或同时作案,或与本案无关; C、D中有且仅有1人作案; 如果D没有参与作案,则E也不可能参与作案。,3. FOR循环的几点注意内容: 1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整型,字符型,枚举型,子界型,不允许是实型。 2)不允许在循环体内再对循环控制变量赋值。 例如: a:=10; b:=50; for k:=a to b do begin k:=k+1; writeln(k); end;,二、While语句,当布尔表达式的值为 TRUE时,才会运行语句序列(循环体),否则循环将不会被执行,即从循环头部就退出,而转向执行 END后
6、的语句。 循环结束条件在进入循环体之前测试,若最初的测试值为false,则根本不进入循环体,也就是说while循环是是属于当型循环。 为了能使while重复能终止,循环体中一定要有影响布尔表达式的操作,否则该循就是一个死循环。,while语句用于“当满足某一条件时进行循环”的情况。while语句的语法格式:,while 布尔表达式do语句;,例:计算 18!,WHILE程序框图:,WHILE语句是在循环开始时就判断布尔表达式的值时否为 TRUE; 如果为 TRUE,就进入循环,运行循环体; 如果为FALSE,跳出循环,执行While的下一条语句。,例:从键盘上输入两个整数 M、 N,求它们的最
7、大公约数。,【 分析】:只需从 M、 N中更小的一个数开始,每次让其减 1,直到这个数能同时被 M和 N数整除为止。,三、Repeat until语句,repeat 语句用于“重复执行循环体,一直到指定的条件为真时为止”。语法格式为:,【任务】:从键盘读入小于10的数字,直到读入的数字和计算机随机产生的数字相同停止,输出最后猜的次数。,repeat语句1; 语句n;until布尔表达式;,【分析】:问题的核心可以描述为“读一个数,和计算机产生的数比对,直到和计算机产生的数一致,否则重复以上过程。,REPEAT UNTIL程序框图:,其作用是:重复执行语句序列(循环体),直到布尔表达式的值为 T
8、RUE为止。即,当执行完一次语句序列后,布尔表达式的值已经为 TRUE了,这时循环将不会再被执行,而转向执行 UNTIL语句以下的语句。,例:计算 M=1+2+3+4+,直到 M的值大于 5050为止。,例:计算 18!,repeat与while循环之比较,在repeat语句的结构中,布尔表达式求值在计算操作之后,而while语句中,布尔表达式求值在计算操作之前,也就是说repeat至少执行一次循环体。 while语句的成分语句只能是一个语句。因此,当重复动作包含多个语句时,要用begin和end ,使它变成一个复合语句。而repeat语句的保留字repeat和until已经起语句括号作用,可
9、以包含多个语句而无须begin和end。 repeat语句中,当布尔表达式为true时结束循环,而while语句中,是当表达式为false时才结束循环。当描述由计算操作后的情况确定重复是否继续进行的计算时,通常用repeat语句描述。,四、循环的比较,循环之比较,有,有,没有,死循环,不必要,不必要,需要,循环变量,1次以上,0次以上,abs(终值初值)1,执行次数,布尔表达式为假,布尔表达式为真,循环变量没超过终值,循环条件,REPEAT,WHILE,FOR,情况 语句,例1:数组成的图案,如 N=5则有: 1 2 4 7 1 3 5 8 2 6 9 3 0 4 5,【程序实现1】,【程序实现2】,例2:【问题】
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年GPS同步钟项目发展计划
- 2024年航空辅助动力系统项目合作计划书
- 中药执业药师中药学综合知识与技能模拟题246
- 2024年光纤预制棒合作协议书
- 2024年福建泉州泉港区四年级数学第一学期期末调研模拟试题含解析
- 2024年肥西县六上数学期末联考模拟试题含解析
- 2024年果酒及配制酒项目建议书
- 2024年游艺用品及室内游艺器材项目合作计划书
- 2024年大连市瓦房店市六年级数学第一学期期末统考模拟试题含解析
- 2024年常德市临澧县数学六年级第一学期期末教学质量检测模拟试题含解析
- 中医护理四诊法课件
- 髋关节假体植入感染的护理课件
- XXXX年成本费用管理及考核办法(三)
- 山野菜开发利用学- 课件 第四章 山野菜盐渍保藏技术3
- 17、口腔科诊疗指南及技术操作规范
- 《Python网络数据采集课件》
- mhk四级考试模拟题
- 《教育研究方法》教学课件-教育实验研究
- 25道中信银行综合柜员岗位常见面试问题含HR常问问题考察点及参考回答
- 幼儿园课件:万晓蓓大班语言《阿诗有块大花布》课件
- 人教鄂教版小学科学四年级动物的繁殖-2课件
评论
0/150
提交评论