欢迎来到天天文库
浏览记录
ID:6131756
大小:141.00 KB
页数:30页
时间:2017-11-14
《循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、循环结构程序设计AlexZhang首先,我们回顾一下前面还未完成的一个任务【任务1】:4人中有一人是小偷,现在警察得到了这样的证词:A说:不是我。B说:是C。C说:是D。D说:他胡说。已知3个人说的是真话,一个人说的是假话。现在要根据这些信息,确认小偷是谁。【分析】:现在我们已经能够将已知描述为计算机语言,那么如何才能求解呢?可以这样考虑:假设小偷是“thisman”,则已知就可以写作A说:不是我。B说:是C。C说:是D。D说:他胡说。由于“thisman”的取值无非是‘A’、‘B’、‘C’、‘D’,如果我们让“thisman”的取值依次是‘A’~
2、‘D’,分别对4个关系式求值,如果为“True”的表达式有3个那么这时“thisman”的值就是问题的解。怎样才能让“thisman”的值从‘A’~‘D’呢?Thisman<>’A’;Thisman=‘C’;Thisman=‘D’;Thisman<>’D’;一、FOR语句1.简单For循环语句For语句构成的循环有递增和递减循环两种形式:(1)递增型FOR循环。如果我们想重复的做某件事可以使用循环语句,FP中有三种循环语句:FOR循环变量:=初值downto终值DO循环的语句(或语段)FOR循环变量:=初值to终值DO循环语句(或语段)(2)递减型
3、FOR循环递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。例1:从键盘读入10个数,求和输出;例2:倒序输出大写字母表;1).循环变量赋初值;2).检测循环变量是否超过终值;超过则执行For的下一条语句,否则下一步;3).执行循环体;4).改变循环变量;5).跳转到到第2步;(3)For循环的执行步骤:For循环变量:=初值to终值do循环体语句;For程序框图:再接着前面的例子讨论,要让“thisman”从‘A’~‘D’,显然thisman应该是一个什么类型的变量?那么我们解决问题的过程可以用下面的流程图表示:Thisma
4、n<>’A’;Thisman=‘C’;Thisman=‘D’;Thisman<>’D’;Fort:=‘A’to‘D’don:=ord(t<>’A’)+ord(t=‘C’)+ord(t=‘D’)+ord(t<>’D’);n=3TRUEFALSEWriteln(t);【程序实现】【任务2】:求100以内奇数之和。【任务3】:求10的阶乘。2.For循环的嵌套使用(多重循环)多重循环循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。例如,以下FOR循环输出5行,每行输出10个星号(*)fori:=1to5dobe
5、ginforj:=1to10dowrite(‘*’);writeln;end;【练习】检查下面程序的错误:1)2)3)4)5)百元买百鸡问题;一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,问有什么方案?6)刑侦大队对涉及6个嫌疑犯人的一桩疑案进行分析:A、B至少有1人作案;A、E、F3人中至少有2人参与作案;A、D不可能是同案犯;B、C或同时作案,或与本案无关;C、D中有且仅有1人作案;如果D没有参与作案,则E也不可能参与作案。3.FOR循环的几点注意内容:1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整
6、型,字符型,枚举型,子界型,不允许是实型。2)不允许在循环体内再对循环控制变量赋值。例如:a:=10;b:=50;fork:=atobdobegink:=k+1;writeln(k);end;二、While语句当布尔表达式的值为TRUE时,才会运行语句序列(循环体),否则循环将不会被执行,即从循环头部就退出,而转向执行END后的语句。循环结束条件在进入循环体之前测试,若最初的测试值为false,则根本不进入循环体,也就是说while循环是是属于当型循环。为了能使while重复能终止,循环体中一定要有影响布尔表达式的操作,否则该循就是一个死循环。wh
7、ile语句用于“当满足某一条件时进行循环”的情况。while语句的语法格式:while布尔表达式do语句;例:计算18!WHILE程序框图:WHILE语句是在循环开始时就判断布尔表达式的值时否为TRUE;如果为TRUE,就进入循环,运行循环体;如果为FALSE,跳出循环,执行While的下一条语句。While布尔表达式do循环体语句;例:从键盘上输入两个整数M、N,求它们的最大公约数。【分析】:只需从M、N中更小的一个数开始,每次让其减1,直到这个数能同时被M和N数整除为止。三、Repeatuntil语句repeat语句用于“重复执行循环体,一直到
8、指定的条件为真时为止”。语法格式为:【任务】:从键盘读入小于10的数字,直到读入的数字和计算机随机产生的数字相同停止,输出
此文档下载收益归作者所有