选择结构

文档属性

名称 选择结构
格式 rar
文件大小 70.8KB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2010-10-18 08:06:00

文档简介

(共27张PPT)
Pascal软件的安装
1、将tp7.exe解压到 D:\
2、进入D:\ TP7 \ BIN,将
TURBO.EXE 发送到
桌面快捷方式
3、双击桌面的快捷方式
PROGRAM ex31(input,output);
VAR x , y : real ;
BEGIN
readln(x) ;
IF x<=2.5
THEN z:=x*x+1
ELSE z:=x*x-1 ;
writeln(‘x=’ , x:6:2 , ‘y=’, y:6:2)
END.
PROGRAM ex31(input,output);
VAR x , y : real ;
BEGIN
readln(x) ;
IF x<=2.5 THEN z:=x*x+1;
IF x>2.5 THEN z:=x*x-1 ;
writeln(‘x=’ , x:6:2 , ‘y=’, y:6:2)
END.
PROGRAM ex32(input,output);
VAR x , pay : real ;
BEGIN
readln(x);
IF x>=10000 THEN pay:=x*0.05 ;
IF (x<10000) AND (x>=5000) THEN pay:=x*0.03 ;
IF (x<5000) AND (x>=1000) THEN pay:=x*0.02 ;
IF x<1000 THEN pay:=0 ;
writeln(‘x=’, x , ‘pay=’, pay)
END.
PROGRAM ex33 (input,output) ;
VAR d:real;
BEGIN
write(‘please input your score’);
readln(d);
if (d>85) then writeln(‘very good’);
if (d>=60) and (d<=85) then writeln(‘good’);
if (d<60) then writeln(‘no good’)
END.
PROGRAM ex34(input,output);
VAR a , b , c , min : real ;
BEGIN
writeln(‘ Please input a,b,c: ’) ;
readln(a, b, c);
IF aIF cwriteln(‘The smallest number is ’ , min)
END.
PROGRAM ex34(input,output);
VAR a , b , c , min : real ;
BEGIN
writeln(‘ Please input a,b,c: ’) ;
readln(a, b, c);
IF (aIF (bIF (cwriteln(‘The smallest number is ’ , min)
END.
第三章 选择结构程序设计
语句 2
条件
语句 1


1. IF语句(条件语句)
IF 〈条件〉
THEN 〈语句1〉
ELSE 〈语句2〉;

IF〈条件〉THEN〈语句1〉ELSE〈语句2〉;
条件
语句 1


IF 〈条件〉
THEN 〈语句1〉;
或 IF 〈条件〉THEN 〈语句1〉;
2. 复合语句
BEGIN
〈语句1〉;
〈语句2〉;

〈语句n〉
END
3. 复合IF语句(IF语句的嵌套)
IF 〈条件1〉
THEN 〈语句1〉
ELSE IF 〈条件2〉
THEN〈语句2〉
ELSE 〈语句3〉;
语句 2
条件 1
语句 1


条件 2


语句 3
例1:求y=f(x)的值。
2 x>0
y= 0 x=0
-2 x<0
IF x>0
THEN y:=2
ELSE IF x=0
THEN y:=0
ELSE y:=-2
IF x>0 THEN y:=2
IF x=0 THEN y:=0
IF x<0 THEN y:=-2
练习:
3.2 对一批货物征收税金。价格在1万元以上的货物征税5%,在5000元以上,1万元以下的货物征税3%,在1000元以上,5000元以下的货物征税2%,1000元以下的货物免税。编写一程序,读入货物价格,计算并输出税金。
(价格x,税金pay)
要求:用复合IF语句编写程序
PROGRAM ex32(input,output);
VAR x , pay : real ;
BEGIN
readln(x);
IF x>=10000
THEN pay:=x*0.05
ELSE IF x>=5000
THEN pay:=x*0.03
ELSE IF x>=1000
THEN pay:=x*0.02
ELSE pay:=0 ;
writeln(‘x=’, x , ‘pay=’, pay)
END.
练习:
3.3 输入某学生成绩,若成绩在85分
以上,输出very good,若成绩在60分
到85分之间,输出good,若成绩低于
60分,输出no good。(d成绩)
要求:用复合IF语句编写程序
PROGRAM ex33 (input,output) ;
VAR d:real;
BEGIN
write(‘please input your score’);
readln(d);
IF d>85
THEN writeln(‘very good’)
ELSE IF d>=60
THEN writeln(‘good’)
ELSE writeln(‘no good’)
END.
4. CASE语句(情况语句)
语句 1
表达式
语句 2
语句 n
语句
情况1
情况2
情况n
其他
4. CASE语句(情况语句)
CASE 〈表达式〉 OF
〈值表1〉: 〈语句1〉
〈值表2〉: 〈语句2〉
……
〈值表n〉: 〈语句n〉
END
例:输入年、月,输出该月天数。
PROGRAM monthday ( input , output ) ;
VAR year , month , days : integer ;
BEGIN
read( year , month ) ;
CASE month OF
1,3,5,7,8,10,12 : days:=31 ;
4,6,9,11 : days:=30 ;
2 : IF (year MOD 4=0) AND (year MOD 100<>0)
OR (year MOD 400=0)
THEN days:=29
ELSE days:=28
END ;
writeln( ‘year=’, year , ‘month=’ , month , ‘days=’, days)
END.
PROGRAM calculator ( input , output ) ;
VAR x , y , result : real ; oper: char ;
BEGIN
read( x , oper , y ) ;
CASE oper OF
‘+’ : result:=x+y ;
‘-’ : result:=x-y ;
‘*’ : result:=x*y ;
‘/’ : result:=x/y ;
END ;
writeln( x:6:2 , oper , y:6:2 , ‘=’, result:8:4)
END.
作业:
3.7 用复合IF语句
3.8 用CASE语句 (s 象限)
3.9 用CASE语句
(class班号,num人数)
PROGRAM ex37(input,output);
VAR x , y : real ;
BEGIN
readln(x , y) ;
IF x>0
THEN IF y>0
THEN z:=ln(x)+ln(y)
ELSE z:=sin(x+y)/cos(x+y)
ELSE IF y>0
THEN z:=sin(x)+cos(x)
ELSE z:=exp(2*x)+exp(3*x)
writeln(‘z=’ , z:6:2)
END.
PROGRAM ex38(input,output);
VAR x , y , s: real ;
BEGIN
readln(x , y , s) ;
CASE s OF
1 : z:=ln(x)+ln(y)
2 : z:=sin(x)+cos(x)
3 : z:=exp(2*x)+exp(3*x)
4 : z:=sin(x+y)/cos(x+y)
END ;
writeln(‘z=’ , z:6:2)
END.
PROGRAM ex35(input,output);
VAR ch1 , ch2 , ch3 : char ;
BEGIN
readln(ch1,ch2,ch3);
IF (ch1>ch2) AND (ch1>ch3)
THEN IF ch2>ch3
THEN writeln(ch3,ch2,ch1)
ELSE writeln(ch2,ch3,ch1) ;
IF (ch2>ch1) AND (ch2>ch3)
THEN IF ch1>ch3
THEN writeln(ch3,ch1,ch2)
ELSE writeln(ch1,ch3,ch2) ;
IF (ch3>ch1) AND (ch3>ch2)
THEN IF ch1>ch2
THEN writeln(ch2,ch1,ch3)
ELSE writeln(ch1,ch2,ch3) ;
END.
PROGRAM ex35(input,output);
VAR ch1 , ch2 , ch3 : char ;
BEGIN
readln(ch1,ch2,ch3);
IF ch1>ch2
THEN IF ch3>ch1
THEN writeln(ch2,ch1,ch3)
ELSE IF ch3>ch2
THEN writeln(ch2,ch3,ch1)
ELSE writeln(ch3,ch2,ch1)
ELSE IF ch3>ch2
THEN writeln(ch1,ch2,ch3)
ELSE IF ch3>ch1
THEN writeln(ch1,ch3,ch2)
ELSE writeln(ch3,ch1,ch2) ;
END.(共25张PPT)
Pascal软件的安装
1、将tp7.exe解压到 D:\
2、进入D:\ TP7 \ BIN,将
TURBO.EXE 发送到
桌面快捷方式
3、双击桌面的快捷方式
PROGRAM ex28(input,output);
VAR ch1,ch2,ch3:char;
BEGIN
read(ch1,ch2,ch3);
writeln(ch1,ch2,ch3);
writeln(ord(ch1),ord(ch2),ord(ch3));
writeln(ch3,ch2,ch1);
END.
PROGRAM ex29(input,output);
VAR
x,y:real; bool:boolean;
BEGIN
read(x,y);
bool:=(x>=-2) AND (x<=2) AND (y>=-2)
AND (y<=2);
writeln(bool)
END.
PROGRAM ex210(input,output);
VAR x,y,a,b,c:integer;
BEGIN
read(x);
a:=x DIV 100; 最高位
b:=x DIV 10 MOD 10; 中间位
c:=x MOD 10; 最低位
y:=c*100+b*10+a; 倒置三位数
writeln(y);
END.
第三章 选择结构程序设计
语句 2
条件
语句 1


1. IF语句(条件语句)
IF 〈条件〉
THEN 〈语句1〉
ELSE 〈语句2〉;

IF〈条件〉THEN〈语句1〉ELSE〈语句2〉;
练习:输入一个整数,打印出它是奇数还是偶数。
PROGRAM jiou (input,output);
VAR x:integer;
BEGIN
write(‘x=’);
readln(x);
IF x MOD 2 = 0
THEN writeln(‘ou shu’)
ELSE writeln(‘ji shu’);
END.
条件
语句 1


IF 〈条件〉
THEN 〈语句1〉;
或 IF 〈条件〉THEN 〈语句1〉;
例1:求y=f(x)的值。
2 x>0
y= 0 x=0
-2 x<0
IF x>0 THEN y:=2 ;
IF x=0 THEN y:=0 ;
IF x<0 THEN y:=-2 ; 并列IF语句
例2:某市的士费起价8元,可以行驶3
公里,3公里以后价格按每公里1.6元
计算,输入的士行驶的公里数,请你
计算顾客付费多少。(s公里, pay费用)
IF s<=3
THEN pay:=8
ELSE pay:=8+(s-3)*1.6
读入三个数,找出并打印其中的最大数。
PROGRAM largest (input,output) ;
VAR a , b , c , max : real ;
BEGIN
read(a,b,c) ;
IF a>b
THEN max:=a
ELSE max:=b ;
IF c>max THEN max:=c ;
writeln(‘The largest number is ’,max)
END.
读入三个整数,找出并输出其中最大数。
PROGRAM largest1 (input,output) ;
VAR a , b , c , max : integer ;
BEGIN
read(a,b,c);
IF (a>b) AND (a>c) THEN max:=a ;
IF (b>a) AND (b>c) THEN max:=b ;
IF (c>a) AND (c>b) THEN max:=c ;
writeln(‘The largest number is ’,max)
END.
练习:
3.4 输入3个数,将其中的最小数输出。
VAR a , b , c , min : real;
练习:
3.3 输入某学生成绩,若成绩在85分
以上,输出very good,若成绩在60分
到85分之间,输出good,若成绩低于
60分,输出no good。(d成绩)
PROGRAM ex33 (input,output) ;
VAR d:real;
BEGIN
write(‘please input your score’);
readln(d);
if (d>85) then writeln(‘very good’);
if (d>=60) and (d<=85) then writeln(‘good’);
if (d<60) then writeln(‘no good’)
END.
2. 复合语句
BEGIN
〈语句1〉;
〈语句2〉;

〈语句n〉
END
例:读两个数将大数存于x,小数存于y。PROGRAM larger(input,output);
VAR x,y,temp:real;
BEGIN
read(x,y);
IF xTHEN BEGIN
temp:=x ; x:=y ; y:=temp
END;
writeln(‘x=’,x:8:2, ‘y=’,y:8:2)
END.
练习:读入三角形的三个边长a,b,c,
计算并打印三角形的面积S。
其中p= (a+b+c) /2 S= p(p-a)(p-b)(p-c)
注意:组成三角形的三边必须满足:
两边之和大于第三边
PROGRAM area(input,output) ;
VAR a , b , c , p , s :real ;
BEGIN
read(a,b,c) ;
IF (a+b>c) AND (b+c>a) AND (c+a>b)
THEN BEGIN
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c)) ;
writeln(‘area=’, s:6:2)
END
ELSE writeln(‘ input data error ’)
END.
3. 复合IF语句
IF 〈条件1〉
THEN 〈语句1〉
ELSE IF 〈条件2〉
THEN〈语句2〉
ELSE 〈语句3〉;
语句 2
条件 1
语句 1


条件 2


语句 3
例1:求y=f(x)的值。
2 x>0
y= 0 x=0
-2 x<0
IF x>0
THEN y:=2
ELSE IF x=0
THEN y:=0
ELSE y:=-2
练习:
3.3 输入某学生成绩,若成绩在85分
以上,输出very good,若成绩在60分
到85分之间,输出good,若成绩低于
60分,输出no good。(d成绩)
要求:用复合IF语句编写程序
PROGRAM ex33 (input,output) ;
VAR d:real;
BEGIN
write(‘please input your score’);
readln(d);
IF d>85
THEN writeln(‘very good’)
ELSE IF d>=60
THEN writeln(‘good’)
ELSE writeln(‘no good’)
END.
作业:
3.1 计算y并输出
3.2
3.3 用并列IF和复合IF语句两种方法编写
3.4
3.5 选做
同课章节目录