下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分支语句的格式、功能关系式(优先级)复合语句嵌套第四课 简单的分支结构程序设计在现实生活中,我们每天都要进行根据实际情况进行选择。例如,原打算明天去公园,但如果明天天气不好,将留在家里看电视。所以人也会根据条件进行行为的选择。计算机也会根据不同情况作出各种逻辑判断,进行一定的选择。在这课与下一课中,我们将会发现,我们是通过选择结构语句来实现程序的逻辑判断功能。一、PASCAL中的布尔(逻辑)类型在前面,我们学习了整型(integer)与实型(real)。其中integer型数据取值范围为-32768到32767之间所有整数。而real型数据取值范围为其绝对值在10-38到1038之间的所有实数
2、。它们都是数值型的(即值都为数)。布尔型(Boolean)是一种数据的类型,这种类型只有两种值,即"真"与"假"。1、 布尔常量在Pascal语言中"真"用ture表示,"假"用False表示。所以布尔类型只有TRUE与FALSE两个常量。2、 布尔变量(BOOLEAN)如果我们将某些变量说明成布尔型,那么这些变量就是布尔变量,它们只能用于存放布尔值(ture或false)。例如,VAR A,B:BOOLEAN;3、 布尔类型是顺序类型由于这种类型只有两个常量,Pascal语言中规定ture的序号为1,false的
3、序号为0。若某种类型的常量是有限的,那么这种类型的常量通常都有一个序号,我们称这种类型为顺序类型。如前面我们学过的整型(integer),以及后面要学到的字符型(char)都是顺序类型。4、 布尔类型的输入与输出a)输出VAR A,B:BOOLEAN;BEGINA:=TRUE;B:=FALSE;WRITELN(A,B);END.TRUEFALSEb)布尔类型变量不能直接用读语句输入布尔类型变量不能通过读语句给它们提供值。事实上,我们可以通过间接方式对布尔变量进行值的输入。例如,以下程序是错误的:var a,b,c:Boolean;beginreadln(a,b,c); 错误语句writeln(
4、a,b,c);end.二、关系表达式与布尔表达式1、什么是关系表达式用小括号、>、<、>=、<=、=、<>将两个算术表达式连接起来的式子就称为关系表达式(比较式)。如:3+7>8,x+y<10,2*7<=13等都是关系表达式。2、关系表达式的值很显然,这几个关系表达式中第一个是正确的,第三个是错误的,而第二个表达式可能是对的,也可能是错的。所以我们很容易发现,这些表达式的值是"对"的或"不对"的(或者说,是"真"的或"假"的),即关系表达式的值为布尔值。表示该比
5、较式两端式子的大小关系是否成立。如3+2>6是错的,故它的值为FALSE。同样,45>=32是对的,故该表达式的值为true。关系表达式用于表示一个命题。如:"为偶数"可表示为: mod 2=0。"为正数"可表示为:n>0。3.布尔运算及布尔表达式为了表示更复杂的命题,Pascal还引入三种逻辑运算符:not、and、or。它们分别相当于数学上的"非"、"且"和"或"的意义。这三个运算符的运算对象为布尔量,其中not为单目运算,只有一个运算对象,and与or为双目运算,有两个运
6、算对象。它们的运算真值表如下:ab Not aa and ba or ba xor bfalsefalsetruefalsefalsefalsefalsetruetruefalseturetruetruefalsefalsefalsetruetruetruetruefalsetrue truefalse于是,对于一个关系表达式,或多个关系表达式用布尔运算符连接起来的式子就称为布尔表达式。布尔表达式的值也为布尔值。如果一个表达式里出现两个或两个以上的运算符, 则必须规定它们的运算次序。pascal规定:表达式中相同优先级的运算符,按从左到右顺序计算;表达式中不同优先级的运算符,按从高到低顺序计算
7、;括号优先级最高,从内到外逐层降低;对于一个复杂的表达式可能同时包含算术运算、关系运算和逻辑运算以及函数运算。运算的优先顺序为:括号 、函数、not、*、/、div、mod、and、+、or、xor关系运算。对于复杂的命题,我们可以用布尔表达式来表示。例如,命题:"m,n都是偶数或都是奇数"可表示为"(m mod 2=0)and(n mod 2=0) or (m mod 2=1)and(n mod 2=1)"。例: 表达式 结果12<21 Truea>b Falseb-c*d DIV(e Mod a) 试求出下列表达式的值:(1)13*6*8
8、 DIV 3(2)5/4*2.5/1.25*(4+6)(3)24 DIV 4 *SQR(6.0)/3.6(4)a>b and b>c思考:(第十三届初赛题)15在Pascal语言中,判断整数a等于0或b等于0或c等于0的正确的条件表达式是( )。Anot (a<>0) or (b<>0) or (c<>0)Bnot (a<>0) and (b<>0) and (c<>
9、0)Cnot (a=0) and (b=0) or (c<>0)D(a=0) and (b=0) and (c=0)三、简单的IF语句、格式、IF 布尔表达式THEN 语句;、IF 布尔表达式THEN 语句 ELSE 语句;(注意型IF语句中语句后无";"号)、功能、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则不执行任何操作。、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则执行语句;、示例)例.输入一个整数,判断是否为偶数。(是输出
10、""否则输出"")。Program ex4_2;Var a:integer;Begin Write('a=');readln(a);If (a mod 2 =0)then writeln('yes')Else writeln('no');Readln;End.2)华榕超市里卖电池,每个电池角钱,若数量超过个,则可打75折。Program ex4_3;Var Num:integer;Price,Total:real;BeginWrite('Num=');readln(Num);Price=0.
11、8;If Num>10 then Price:=Price*0.75;Total:=Num*Price;Writeln('Total=',Total:0:2);Readln;End.3)编写一与电脑猜"红"或"黑"的游戏。分析:用代表红,代表黑。先由计算机先出答案,然后再由人猜,猜对输出"YOU WIN"否则输出"YOU LOST"。为了模拟猜"红"或"黑"的随意性,程序中需要用到随机函数random(n)。函数是什么呢,例如大家都知道|-2|=2,|5
12、8|=58,那么|x|=?。如果我们用y表示|x|,那么 .这里y=|x|就是一个函数,也就是说函数是一个关于一个或多个自变量(未知量,如上例中的x)的运算结果。在pascal语言中,系统提供了许多内部函数,其中包括|x|函数,当然它用abs(x)表示。我们如果要求x2-y的绝对值,可以调用内部函数abs(x*x-y)即可求得。Random(n)也是一个内部函数,调用它能得到0n-1之间的整数(但它不确定的,或说是随机的)。同时由于函数是一个运算结果,所以函数的调用只能出现在表达式中。Program ex4_3;Uses crt;Var Computer,People:integer;Begi
13、nRandomize;Computer:=random(2);Write('You guess(0Red 1-Black):');readln(People);If People=Computer then writeln('YOU WIN')Else writeln('YOU LOST');Readln;End.四、IF语句的嵌套在if语句中,如果then子句或else子句仍是一个if语句, 则称为if语句的嵌套。例1计算右边函数 分析:根据输入的x值,先分成x>0与x0两种情况,然后对于情况x0,再区分x是小于0,还是等于0。源程序如下
14、:program ex;varx:real;y:integer;begin wrtie('Input x:');readln(x);if x>0then y:=1x>0时,y的值为1else x0时if x=0then y:=0else y:=-1;writeln('x=',x:6:2,'y=',y);end.显然,以上的程序中,在then子句中嵌套了一个型if语句。当然程序也可以写成如下形式:program ex;varx:real;y:integer;beginwrtie('Input x:');readln(x)
15、;if x>=0then if x>0then y:=1else y:=0else y=-1;writeln('x=',x:6:2,'y=',y);end.但是对于本题,下面的程序是不对的。y:=0;if x>=0then if x>0 then y:=1else y:=-1;明显,从此人的程序书写格式可以看出,他想让else与第一个if配对,而事实上,这是错的。因为pascal规定:else与它上面的距它最近的then配对,因此以上程序段的逻辑意义就与题义不符。要使上程序段中esle与第一个then配对,应将程序段修改为:y:=0; 或者 y:=0;if x>=0 if x>=0then if x>0 thenthen y:=1 beginelse if x>0 then Y:=1;else y:=-1; endelse Y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国航海博物馆2025年度高层次人才公开招聘备考题库(含答案详解)
- 2026年三亚中瑞酒店管理职业学院单招职业适应性测试题库与答案详解
- 2026年广西国际商务职业技术学院单招综合素质考试题库有答案详解
- 2026年山西同文职业技术学院单招职业技能考试题库附答案详解
- 2026年郑州电力职业技术学院单招综合素质考试题库附答案详解
- 2026年黑龙江省大庆市高职单招职业技能考试题库附答案详解
- 2025年弥渡县紧密型医共体总医院招聘编制外卫生专业技术人员的备考题库有答案详解
- 2025年科创中心及所属企业面向社会公开招聘工作人员5人备考题库及1套完整答案详解
- 2025年苏州交投新基建科技有限公司公开招聘12名人员备考题库及1套完整答案详解
- 2026年福建幼儿师范高等专科学校单招职业适应性测试题库带答案详解
- 2025版 全套200MW800MWh独立储能项目EPC工程概算表
- 热性惊厥临床指南
- 中医药科研课题申报技巧
- 2025年校园节能改造项目可行性研究报告及总结分析
- 2025ACG临床指南:成人溃疡性结肠炎(更新版)课件
- 2025高中历史时间轴与大事年表
- 2026年江苏农林职业技术学院单招职业适应性测试必刷测试卷新版
- 2025年重庆选调生申论真题参考答案
- 滴灌带生产流程
- 矿山交易中介合同范本
- 2026年湖南汽车工程职业学院单招职业技能考试必刷测试卷及答案1套
评论
0/150
提交评论