资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,分支结构程序设计,信息学奥林匹克培训讲座(三),分支结构程序设计信息学奥林匹克培训讲座(三),1,复习+预习,1、复习 P1P66,2、复习基本知识:,程序与指令、计算机发展史、语言发展史、进制转换等。,3、熟读资料“计算机基础知识”。,4、预习6788,复习+预习1、复习 P1P66,2,PASCAL基础知识布尔量和布尔表达式,逻辑值(布尔值)只有两个:True(真)和False(假),由关系运算符将两个式子联系起来的式子,叫关系表达式,每个关系表达式的值都是一个布尔值。,关系运算符:、=、例:当X=5时,x=false的值是True ab的值是False,PASCAL基础知识布尔量和布尔表达式逻辑值(布尔值)只,3,由布尔运算符联系起来的式子叫布尔表达式。布尔运算符:not(否)and(与)or(或)xor(异或),布尔运算的结果:,逻辑运算式中运算顺序是:(),函数not*、/、div、mod、and+、-、or、xor、=、,A,B,NOT A,NOT B,A AND B,A OR B,A XOR B,false,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,false,true,false,true,true,true,true,false,false,true,true,false,练习,由布尔运算符联系起来的式子叫布尔表达式。布尔运算符:not,4,课堂练习:,例1:求下列式子的逻辑值:,(1)5+93*8 (3)4*5 div 2=10,例2:若a=True,b=False,x=7,y=12,m=3,n=35,求下列布尔表达式的值。,a and not(mn)and(x-3),(4)当a=5,b=6,c=10时,计算下列各题:,(,a+b=c)and(c-ba)or(a+c=50 then m:=x*2.5,else m:=x*3.2;,writeln(m=,m:0:2),End.,例4-1:某人买了若干袋(1袋为0.5千克)白糖,每袋3.2,6,四、分支结构程序,(一),If语句,格式:if,then,语句1,else,语句2,(二),Case语句,格式:case,of,常量1:语句1;常量2:语句2;,else,语句N,end,四、分支结构程序(一)If语句格式:if,7,(一)if语句,1、格式:if,then,语句1,else,语句2,含义:布尔表达式的值是true时,执行then后面的语句,布尔表达式的值是false时,执行else后面的语句。,2、if语句可以没有else,即布尔表达式值是false执行下一语句。,3、,语句1,和,语句2,都可以是,复合语句,。,练习,练习,练习,(一)if语句1、格式:if then 语句,8,复合语句,多个语句由beginend串在一起称为一句复合语句。例:begin c:=a;a:=b;b:=c,end,上例就是一个把a,b两个变量值互换的复合语句。,复合语句多个语句由beginend串在一起称为一句复合语,9,课堂练习二:,例4-3:输入一个数,如果是正数就打印“yes”,否则就打印“no”。,Program ex4_3;,Var x:integer;,begin,Write(x=);,Readln(x);,If x=0 then writeln(yes)else Writeln(no),End.,例4-4:输入三角形的三个角的度数,若它们的度数等于180度,则三角形成立,否则不成立。,Program ex4_4;,Var A,B,C:integer;,begin,Write(A,B,C=);,Readln(A,B,C);,If A+B+C=180 then writeln(yes)else Writeln(no),End.,课堂练习二:例4-3:输入一个数,如果是正数就打印“yes”,10,练习:,根据下式,编程写出输入X的值后,输出Y的值。,0(x=0 then y:=2*x else x:=0;,End.,Writeln(y=,y),练习:根据下式,编程写出输入X的值后,输出Y的值。0(,11,例4-5:输入一个数,如果是正数则打印这个数。,Program ex4_5;,Var x:integer;,begin,Write(x=);,Readln(x);,If x=0 then writeln(x),End.,练习:输入三角形的三个角的度数,若它们的度数等于180度,则输出三角形的三个角。,Program lx4_2;,Var A,B,C:integer;,begin,Write(A,B,C=);,Readln(A,B,C);,If A+B+C=180 then writeln(A=,A,B=,B,C=,C),End.,例4-5:输入一个数,如果是正数则打印这个数。Program,12,练习:输入A,B二个数,编程把小数放在A中,把大数放在B中。,Program lx4_3;,Var A,B,C:integer;,begin,Write(A,B=);,Readln(A,B);,If AB then begin C:=A;A:=B;B:=C end;,End.,分析:,A,B,Write(A=A,B=,B);,If AB then A,B的值互换,练习:输入A,B二个数,编程把小数放在A中,把大数放在B中。,13,上机编程:,1、输入10个数,统计有多少正数?多少负数?,2、小光去买本,若买10本以下每本0.6元,超过10本,超过的部分可以每本减少0.1元,小光买若干个本子,预计要向妈妈要多少钱?,5、妈妈给玲玲的零花钱够5元,她中午可以买一个“可爱多”,如果够2元,则只能买“薄荷夹心”,妈妈每次给玲玲的钱到不了10元,她可以买到什么?(考虑多种情况),上机编程:1、输入10个数,统计有多少正数?多少负数?,14,If语句的嵌套使用,1、If语句中的语句1和语句2原则上说可以是任何语句,当然也可以是条件语句,当语句1或语句2是条件语句是称为条件语句嵌套。,2、嵌套情况可以分成两种,一是语句1包含IF语句,二是语句2包含IF语句。,3、当出现IF语句嵌套时,ELSE跟它最近的IF语句配套。,If语句的嵌套使用1、If语句中的语句1和语句2原则上说可以,15,课堂练习五:,1、函数Y如右:编写程序,当输入X后,输出Y的值。,0 (x0),2x (0 x10),2x+1 (10 x50),x/2+50(50 x),Y=,Program lx4_4;,Var x,y:real;,begin,Write(x=);,Readln(x);,If x0 then y:=0,else,End.,Writeln(y=,y:0:0),If x10 then y:=2*x,else,If x50 then y:=2*x+1,else y:=x/2+50,课堂练习五:1、函数Y如右:编写程序,当输入X后,输出Y的值,16,课堂练习五:,1、函数Y如右:编写程序,当输入X后,输出Y的值。,0 (x0),2x (0 x10),2x+1 (10 x50),x/2+50(50 x),Y=,Program lx4_5;,Var x,y:real;,begin,Write(x=);,Readln(x);,If x50 then,else y:=x/2+50,End.,Writeln(y=,y:0:0),If x10 then,else y:=x*2+1,If x0 then y:=0,else y:=x*2,课堂练习五:1、函数Y如右:编写程序,当输入X后,输出Y的值,17,2、鸡兔同笼问题。已知鸡和兔的总数量,鸡腿和兔腿的总数量,求鸡和兔各多少只?,Program lx4_6;,Var s,st,j,t:integer;,begin,Write(s,st=);,Readln(s,st);,j:=(4*s-st)/2;,T:=s-j;,End.,If j-trunc(j)0.0001 then begin writeln(ji=,j);writeln(tu=,t);,End,else writeln(no anwser);,2、鸡兔同笼问题。已知鸡和兔的总数量,鸡腿和兔腿的总数量,求,18,3、从键盘读入三个数,按由大到小的顺序把它们打印出来。,Program lx4_4;,Var a,b,c,x:integer;,Begin,Write(a,b,c=);,Readln(a,b,c);,If ab and bc then writeln(c:5,b:5,a:5);If ac and cb then writeln(b:5,c:5,a:5);,End.,3、从键盘读入三个数,按由大到小的顺序把它们打印出来。Pro,19,1、输入三角形的三个角的边a,b,c,判断是否为三角形。,2、输入三角形的三个角的度数A,B,C,判断三角形是否为直角三角形。,3、设VAL是一个整型变量,希望其值介于1与31之间,用IF语句嵌套,使实现,若VAL的值越界,即VAL31,则输出相应的文字信息。,1、输入三角形的三个角的边a,b,c,判断是否为三角形。2、,20,(二)Case语句(分情况语句),1、格式:case,of,常量1:语句1;常量2:语句2;,else,语句N,end,表示当条件式的值与OF后面的常量之一相等时,则执行该情况常量后的语句部分,然后转到CASE语句的END,如果表达式的值不与任何常量相等,则执行ELSE后的语句。,2、ELSE可以没有。,3、表达式可以是整型、字符型和布尔型,但不能是实型。即只能是有序型。,4、常量1可以是一个或多个值,中间用逗号隔开,也可以是一个取值范围,例:用0.4表示0至4。,(二)Case语句(分情况语句)1、格式:case,21,例4-6:试编程写一个根据用户键入的两上操作数和一个运算符,由计算机输出运算结果的程序。,Program ex4_6;,Var a,b,s:real;ch1:char;,begin,Write(Please input a,b=);,Readln(a,b);,Case ch1 of,+:s:=a+b;,-:s:=a-b;*:s:=a*b;/:s:=a/b;end;,End.,Write(Please input (+,-.*,/);,Readln(ch1);,Write(a,ch1,b,=,s);,例4-6:试编程写一个根据用户键入的两上操作数和一个运算符,,22,(,二,),、,case,语句的执行过程先计算表达式(称为情况表达式)的值,如果它的值等于某一个常量(称为情况常量,也称情况标号),则执行该情况常量后面的语句,在执行完语句后,跳到,case,语句的末尾,end,处。,(,三,),、说明,情况表达式必须是顺序类型的;情况常量是情况表达式可能具有的值,因而应与情况表达式具有相同的类型;情况常量出现的次序可以是任意的;同一情况常量不能在同一个,case,语句中出现两次或两次以上;每个分语句前可以有一个或若干个用逗号隔开的情况常量;如果情况表达式的值不落在情况常的范围内,则认为本,case,语句无效,执行,case,语句的下一个语句。,turbo pascal,中增加了一个,否则“的情况,即增加一个,else,子句,但也是可省的。每个常量后面只能是一个语句或一个复合语句。,(二)、case语句的执行过程先计算表达式(称为情况表,23,(三)分支结构程序应用,1、从键盘上任意输入一个正整数N,判断它是奇数还是偶数。,Program ex4_7;,Var n:integer;,begin,Write(n=);,Readln(n);,End.,If n mod 20 then writeln(n,is jishu.
展开阅读全文