已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 顺序结构程序设计内容提要 本章介绍了PASCAL中的数和符号的表示方法;四种标准数据类型;常量,变量和标准函数;表达式和输入、输出语句的用法。学习要求通过对本章的学习,要求能够理解PASCAL中关于数、符号、常量、变量、四种基本的数据类型等知识点,掌握READ、WRITE语句的用法,能够进行顺序结构程序设计。第一节 PASCAL中的数和符号11 符号在PASCAL中,允许使用的符号很多,但有一定的规则:1 标点符号: “;”是每一句的结束标志,但在BEGIN后不用,最后一个END后用“.”,“,”一般用在括号和变量表中,用以分隔多个参数;单引号“”用于字符型中;“( )”中一般是参数,“ ”一般用于集合和数组中,“ ”是用来存放注释信息的;“:”是在变量和数据类型之间起分隔作用的。2 运算符: 算术运算符有:,;关系运算符有:,;逻辑运算符有:AND,OR,NOT;12 标识符在PASCAL语言中,一些事先定义好的由字母开头,后跟数字和字母组成的字符串,它们代表了一定的意义,我们把它们称为标识符。例如:PROGRAM就表明一个程序的开始,VAR则表明后面将要进行变量说明。系统事先定义了不少的标识符,我们把它们叫做保留字;另外,我们也可以自己定义标识符,自定义标识符要注意以下几点:1 自定义的标识符不要与系统定义的标识符同名。如:你不能定义一个叫BEGIN的标识符。2 标识符要以字母开头,后跟字母或数字或下划线,中间不能出现空格,长度一般不超过8位。3 标识符要先定义后使用,这一点我们在后面章节中会学到。4 标识符的英文字母不分大小写。第二节 标准数据类型PASCAL给编程人员提供了几种标准数据类型,同时也允许自己定义数据类型。1实型(REAL)实型就是实数类型,是一种最常见的数据类型。在PASCAL中,实数有两种表示方法:小数表示法和指数表示法(也称科学表示法)。下面是小数表示法的实例:3.47 123.6 89000.0 -0.00000023而用科学表示法,以上例子可分别表示为:3.47E0 1.236E2 8.9E4 -2.3E-7在科学表示法中,“E” 后面的数代表10的幂,前面的数一般在1到10之间取值。实际上,TURBO PASCAL有五种实数类型:类型 取值范围占字节数有效位数RealSingleDoubleExtendedcomp2.9e-39 1.7e381.5e-45 3.4e385.0e-324 1.7e3281.9e-4951 1.1e4932-263+1 263-1 6 4 8 10 87 811 1215 1619 2019 202 整型(INTEGER)整型即整数类型。它只能在整数这一无限集合中表示一个有限子集。在16位机中,整数的表示范围为:32768到32767。在数学中,整数为实数的一个子集,为什么有了实型还要定义整型呢?在计算机进行运算中,CPU对整数和实数运算的处理方法不同,整数运算要快于实数运算。计算机在处理实数运算时存在一定的误差,可能存在10000个1.0相加不等于10000的现象。所以一般不要用等号来判断实数的相等性。整型的运算符除了+ - * /,还有两种特殊的运算符:DIV,MODDIV是整除运算,求出整数商:8 DIV 3=2 14 DIV 4=3MOD是求余数的运算:17 MOD 4=1 -17 MOD 4=-1 17 MOD 4=1TURBO PASCAL同样支持五种整型定义:类型 取值范围占字节数有效位数ShortintIntegerLongintByteWord-128 127-32768 32767-2147483648 21474836470 2550 65535 1 2 4 1 2 8 16 32 8 163 布尔型(BOOLEAN)BOOLEAN 一词是根据十九世纪英国数学家George Boolean而命名。布尔型数据用来存放逻辑值,也叫布尔值。布尔值只有两个:真(TRUE)或假(FALSE)。与布尔运算相关的是逻辑运算符:与(AND),或(OR),非(NOT)。其运算规则如下:假设有两个条件A和B,只有A和B同时为真时,A AND B的结果才为真,否则为假;当A或B中至少有一个为真时,A OR B的结果为真,否则为假;当A为真时,NOT A的结果为假,A为假时,NOT A 的结果为真。5 字符型(CHAR)一个字符型数据变量是用来存放ASCII码字符集内的某个字符。此时字符只代表某个符号,本身不具有原来的含义。例如 A,6就是字符。字符型都要用单引号将其引起来。第三节 常量和变量31 常量常量是这样一种标识符,该标识符中的数据在整个程序中都不会变化。常量中的数据称为常数,可分为以下四种:整型常数,如:12,33,825实型常数,如:0.35, -2.00, 12.3456布尔型常数,只有两个:TRUE,FALSE字符型常数,如:1, 2, A, X, , +另外,还可以用常量标识符来定义常量,如:CONST PI3.14。在常量标识符定义中,必须以CONST开头,在本例中,标识符PI便被定义为实数3.14,在整个程序中,只要有标识符PI的地方,会自动被替换成数字3.14。下面是几个常量标识符定义的例子:const abc=100;date=Monday;w=+; 32 变量 变量是在程序运行过程中,其值可以变化的量。给变量取名字比较灵活,和文件名取名规则比较类似:以字母开头,后面加上数字或字母,中间不留空格。以下是合法的变量名:A,B,A1,C4,DAY,MYFIRST,GOOD变量在使用之前必须加以说明,说明的格式如下:VAR 变量表:类型;如VAR R,S:REAL;在这里,VAR是变量说明的保留字,说明变量之前必须得有它;R,S则是变量名,在第一章第三节的程序中它们分别代表半径和面积,这一句变量说明的意思是:变量R,S中将要想存储的数据是实数类型。我们可以对变量定义这么理解:变量象一个盒子,不同的变量象不同形状的盒子,盒子是用来装东西用的。东西只有四种,分别是:REAL,INTEGER,BOOLEAN,CHAR。现在我们每个盒子上贴上标签,标签名分别是:INTEGER,REAL,BOOLEAN,CHAR,于是,每个盒子不能随便装东西了,贴有REAL标签的盒子只能装REAL类型的东西,贴有CHAR标签的盒子则只能装CHAR类的东西而且,每个盒子只能装一个东西。定义变量就象给盒子贴标签,但还没有装东西,装东西这个过程要在程序的执行部分才得以实现。让我们来看看下面这些定义变量的例子:例1 VAR A1,B1:REAL; W1,W:CHAR;F1,F2:BOOLEAN;DA,DB:INTEGER;3 3 给变量赋值变量定义好后还象是一个空盒子,要使用这个变量得先给它存进一个数,使它才有实际意义。给变量里存储进一个某种类型的数便叫给变量赋值,其格式为:变量名:数据。我们假设事先已象例1那样定义好了变量,下面来看如何给例1中的变量赋值。例2 A1:=3.14; B1:=-7.0;W1:=%; W2:=A;F1:=TRUE; F2:=FALSE;DA:=9; DB:=-10;经过以上定义后,我们用到变量实际上是用到变量中的数据。于是:DADB的值为1A1B1的值为3.86NOT F1的值为FALSE3*DA的值为27一个变量中只能存放一个数,但这个数并非恒定。假设一个变量DA已赋好了值3,如果继续给它赋一个新值8,那么,新值会自动取代旧值,DA中的数就变为8了。注意:PASCAL中的赋值符号“:=”不是数学中的“”,它是把符号右边的数装进左边的变量里,如果右边是一表达式,则先计算出表达式的值再赋给左边的变量。变量在左,数字或表达式在右,右边的值赋给左边的变量,这个规则要记牢。例3:已知变量X,Y,Z的值分别为3,6,2,看看下面赋值语句执行的情况。 X:5 ; 结果是:X中的3被5所取代 X:=Y+Z ; 结果是:右边的表达式的值4被赋给了左边的X Y:=YZ ; 结果是:右边的表达式的值8被赋给了左边的Y X:=X+1 ; 结果是:将右边314的值被赋给了X变量 Z:=3*X4*Y+5;结果是:先将右边的表达式的结果计算出来,为 10,再将10赋给变量Z以下的赋值式均为错误:2:=x;3*x:=4+z;8:=9;3*x-6:=z;以上错误的原因为:赋值号左边都不是变量,而是数字或表达式。其实,赋值语句对右边几乎没有什么要求,对左边也只有唯一的一个要求:必须是一个变量。 第四节 标准函数PASCAL提供了丰富的预定义标准函数,通过标准函数我们可以把一些复杂的数学问题简化。下面让我们来看看这些函数的功能。1 绝对值函数 ABS() 例:ABS(-3.14)=3.14 ABS(6)=62 平方函数 SQR() 例:SQR(4)=16 SQR(-3)=93 开方函数 SQRT() 例:SQRT(9)=3 AQRT(2)=1.4144 正弦函 SIN() 例:SIN(3.14)=0 SIN(3.14/2)=1.05 余弦函数 COS() 例:COS(3.14)=1.0 COS(3.14/2)=06 以e为底数的指数函数EXP() 例:EXP(3)=e37 自然对数函数 LN() 例:ln3=ln(3)8 取整函数 TRUNC() ,其作用是将括号里的数的小数全部去掉 例:TRUNC(3.14)=3 TRUNC(4.79)=4 TRUNC(-2.8)=-29 四舍五入取整函数 ROUND(),例:ROUND(3.14)=3.14 ROUND(4.8)=5ROUND(-3.2)=-3 ROUND(-5.7)=-610 前导函数PRED(),其作用是对括号中的整数求其前面一个整数,或者对括号中的字符根据ASCII码表中的次序求其前面的一个字符 例:PRED(3)=2 PRED(123)=122 PRED(C)=B PRED(Z)=Y11 后继函数SUCC(),其作用是对括号中的整数求其后面一个整数,或者对括号中的字符根据ASCII码表中的次序求其后面一个字符 例:SUCC(7)=8 SUCC(2)=3 SUCC(A)=B SUCC(Y)=Z 13奇函数的判别函数 ODD() 其作用是对括号中的整数进行判断,如果为奇数,则结果为真,否则为假 例:ODD(7)=TRUE ODD(4)=FALSE14取字符函数 CHR() 其作用是将括号中的整数作为字符的序号,或称字符的ASCII码(见附录),并将与序号对应的字符作为结果写出来 例:CHR(65)=A CHR(66)=B CHR(97)=a15 取序号函数ORD() 该函数是CHR()的逆函数,是根据字母求出其ASCII码 例:ORD(A)=65 ORD(B)=B66 ORD(a)=97ORD(CHR(65)=65 CHR(ORD(A)=AORD(FALSE)=0 ORD(TRUE)=1以上这些标准函数的自变量类型和函数类型我们用下面这个表来加以归纳:自变量类型函数类型整 型实 型字 符 型布 尔 型整 型ABSSQRPREDSUCCTRUNCROUNDORDORD实 型SINCOSEXPLNSQRTSINCOSLNEXPSQRTABS字 符 型CHRPRED SUCC布 尔 型ODDPRED SUCC第五节 表达式由各种运算符把常量、变量、函数连接起来并且具有确定的值的式子是一个表达式,一个单独的常量,变量,函数也是一个表达式,。我们来看看下列数学式子和表达式之间的关系: (图T21)在PASCAL语言中,表达式有多种运算符,因此表达式的种类也是多样的,主要有:算术表达式,关系表达式,逻辑表达式,字符表达式等。这里,我们先了解算术表达式,其余几种我们将在后面学到。在表达式中,每个运算符有运算的优先级,我们可以按优先级的高低将其分为这样几级:1 NOT2 ,DIV,MOD,AND3 ,OR4 ,我们还规定:在同一级的的运算符中,其运算次序按从左到右的次序进行;如果有括号,则括号中的表达式优先。第六节 输入语句输入语句的功能是在程序执行过程中,暂停下来接受用户从输入端(一般是键盘)输入数据,将接收到的数据存入预先设好的变量中,程序再接着执行。61 READ语句READ是一个读数语句,后跟变量,读进来的数就装在变量里。如:READ(X),其意思是等待由键盘输入一个数,然后将此数赋值给变量X。它类似于一个赋值语句。READ(X,Y,Z),其意思是等待用户由键盘输入三个数,这三个数按输入的次序依次赋给变量X,Y,Z。它等价于以下三个语句:READ(X);READ(Y);READ(Z)。注意事项:1 由键盘输入的数据类型要与变量的数据类型一致,不能出现将一个实数赋给一个整型变量之类的错误。2 输入的数据个数要与READ语句中变量的个数一致。如果要输入多个数据,则有两种情况:(1)如果输入的数据是实数或整数类型,则各个数之间用空格隔开,最后才以回车键结束;(2)如果输入的数据类型是字符型,则各字符间不能有分隔符,也不能有单引号把它引起,在最后一个字符后用回车键结束。3 如果输入数据的个数少于READ括号中变量的个数时,程序会一直等到你输完才会继续执行。4 如果READ语句中括号中的变量超过一个,则中间用逗号隔开。例4 已知变量A,B,C都是整型,则READ(A,B,C)有以下几种输入法:(1) 123(“”代表空格,“”代表回车键,如未加其它说明,在本书中都这样表示),执行的结果为:A1,B2,C3。(2) 1234 执行的结果为A1,B2,C3,多余的4没起作用。(3) 123 执行的结果仍为A1,B2,C3(4) 12 执行的结果为A1,B2,因没给Z赋值,则计算机一直处于等待状态。(5) 123 执行的结果仍为A1,B2,C3。6.2 READLN语句READLN语句也是一个输入语句,用法同READ非常类似,同样是将由键盘读入的数据存进后面括号里的变量中。如:READLN(A,B,C);但是,也有不同之处:READLN语句把来自键盘的一串数据读入相应的变量中后,便自动跳到下一行的第一数据处,如果原来行中还有未读完的数据,则忽略这些数据。另外,READLN语句后面可以不带参数,即只有一个“READLN”。此时它的作用是跳过本行,直接指向下一行的第一个数据,也可以简称为换行。那么,READLN(A,B,C)就相当于以下四句:READ(A),READ(B),READ(C),READLN。让我们来看一个例子:例5 程序中的语句 由键盘输入的格式 READ(A,B); 123 READ(C,D); 456 READ(E,F,G); 789 READ(H); 101112则执行后的结果是:A1,B2,C3,D4,E5,F6,G7,H8 READLN(A,B); 123 READLN(C,D); 456 READLN( E,F,G); 789 READLN(H); 101112则执行后的结果是:A1,B2,C4,D5,E7,F8,G9,H10第七节 输出语句当计算机处理完程序后,应该把结果显示在屏幕上或在打印机上打印出来,这样一个过程叫输出。71 WRITE语句WRITE语句是将其后括号中所带输出项的值打印出来,如果括号中有多个输出项,则一律用逗号隔开。它有以下几种用法:1 直接打印数字。如:WRITE(3),则在屏幕上打印一个“3”。2 打印变量。如:已知A3,B6,C9 则WRITE(A,B,C)执行的结果是在屏幕上打印3,6,9三个数。3 打印表达式。如果括号中是表达式,WRITE语句是先计算结果再打印。如:已知A3,B6,则WRITE(AB4)语句执行的结果是打印数字5。4 打印字符或字符串。WRITE语句中的字符或字符串一律按原样打印。如:WRITE(A) , 则在屏幕上打印一个字母A;WRITE(HELLO),则在屏幕上打印一个词HELLO;WRITE(35),在屏幕上不会打印数字8,而是“35”三个字符。 72 WRITELN语句WRITELN语句也是打印语句,用法和WRITE语句非常类似,但WRITE语句在打印时是逐行打印,即一行打满后才换行打印;而WRITELN语句是在打印完本语句所带的参数后,无论该行是否已满,都会换行。例6 写出下列语句执行后的结果: WRITE(1,2,3);WRITE(4,5,6);WRITE(7,8,9);执行的结果是:1 2 3 4 5 6 7 8 9(注:在屏幕上打印时是没有空格的)WRITELN(1,2,3);WRITELN(4,5,6);WRITELN(7,8,9);则执行后的结果是: 1 2 34 5 67 8 9另:WRITELN语句如不带参数则表示打印一个空行,即换行。73 打印格式输出语句在打印数据时,数据在屏幕上所占的宽度是有规定的,打印的域宽有两种:标准域宽和自定义域宽。1 标准域宽标准域宽是指系统默认的宽度。不同版本的TURBO PASCAL对不同的数据所规定的宽度是不同的。在TURBO PASCAL7中,规定如下:(1)整数在输出时,其宽度就是数据本身的宽度,也就是说数与数之间没有空格。如:在例6中的WRITE语句中,真正的格式是:123456。(2)实数在输出时,默认的宽度是17位,如:在WRITE(30.0 , 411.7)语句中,其格式如下:30000000000E01 41170000000E02。(3)字符型输出宽度为1,也就是说字符之间没有空格。如:WRITE(A,B,C);打印出来就是ABC。另:字符串的输出宽度也是其本身实际的宽度。(4)布尔型输出的宽度也是其本身实际的宽度,输出的结果要么是FALSE,要么是TRUE。2 自定义域宽在输出的时候,系统允许用户自定义输出的域宽。(1) 单域宽在WRITE或WRITELN语句所带的括号中的每个输出项后面加上数字n,中间用冒号隔开,数字n则表明该输出项将占的域宽。如:WRITE(3:5,45:4);输出格式为:345;WRITE(A:2,B:2,C:3);输出的格式为:ABC。(2) 双域宽双域宽是在括号中每个输出项后加上两个数m 、n ,其中m代表输出项所占的总宽度,n代表在总宽度中小数所占的位数,它们中间都要用冒号隔开;要求mn。如:WRITE(321444:12:3);则输出格式为:3214440另:我们还可以用在输出项之间加空格的办法来控制数据之间的格式。如:WRITE(1,2,3);打印出来的格式是:1 2 3 ,中间便有了空格。第八节 顺序程序设计举例前面学习了PASCAL的一些基本知识点,下面我们利用这些知识点来对给定的任务进程序设计。例7 将变量A,B中的数交换次序并打印出来。 PROGRAM ex7(input,output); VAR a,b,c:integer; BEGIN writeln(input a,b); read(a,b); writeln(a=,a,b=,b); c:=a; a:=b; b:=c; writeln(a=,a,b=,b); END.例8 已知三角形的三边,求其面积。 在知道三边A,B,C后,可用海伦公式求出其面积:S 其中,P(ABC)2。 PROGRAM EX8(input,output); VAR s,a,b,c,p:real; BEGIN writeln(input a,b,c); readln(a,b,c); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); writeln(s=,s); END.例9 编写一程序,要求输入一个字符,输出该字符的前趋和后继字符及该字符的ASCII码值。 PROGRAM e9(input,output); VAR c,c1,c2:char; n:integer; BEGIN writeln(input a character
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卷材项目可行性分析报告范文(总投资4000万元)
- 26.2.1反比例函数在日常生活中的应用 (第1课时)
- 优特钢项目可行性分析报告范文
- 大气压力表建设项目可行性分析报告(总投资16000万元)
- 单向阀项目可行性分析报告范文(总投资20000万元)
- 智能型气凝胶隔热材料的技术创新与市场应用
- 水果营销方案报告
- 营销公司佣金方案
- 疫情后勤管理制度内容
- 勘察设备物资管理制度
- 站长申论7月-02 -综合分析讲义
- WB/T 1086-2018煤炭仓储服务规范
- GB/T 6948-1998煤的镜质体反射率显微镜测定方法
- 医院科研课题申报伦理审查申请及审批表
- 科学课件《观察与比较》课件1
- 公司职业健康管理及考核办法
- 世行采购指南
- 中医药健康管理服务规范培训41张课件
- Q∕GDW 10364-2020 单相智能电能表技术规范
- 超星尔雅叶嘉莹《中华诗词之美》课后章节测验满分答案精编版
- 【学考】高中物理会考(学业水平考试)公式及知识点总结
评论
0/150
提交评论