[第8课]3种结构复习_第1页
[第8课]3种结构复习_第2页
[第8课]3种结构复习_第3页
[第8课]3种结构复习_第4页
[第8课]3种结构复习_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PascalPascal的控制结构的控制结构一、顺序结构一、顺序结构三、循环结构三、循环结构二、选择结构二、选择结构三种结构示意图三种结构示意图顺序结构顺序结构循环结构循环结构选择结构选择结构语句语句1语句语句n 条件条件成立成立不成立不成立语句语句1语句语句2循环开始循环开始条件条件循环结束循环结束条件条件循环语句循环语句循环语句循环语句顺序结构顺序结构顺序结构用来表示一个操作序列,程序顺序结构用来表示一个操作序列,程序从序列的第一个操作开始顺序执行,直从序列的第一个操作开始顺序执行,直至执行完最后一个操作为止。至执行完最后一个操作为止。格式如下:格式如下: BeginBegin 语句语句1

2、 1; 语句语句n-1;n-1; 语句语句n n End. End.选择结构选择结构选择结构的基本含义是:从几选择结构的基本含义是:从几个可能的操作序列中,按条件个可能的操作序列中,按条件选择其中一个执行。选择结构选择其中一个执行。选择结构的形式有条件选择结构和多路的形式有条件选择结构和多路选择结构两种。选择结构两种。布尔表达式布尔表达式凡值为布尔型的表达式皆为布尔表达式。凡值为布尔型的表达式皆为布尔表达式。包括布尔常量、布尔变量、布尔函数、关包括布尔常量、布尔变量、布尔函数、关系表达式和逻辑表达式。系表达式和逻辑表达式。1 1、关系表达式、关系表达式通过比较运算符比较两个同类型数据的大小关系

3、,通过比较运算符比较两个同类型数据的大小关系,其值为其值为truetrue或或falsefalse。例:例: x=1 x=6x=1 x=6 5x true false 5x true false 布尔表达式布尔表达式2 2、逻辑表达式、逻辑表达式用逻辑运算符将若干个关系表达式或逻辑表达式用逻辑运算符将若干个关系表达式或逻辑表达式连接起来,其值为连接起来,其值为truetrue或或falsefalse。例例(0=x) and (x=8)(0=x) and (x=8)(y10)(y10) not (s100) not (s100)(0=x) and (x10)(0=x) and (x10)运算的优

4、先顺序运算的优先顺序 notand ornotand or条件选择结构(条件选择结构(if语句)语句)由一个布尔表达式和两个供选择的操作序列组成。由一个布尔表达式和两个供选择的操作序列组成。一般格式:一般格式: if if 布尔表达式布尔表达式 条件条件 then then 语句语句1 1 条件成立时的操作条件成立时的操作 else else 语句语句2 2; 条件不成立时的操作条件不成立时的操作 条件选择结构(条件选择结构(if语句)语句)例例1 输入两个整数,输出较大的数。输入两个整数,输出较大的数。 program ex1 program ex1; var avar a,b b:inte

5、gerinteger; beginbegin write write(enter aenter a,bb);); readlnreadln(a a,b b);); if(ab) then writeln(a)if(ab) then writeln(a) else writeln(b) else writeln(b); end.end. 条件选择结构(条件选择结构(if语句)语句)1 1、条件语句是一个语句,只有一个、条件语句是一个语句,只有一个“;”作为作为分隔符,放在语句的结尾。分隔符,放在语句的结尾。2 2、当条件选择的某个分支要用多个语句描述时,、当条件选择的某个分支要用多个语句描述时,

6、把该分支用把该分支用beginbegin和和endend括起来,写成复合语句。括起来,写成复合语句。If If 布尔表达式布尔表达式 then beginthen begin 语句语句1 1; 语句语句2 2; endend else else 语句语句3 3;条件选择结构(条件选择结构(if语句)语句)4 4、ifif语句可以多层嵌套,语句可以多层嵌套,elseelse分句一般和最近分句一般和最近的的ifif分句配对。分句配对。3 3、如果只需对条件为真的情况作处理,不需处、如果只需对条件为真的情况作处理,不需处理条件为假的情况,可省略理条件为假的情况,可省略elseelse分句。变为分句。

7、变为 If If 布尔表达式布尔表达式 then then 语句;语句;If e1 then If e1 then if e2 then c1 if e2 then c1 else c2 else c2 else else if e3 then c3 if e3 then c3 else c4 else c4 beginbeginendendbeginbeginendend条件选择结构(条件选择结构(if语句)语句)例例2 输入三个整数,输出最大的数。输入三个整数,输出最大的数。 program ex2 program ex2; var var a a,b,cb,c:integerintege

8、r; beginbegin write write(enter a,b,center a,b,c);); readlnreadln(a,b,ca,b,c);); ifif(ab) (ab) thenthen ifif (ac) (ac) thenthen writeln(a) writeln(a) elseelse writeln(c) writeln(c) elseelse ifif (bc) (bc) thenthen writeln(b) writeln(b) elseelse writeln(c) writeln(c) end. end. 条件选择结构(条件选择结构(if语句)语句)作

9、业作业 读入读入x的值,计算函数值的值,计算函数值y。 x(x+2) (2x=10) x(x+2) (2x=10) y= 2x (-1x=2) y= 2x (-1x=2) x-1 (x=-1 x-1 (x10)x10)条件选择结构(条件选择结构(if语句)语句)作业参考程序作业参考程序 program func program func; var var x x,y y:realreal; beginbegin write write(enter xenter x);); readlnreadln(x x);); ifif(x2)and(x2)and(x-1)and(x-1)and(x=2)

10、then y:=2then y:=2* *x x elseelse y:=x-1; y:=x-1; writeln(y=,y) writeln(y=,y) end. end. 多路选择结构(多路选择结构(case语句)语句)由一个表达式和多个可选择的操作序列组成。由一个表达式和多个可选择的操作序列组成。一般格式:一般格式: case case 表达式表达式 ofof 常量表常量表1 1: 语句语句1 1; 常量表常量表2 2: 语句语句2 2; 常量表常量表n n: 语句语句n n; else else 语句语句n+1 n+1 可选项可选项 end end;多路选择结构(多路选择结构(case

11、语句)语句)1、end与与case对应,相当于对应,相当于case语句的语句的结束标志。结束标志。2、常量必须与表达式同类型,每个常量只、常量必须与表达式同类型,每个常量只能在常量表中出现且仅出现一次。能在常量表中出现且仅出现一次。3、表达式只能是顺序类型。、表达式只能是顺序类型。多路选择结构(多路选择结构(case语句)语句)4、每个分支的操作语句可以是多个语句,、每个分支的操作语句可以是多个语句,必须用必须用begin、end括起来构成复合语句。括起来构成复合语句。5、case语句也可以嵌套。语句也可以嵌套。多路选择结构(多路选择结构(case语句)语句)例例1 1 判断判断2008200

12、8年年, ,每个月份的天数。每个月份的天数。 program day; program day;var month,days:integer;var month,days:integer;beginbeginwrite(enter month:);write(enter month:); readln(month); readln(month);case month ofcase month of1,3,5,7,8,10,12:days:=31;1,3,5,7,8,10,12:days:=31;4,6,9,11 :days:=30;4,6,9,11 :days:=30;2 :days:=29;

13、2 :days:=29;else days:=0;else days:=0;end;end;if days0 then writeln(Days=,days);if days0 then writeln(Days=,days); end. end.思考思考: :如果要求输入年和月如果要求输入年和月份,要求输出某月的份,要求输出某月的天数如何实现天数如何实现? ?多路选择结构(多路选择结构(case语句)语句)思考题参考程序思考题参考程序program day;var year,month,days:integer;beginwrite(Input year month:); readln(ye

14、ar,month);case month of1,3,5,7,8,10,12:days:=31;4,6,9,11 :days:=30;2 :if (year mod 4=0)and(year mod 1000)or(year mod 400=0) then days:=29 else days:=28;else days:=0;end;if days0 then writeln(Days=,days);end. 多路选择结构(多路选择结构(case语句)语句)例例2 2 期末来临了,班长决定将剩余班费期末来临了,班长决定将剩余班费X X元钱,用元钱,用于购买若干支钢笔奖励给表现好的同学。已知商

15、于购买若干支钢笔奖励给表现好的同学。已知商店里有三种钢笔,单价分别为店里有三种钢笔,单价分别为6 6元、元、5 5元和元和4 4元。班元。班长想买尽量多的笔,同时又不想有剩余的钱。请长想买尽量多的笔,同时又不想有剩余的钱。请你编一程序,帮班长制订出一种买笔方案。你编一程序,帮班长制订出一种买笔方案。多路选择结构(多路选择结构(case语句)语句)分析:分析:a a、b b、c c分别表示单价为分别表示单价为6 6元、元、5 5元和元和4 4元的钢笔数量元的钢笔数量最多可买笔的数量最多可买笔的数量X div 4X div 4a ab bc cX mod 40 01 12 23 30 00 00

16、01 11 11 11 10 0X div 4(X div 4)-1(X div 4)-1(X div 4)-2多路选择结构(多路选择结构(case语句)语句) program pen; program pen;var a,b,c,x,y:integer;var a,b,c,x,y:integer;beginbeginwrite(x=);write(x=); readln(x); readln(x);c:=x div 4;c:=x div 4; y:=x mod 4;y:=x mod 4;case y ofcase y of0 : begin a:=0;b:=0; end;0 : begin

17、a:=0;b:=0; end;1 : begin a:=0;b:=1;c:=c-1;end;1 : begin a:=0;b:=1;c:=c-1;end;2 : begin a:=1;b:=0;c:=c-1;end;2 : begin a:=1;b:=0;c:=c-1;end;3 : begin a:=1;b:=1;c:=c-2;end;3 : begin a:=1;b:=1;c:=c-2;end;end;end;writeln(a=,a,b=,b,c=,c);writeln(a=,a,b=,b,c=,c);end. end. 顺序类型(序数类型)顺序类型(序数类型)一种有序的数据类型集合,顺

18、序类型的每一一种有序的数据类型集合,顺序类型的每一个值都有一个次序,除了第一个和最后一个个值都有一个次序,除了第一个和最后一个值,其它值都有唯一确定的前驱和后继。值,其它值都有唯一确定的前驱和后继。顺序类型包括整型、字符型、布尔型、枚顺序类型包括整型、字符型、布尔型、枚举类型、子界类型。举类型、子界类型。OrdOrd(x x)返回值)返回值x x的次序值的次序值PredPred(x x)返回值)返回值x x的前驱(的前驱(x x非有序集合中的第一个值)非有序集合中的第一个值)Succ Succ (x x)返回值)返回值x x的后继(的后继(x x非有序集合中的最后一个值)非有序集合中的最后一个

19、值)循环结构循环结构While循环(当型循环)循环(当型循环)Repeat循环(直到型循环)循环(直到型循环)For循环循环WhileWhile循环语句循环语句一般格式:一般格式: while while 布尔表达式布尔表达式 do do 语句语句 循环语句循环语句 ;例:例:k:=10;k:=10; while while (k0k0) dodo begin begin writeln(k); writeln(k); k:=k-1; k:=k-1; end; end;语句功能:语句功能: 在指定的条件成立(布尔表达式值为在指定的条件成立(布尔表达式值为truetrue)时,重)时,重复执行指

20、定的语句。复执行指定的语句。WhileWhile循环语句循环语句1 1、whilewhile语句的执行过程语句的执行过程 (1 1)求出布尔表达式的值;)求出布尔表达式的值; (2 2)布尔表达式为布尔表达式为“真真”,执行循环体;,执行循环体; 为为“假假”,执行(,执行(4);); (3)重复()重复(1)()(2);); (4)循环结束,执行循环后面的语句。)循环结束,执行循环后面的语句。WhileWhile循环语句循环语句2 2、dodo后面的语句只能是一条语句,称为后面的语句只能是一条语句,称为“循环体循环体”,如果循环体中包含多个语句,如果循环体中包含多个语句,用用beginbeg

21、in、endend组成复合语句。组成复合语句。3 3、循环体中必须有使布尔表达式最终为假的、循环体中必须有使布尔表达式最终为假的语句,否则是死循环。语句,否则是死循环。WhileWhile循环语句循环语句WhileWhile结构程序的设计步骤:结构程序的设计步骤:1 1、确定重复条件、确定重复条件2 2、确定重复体、确定重复体3 3、为使重复体正常工作确定循环变、为使重复体正常工作确定循环变 量的初值量的初值WhileWhile循环语句循环语句例:求例:求1+2+3+10001+2+3+1000的值。的值。Program ex;Program ex;Var n,sum:longint;Var

22、n,sum:longint;BeginBegin n:=1; sum:=0; n:=1; sum:=0; while (n=1000) do while (n=1000) do begin begin sum:=sum+n; sum:=sum+n; n:=n+1; n:=n+1; end; end;Writeln(1+2+3+1000=,sum);Writeln(1+2+3+1000=,sum);End.End.RepeatRepeat循环语句循环语句一般格式:一般格式: repeatrepeat 循环体语句;循环体语句; until until 布尔表达式;布尔表达式; 例:例:k:=10;

23、k:=10; repeat repeat writeln(k); writeln(k); k:=k-1; k:=k-1; until until(k=0knmn)then a := n+1 else a:=m+1;then a := n+1 else a:=m+1; Repeat Repeat a := a-1; a := a-1; Until (m mod a=0) and (n mod a=0); Until (m mod a=0) and (n mod a=0); writeln(a); writeln(a);End.End.WhileWhile语句与语句与RepeatRepeat语句的

24、区别语句的区别While Repeat循环体可能一次也未执行循环体可能一次也未执行循环体至少执行一次循环体至少执行一次循环体有多条语句时需用循环体有多条语句时需用begin、end组成复合语句组成复合语句循环体可包含多个语句循环体可包含多个语句布尔表达式值为假,结束布尔表达式值为假,结束循环循环布尔表达式值为真,结束布尔表达式值为真,结束循环循环循环语句作业:循环语句作业:猜价格:中央电视台的猜价格:中央电视台的“幸运幸运52”52”栏目深受观众喜栏目深受观众喜爱,其中的爱,其中的“猜商品价格猜商品价格”的节目更是脍炙人口,的节目更是脍炙人口,现在请你编一个程序模拟这一游戏:由计算机随机现在请

25、你编一个程序模拟这一游戏:由计算机随机产生产生200200至至50005000之间的一个整数,作为某件商品的之间的一个整数,作为某件商品的价格,然后由你去猜是多少,若你猜的数大了,则价格,然后由你去猜是多少,若你猜的数大了,则计算机输出提示计算机输出提示“Gao”Gao”,若你猜的数小了,则计,若你猜的数小了,则计算机输出提示算机输出提示“Di”Di”,然后你根据提示继续猜,直,然后你根据提示继续猜,直到你猜对了,计算机会提示到你猜对了,计算机会提示“Ok”Ok”,并统计你猜的,并统计你猜的总次数。总次数。 Random(n) 得到得到0n-1之间的任意整数之间的任意整数 作业参考程序:作业参

26、考程序:Program ex315;Program ex315;Var t,x,a: integer;Var t,x,a: integer;BeginBeginx:= Random(4801)+200;x:= Random(4801)+200;t:= 0;t:= 0;RepeatRepeat t := t+1; t := t+1;write(,t, Qing cai yi ge zheng shu : );write(,t, Qing cai yi ge zheng shu : );readln(a);readln(a);if ax then writeln(Gao);if ax then w

27、riteln(Gao);if ax then writeln(Di);if ax then writeln(Di);if a=x then writeln(Ok);if a=x then writeln(Ok);Until A=X;Until A=X;Readln;Readln;End.End.ForFor循环语句循环语句 一般格式:一般格式: for for 控制变量控制变量:=:=初值初值 to to 终值终值 do do 语句;语句; 初值初值 终值终值 语句功能:语句功能: 控制变量控制变量:=:=初值初值控制变量控制变量=终值终值执行语句执行语句控制变量控制变量:=:=控制变量控制变

28、量-1-1truefalseForFor循环语句循环语句1 1、forfor语句的执行过程语句的执行过程 先将初值赋给控制变量;先将初值赋给控制变量;判断循环控制变量的值是否已判断循环控制变量的值是否已“超过超过”终值,如已超终值,如已超过,则跳到步骤过,则跳到步骤 ;如果末超过终值,则执行;如果末超过终值,则执行dodo后面的循环后面的循环体语句;体语句;循环变量递增(对循环变量递增(对toto)或递减(对)或递减(对downto)downto);返回步骤返回步骤;循环结束,执行循环结束,执行forfor循环后面的语句。循环后面的语句。ForFor循环语句循环语句2 2、控制变量、初值、终值

29、的数据类型应一致,、控制变量、初值、终值的数据类型应一致,且限于顺序类型。且限于顺序类型。3 3、初值、终值在开始循环前计算,在循环过程、初值、终值在开始循环前计算,在循环过程中,其值不受循环体内语句的影响。中,其值不受循环体内语句的影响。4 4、控制变量在循环体内不能再被赋值。、控制变量在循环体内不能再被赋值。6 6、forfor语句结束后,控制变量值无定义。语句结束后,控制变量值无定义。5 5、dodo后面的语句只能是一条语句,如果循环体中后面的语句只能是一条语句,如果循环体中包含多个语句,用包含多个语句,用beginbegin、endend组成复合语句。组成复合语句。ForFor循环语句循环语句例例 一个两位数一个两位数x x,将它的个位数字与十位数字对调,将它的个位数字与十位数字对调后得到一个新数后得到一个新数y y,此时,此时y y恰好比恰好比x x大大3636,请编程求出,请编程求出所有这样的两位数。所有这样的两位数。 分析分析 1 1、列举出所有的两位数、列举出所有的两位数 forfor循环循环 x x为循环变量为循环变量 2 2、分离出、分离出x x的十位数字的十位数字 a:= x div 10 a:= x div 10 3 3、分离出、分离出x x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论