《计算机语言通用学习教材.pdf》由会员分享,可在线阅读,更多相关《计算机语言通用学习教材.pdf(129页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机语言通用学习教材2 0 2 1.0 2.0 8目录标识符或保留字.2数据类型.3常量与变量.6运算符和表达式.11语句.12输入.14输出.16选择结构设计.20循环结构.28枚举类型和子界类型.38集合类型和记录类型.88类型文件.112要开发一套软件系统,则需先要学习一门计算机程序设计语言,为叙述方便起见,下文将计算机程序设计语言简称为计算机语言,比如:basic语言,pascal语 言!下面主要介绍pascal语 言!一个完整的Pascal的程序结构program程序名;uses已知单元说明;label标号说明;const常量说明;type类型说明;var变量说明;function
2、函数说明;procedure过程说明;begin语句;语句;语句end.标识符Pascal字符与符号1.保 留 字(关键字)所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误!标 准Pascal语言中的保留字一共有35个,Turbo Pascal语言 一 共 有51个!下 面 是Pascal语言的保留字:and,array,begin,case,const,div,do,downto,else,end,file,for,funtion,goto,if,in,label,mod,nil,not,of,or,packed,procedure,pr
3、ogram,record,repeat,set,then,to,type,unti 1,var,while,with,exports,shr,string,asm,object,unit,constructor,implementation,destructor,uses,inherited,inline,interface,1ibrary,xor,shl2.标识符标识符的定义:标识符就是以字母开头后面跟字母或数字的任意组合!标识符的长度仅由行的长度即127个字符所限制,但 标 准Pascal规定只有前8个字符是有效的,TurboPascal规定标识符中的所有的字符均有效!并且大小写等效,不能
4、包空格!可以用来标示常量、变量、程序、函数等!例如 例L 1中 的examl(程序名),c、s、r(变量名)都是标识符!标识符的分类:标准标识符:指Pascal语言预先定义的标识符,具有特殊含义!以下列举了 Turbo Pascal语言部分常用的标准标识符:标准常量 False True Maxi nt标准类型 Boolean Char Real Integer标准函数 Abs Arctan Chr Cos Eof Eoin Exp Ln Odd Ord PredRound Sin Sqr Sqrt Succ Trunc标准过程 D ispose Get New Pack Page Put R
5、ead ReadlnReset Rewrite Unpack Write Writein标 准 文 件Input Output用户自定义标识符:由你来根据需要定义!选用的标识符不能和保留字相同!语法上允许预定义的标准标识符作为你定义的的标识符使用,但最好还是不要用!数据类型P a s c a l数据类型数据是程序设计的一个重要内容,其重要特征数据类 型,确定了该数据的形、取值范围以及所能参与的运算!T u r b o P a s c a l提供了丰富的数据类型,这些数据类型可以分为三大类:简单类型、构造类型和指针类型,其中简单 类 型 可 以 分 为 标 准 类 型(整型、实型、字符型和布尔型
6、)和 自 定 义 类 型(枚举型和子界型),构造类型可以分为数组类型、集合类型、记录类型和文件类型!这些数据类型中除了指针类型是动态数据类型外,其他的都是静态数据类型!在这些数据类型中简单类型都是有序类型,除了实型以外的简单类型都是顺序类型,所谓顺序类型就是他们的值不仅是有序的而且是有顺序号!在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型!1.整型一个整型数据用来存放整数!T u r b o P a s c a l支持五种预定义整型,它 们 是s h o r t i n t (短整型)、i n t e g e r (整型)、l o n g i n t (长整型)、b y t e (
7、字节型)和w o r d (字类型),T u r b o P a s c a l分别用不同的名字作为他们的标识符!每一种类型规定了相应的整数取值范围以及所占用的内存字节数!类 型 数 值 范 围 占 字 节 数 格 式shortint(短整型)-128.128 1带 符 号8位inteter(整型)-32768.327672 带符号 16 位longint(长整型)-214748 3648.214748 3647 4 带 符 号32位byte(字节型)0.255 1带 符 号8位word(字类型)0.65535 2带 符 号16位Turbo Pascal规 定 了 两 个 预 定 义 整 型
8、常 量 标 识 符maxint和maxlonint,他们各表示确定的常数值,maxint为32767,maxlonint为214748 3647,他 们 的 类 型 分 别 是integer(整型)和 longint(长整型)!2.实型一个实型数据用来存放实数!Turbo Pascal支持五种预定义实型,它 们 是real(基本实型)、single(单精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),Turbo Pascal分别用不同的名字作为他们的标识符!每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度!类 型 数 值 范
9、 围 占 字 节 数 有 效 位 数real(基本实型)2.9 e-39.1 .7e38 6 11.12single(单精度实型)1.5e-45.3.4e38 4 7.8double(双精度实型)5.Oe-324.1.7e308 8 15.16extended(扩展实型)3.4e-49 32.1.Ie49 32 10 19.20Comp(装配实型)-2*63+l.2*63T 8 19.20Turbo P a sc a l支持两种用于执行实型运算的代码生成模式:软件 仿真模式和80 x87浮点模式!除了 r e a l 可以在软件仿真模式下直接运行以外,其他类型必须在80 x87浮点模式下运行!
10、3.布尔型一 个 布 尔 型 数 据 用 来 存 放 逻 辑 值(布 尔 值)!布尔型的值只有两个:f a ls e 和 t r u e,并 且 f a ls e 的 序 号 是 0,true的 序 号 是 1!f a l s e 和 tr u e 都是预定义常数标识符,分别表示逻辑假和逻辑真!并 且 trueV false!boolean是布尔型的标 识 符!4.字符型字 符 型 用 c h a r作为标识符!字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串!常量与变量 常量(1)常量:在某个程序的整个过程中其值不变的量!(2)
11、常量定义:常量定义出现在说明部分!它的语法格式是:const 常量标识符 =常量 ;常量标识符 =常量 ;常量标识符的类型由定义它的常量的类型决定!例如:c o n s t a =1 2隐含说明a是整型;c o n s t r=3.21隐含说明r是实型.(3)常量定义部分必须以保留字c o n s t开头,可以包含一个或几个常量定义,而且每个常量均以分号结束!(4)T u r b o P a s c a l 类型常量类型常量,又称变量常数,它 是T u r b o P a s c a l的一个扩充特性!类型常量的定义与标准P a s c a l规定的常数定义和变量说明有所区别!类型常量定义的语
12、法格式:c o n s t 简单类型常量标识符:简单类型=常数;例如:c o n s tc o u n t e r:i n t e g e r=0;f l a g:b o o l e a n=t r u e;i n d e x:0.1 0 0=0;常量的类型整型常量整型常量采用我们平常使用的十进制整数表示!如1 3 8,0,-5 1 2等都是整型常量,而1 8.或1 8.0都不是整型常量!p a s c a l中有一个标准标识符M a x i n t,它代表所使用的计算机系统允许的最大整型数,而最小的整型数即为一M a x i n t-1 !T u r b o P a s c a l 还定义了
13、 长整数常量 M a x L o n g l n t,其值为 2 1 4 7 4 8 3 6 4 7 !实型常量实型常量包括正实数、负实数和实数零!p a s c a l中表示实型常量的形式有两种!十进制表示法这是人们日常使用的带小数点的表示方法!如0.0,-0.0,+5.6 1,-8.0,-6.0 5 0等都是实型常量,而0.,.3 7都不是合法的实数形式!科学记数法科学记数法是采用指数形式的表示方法,如1.2 5X 1 0 5可 表 示 成1.2 5E+5!在科学记数法中,字 母“E”表 示1 0这个“底 数”,而E之前为一个十进制表示的小数,称为尾数,E之后必须为一个整数,称 为“指数”
14、!如-1 2 3 4.56E+2 6,+0.2 68E-5,1 E 5 是合法形式,而.3 4 E 1 2,2.E 5,E 5,E,1.2 E+0.5 都不是合法形式的实数!无论实数是用十进制表示法还是科学表示法,它们在计算机内的表示形式是一样的,总是用浮点方式存储!和整数相比,实数能表示的范围大得多,但值得注意的是实数的运算比整数的运算速度慢且无法像整数那样精确表示,只能近似表示!字符常量在 P a s c a l语言中,字符常量是由单个字符组成,所有字 符 来 自 A S C H 字符集,共 有 2 56个字符!在程序中,通常用一对单引号将单个字符括起来表示一个字符常量!如:a ,A ,0
15、 等!特殊地,对于单引号字符,则要表示成 !对 于 A S C I I 字符集中,按每个字符在字符集中的位置,将每个字符编号为0 2 5 5,编号称为对应字符的序号!布尔常量布尔型常量仅有两个值,真和假,分别用标准常量名t r u e 和 f a ls e 表 示!它们的序号分别为1 和 0 !符号常量一个 常 量 即 可 以直接用字面形式表示(称为直接常量,如1 2 4,1 56.8),也可以用一个标识符来代表一个常量,称为符号常量!但符号常量必须在程序中的说明部分定义,也就是说先定义,后 使 用!定义符号常量的一般格式:C O N S T 常量标识符 =常量说明:常量说明部分以关键字c o
16、ns t 开头,后面的标识符为常量标识符,其中=号后的常量为整数、实数、字符、字 符 串!而且,在常量说明部分可以将几个常量说明成符号常量,共用一个关键字“c ons t”!例如:program 阳constpi=3.14159;常堂说明zero=0;rvar r,c,s:real;beginwrite(Enter m),reading);c:=2*pi*r;s:=pi*r*r;writein(七=c);writelnCss);end.则在本程序中p i 和 ze r o作为符号常量,分别代表实数3.1 4 1 59和 整 数 0!也就是说,常量说明部分既定义了常量名及其值,又隐含定义了常量的
17、类型!关于符号常量,应注意下列几点:符号常量一经定义,在程序的执行部分就只能使用该常量标识符,而不能修改其值!使用符号常量比直接用数值更能体现“见名知义”的原则,也便于修改参数,故一个较好的程序中,应尽量使用符号常量,在执行部分基本上不出现直接常量!2.变量变量:在某个程序中的运行过程中其值可以发生改变的量!变量有三个要素是:变量名、变量类型、变 量 值!一个程序中可能要使用到若干个变量,为了区别不同的变量,必须给每个变量(存贮单元)取一个名(称为变量名),该 变 量(存贮单元)存放的值称为变量的值,变量中能够存放值的类型为变量的类型!变量名用一个合法的标识符代表一个变量!如 n,m,r o
18、t,t o t a l等都是合法变量名!在程序中用到的变量必须在说明部分加以说明,变量名应遵循自定义标识符的命名规则,并注意“见名知义”的原则,即用一些有意义的单词作为变量名!“自定义标识符”的命名规则为:自定义标识符必须以字 母(包含下划线 _)开头,后面的字符可以是字母或数字!变量的类型常量是有类型的数据,变量在某一固定时刻用来存放一个常量,因此也应有相应的类型!如整型变量用来存放整数,实型变量用来存放实数!变量说明在程序中若要使用变量,变量的名称及类型在程序的变量说明部分加以定义,变量的值则在程序的执行部分中才能赋 给!变量说明的一般格式:V A R 变量标识符,变量标识符:类型);(中
19、括号内部分表示可省,下同)其 中 V A R 是 pa s c a l 保留字,表示开始一个变量说明段,每个变量标识符或由逗号隔开的多个变量标识,必须在它的冒号后面说明成同一类型!一个程序中,可以说明许多不同类型的变量,每种类型变量之间用分号隔开,共 用 一 个 V A R符 号!例 如:v a ra g e,d a y:i n t e g e r;a m o u n t,a v e r a g e:r e a l;其中,In t e g e r(整型)、R e a l(实型)是标准标识符,它们是类型标识符,代表了确定的类型,如 a g e 和 d a y 被定义为整型变量,a m o u n
20、 t 和 a v e r a g e 被定义为实型变量!一旦定义了变量,就确定了它的类型,也就是说,就确定了该变量的取值范围和对该变量所能进行的运算!标准函数1.算术函数函数标识符自变量类型意义结果类型a bs整型、实型绝对值同自变量a r c t a n整型、实型反正切实型COS整型、实型余弦实型e x p整型、实型指数实型f r a c整型、实型小数部分实型i n t整型、实型整数部分实型In整型、实型自然对数实型P i无自变量圆周率实型s i n整型、实型正弦实型s q r整型、实型平方同H 变量s q r t整型、实型平方根实型例:a bs(-4)=4 a bs(-7.4 9)=7.4
21、 9a r c t a n (0)=0.0 s i n (pi)=0.0 c o s (pi)=-1.0f r a c (-3.7 1)=-0.7 1 i n t (-3.7 1)=-3.0s q r (4)=1 6 s q r t (4)=22.标量函数函数标识符自变量类型意义结果类型o d d整型判断奇数布尔型例:o d d (1 0 0 0)=f a l s e o d d (3)=t r u epr e d (2 0 0 0)=1 9 9 9 pr e d (x )=w s u c c (2 0 0 0)=2 0 0 1 s u c c (x )=y 3.转换函数pr e d离散类型求
22、前趋同自变量SUCC离散类型求后继同自变量函数标识符自变量类型意义结果类型c h rby t e 型自量对应的字符字符型o r d离散类型自量对应的序号l o n g i n tr o u n d实型四舍五入l on g i n tt ru n c实型截断取整l on g i n t4.杂类函数函数标识符自变量类型意义结果类型ra n d om无自变量 0,1 之间的随机实数re a lra n d omw ord 0,自变量 之间的随机整数w i rdra n d om i z e无自变量用一随机值初始化内部随机数产生器l on g i n tu p c a s e字符型使小写英文字母变为大
23、写字符型运算符和表达式1.运算符和优先级运算符算术运算符运算符运算 运算对象结果类型+加整型、实型只要有一个运算对象是实型,结果就是实型,如果逻辑运算符减整型、实型全部的运算对象都是整型并且运算不是除法,则结果为整型,若运算是除法,则结果是实型*乘整型、实型/除整型、实型d i v整除整型整型m od取余 整型整型关系运算符运算符运算运算对象结果类型n ot逻辑非布尔型布尔型a n d逻辑与布尔型布尔型or逻辑或布尔型布尔型x or逻辑异或布尔型布尔型(2)优先级运算符运算运算对象结果类型=等于简单类型布尔型不等于简单类型布尔型大于简单类型布尔型=大于等于简单类型布尔型运算符优先级n ot1(
24、高)*,/,d i v,m od,a n d2x or,+,or3i n,=,=,=,4 (低)2.表达式(1)算术表达式:算术表达式是由算术运算符连接常量、变量、函数的式子!算术表达式中各个运算符的次序为:()-函数-*,/,d i v,m od-+,1(2)布尔表达式:T u rb o P a s c a l提供给布尔表达式以下基本操作:逻辑运算和关系运算!语句赋值语句是最简单的语句,其一般形式为:变量名:=表达式B a s i c 语言的赋值语句为:L E T 变量名=表达式)赋值语句的作用是计算表达式的值,并赋给变量!对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以
25、一个随机值参与运算!另外,赋值号两边的类型必须相同,但表达式值为整数时,它可自动化为实型后赋给该实型变量,即符合赋值相容!注意:“:=”赋 值 号 与 等 号 的 含 义 不 同,赋值号是将其右边内容赋值给左边的变量,使左边变量具有一个新值!而等号表示将两边的内容进行比较,结果为相等或不相等!赋值号的左边不能是表达式或常数,只能是变量名或自定义函数名,等号左边无此限制!例如:X:=X+1表 示 将 X的 值 加 1 之 后 赋 给 X,从 而 X具有一个新的值,Y+X:=X+1是错误的赋值语句!例:关于赋值的例子:p rog ra m e x a m p l e;v a r a,b:i n t
26、 e g e r;b e g i na:=3;b:=2;w ri t e i n(a);w ri t e i n(b);a:=a+b;w ri t e l n (a);w ri t e i n (b);b:=a-b;w ri t e i n (a);w ri t e i n (b);a:=a-b;w ri t e i n (a);w ri t e i n (b);re a d l ne n d.输入输入语句(读语句)在程序中变量获得一个确定的值,固然可以用赋值语句,但是如果需要赋值的变量较多,或变量的值经常变化,则使用本节介绍的输入语句读语句,将更为方便!读语句是在 程 序 运 行 时 由 用
27、 户 给 变 量 提 供 数 据 的 一 种 很 灵 活 的 输 入动 作,它 有 两 种 格 式:1.读 语 句 的 一 般 格 式:r e a d(变 量 名 表 );r e a d l n(变 量 名 表);r e a d I n;其 中 变 量 名 表 是 用 逗 号 隔 开 的 若 干 个 变 量 名 组 成 的!功 能:从 标 准 输 入 文 件 中 读 入 数 据,并依次赋给相应的变 量!说 明:r e a d和r e a d l n是 标 准 过 程 名,它 们 是 标 准 标 识 符!执 行 到r e a d或r e a d l n语句时一,系 统 处 于 等 待 状 态,等
28、 待 用 户 从 键 盘 上 输 入 数 据,系 统 根 据 变 量 的 数 据 类 型 的 语法 要 求 判 断 输 入 的 字 符 是 否 合 法!如 执 行r e a d(a)语 句,a是 整 型 变 量,则 输 入 的 字 符 为 数 字 字 符 时 是 合 法 的,当输入结 束 时,则 自 动 将 刚 接 受 的 一 串数字字 符 转 换 为 整 数 赋 给 变 量a!在 输 入 数 值 型(整 型 或 实 型)数 据 时,数 据 间 要用空格 或 回 车 分 隔 开 各 个 数 据,输 入 足 够 个 数 的 数 据,否则仍要继 续 等 待 输 入,但 最 后 一 定 要 有 回
29、车,表 示 该 输 入 行 结 束,直 到 数 据 足 够,该 读 语 句 执 行 结 束,程 序 继 续 运 行!例1:设a、b、c为 整 型 变 量,需将它们的值 分 别 赋 以1 0,2 0,3 0,写 出 对 应 下 列 语 句 的 所 有 可 能 输 入 格 式!R e a d (a,b,c);解:根 据 ,即 可 列 出 所 有 可 能 输 入 格 式(a)1 0口2 0口3 0 一(b)1 0口2 0 一3 0-1(c)1 0 -2 0口3 0-(d)1 0-12 0一3 0-1其中一 表示回车键!下 同!r e a d语 句 与r e a d l n语 句 的 第 一 个区别是
30、:r e a d 语句是一个接一个地读数据,在执行完本 R e a d 语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行!例 2:R e a d (a,b);R e a d (c,d);R e a d (e);如果输入数据行如下:1 口2 口3 口4 口5 口6 口一则 a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则 数 据 6是多余的,这是允许的!R e a d l n 则不同,在 读 完 本 R e a d l n 语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本R e a d l n 语句中变量所
31、需数据后,一定要读到一个回车,否则多余的数据无用!例 3:设 要 达 到 例 1同样的目的,但语句改为:r e a d l n (a,b);r e a d l n (c)则 例 1中 的 4种输入格式只有(b)(d)是有效的.r e a d I n 语 句 与 r e a d 语句的第二个区别是:r e a d 后一定要有参数表,而 r e a d I n 可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)!经常用于暂停程序的运行,直到输入一个回车!例 4:设有下列语句:r e a d (a,b,c);r e a d I n(d,e);r e a d l n;r e a d
32、l n(f,g);其中,所有变量均为整型!再设输入的数据如下:1 口2-3 口4 口5 口6 口7 口8 一9 口 1 0 一1 1-11 2 口 1 3 -列表给出每个变量的值!分析:可以假想有一数据位置指针,每读一个数据后,指针后移到该数据之后,每 执 行一个r e a d l n 语句后,指针移到下一个数据行的开头!各变量的值如下表所示!变量名为了避免可能出现的错误,建议在程序中按下列原则使用读语句:(A)如果没有特殊需要,在一个程序中尽量避免混合使用 r e a d 语 句 和 r e a d ln语 句;(B)尽 量 用 r e a d ln语句来输入数据,一个数据行对应一个 r e
33、 a d 1 n 语 句;(C)由于执行r e a d 或 r e a d ln语句时,系统不会提供任何提示信息,因 止 匕,编程时最好在r e a d ln语句之前加以适当提示,例w r i t e (Inp u t a,b,c:);r e a d ln(a,b,c);在执行时,屏幕上显示:Inp u t a,b,c:其中,为光标!执 行 r e a d ln语句后,系统处于待待输入状态,只有输入了所需数据后才继续往下执行!B a s i c 中的输入语句为:IN P U T 语句输出输出是将内存中的数据送到外设的过程!T u r b o P a s c a l的输出语句有两种形式:w r
34、i t e (输出项表)w r i t e i n(输出项表)w r i t e i n其中 输出项表 是一串用逗号分隔的常量、变量、函数名、表达式或字符串!如果是变量、函数名、表达式,则将其计算结果输出;如果是常量或字符串,则直接输出其值!w r i t e 和 w r i t e i n的区别在于:w r i t e 语句是输出项输出后,不换行,光标停留在最后一项后,w r i t e i n语句按项输出后,自动换行,光标则停留在下一行的开始位置!w r i t e i n语句允许不含有输出项,即 仅 w r i t e i n;表示换行!T u r b o P a s c a l语言把输
35、出项的数据显示占用的宽度称为域宽,你可以根据输出格式的要求在输出语句中自动定义每个输出项的宽度!定义宽度时分为单域宽和双域宽!(1)隐含的输出格式p a s c a l语言为整型量、实型量、布尔型量和字符串(用一对单引号括起来的字符序列)规定了每种数据所占的宽度(即 一 个 数 据 占 几 列),一个数据所占的宽度称为“场 宽”或“字段宽”!系统给出的隐含场宽称为标准场宽!每一种p a s c a l版本给定的标准场宽不尽相同!下表给出标准p a s c a l和 p c 机 上 两 种 p a s c a l版所规定的标准场宽!数据类型标 准 p a s c a lT u r b o p a
36、 s c a li nt e g e r1 0实际长度r e a l2 21 7布尔型1 04或 5字符串串长串长在 T u r b o P a s c a l系统中,对于整型字符串的输出都是按数据本身长度输出,对 于 布 尔 型 数 据(只 有 T r u e 和 Fa ls e两 种 值),T R U E为 4歹(J,FA LSE为 5歹 U,一律采用大写输出!而 r e a l型数据的输出时,则 按 1 7 列输出,其中第一列为符号位,正号不显示,后 四 位 为 土 nn,中 间 的 1 2 列为尾数 部 分!如:w r i t e i n(s q r t (7 5);则输出 口 8.6
37、 6 0 2 5 4 0 3 7 9 E+0 0 !而 w r i t e i n(s q r t(8 1);则输出口 9.0 0 0 0 0 0 0 0 0 0 E+0 0 !有时,在程序中往往根据实际情况,需要自己定义场宽!(2)单域宽输出格式:w r i t e l n(I:n)在 n 个字符宽的输出域上按右对齐方式输出I 的值,若n 大 于 I 的实际位数,则 在 I 值前面补(n-I的实际位数)个空 格!若 I 的实际位数大于n,则自动突破限制!n 必须是整 数!如 w r i t e(1 23 4:8);w r i t e(abc de f :1 2)输出结果:1 23 4 D a
38、bc de f对于标准实型数据指定单场宽时一,如果场宽大于标准场宽 时 一,右靠齐按标准场宽格式输出1 7 位,左留空格!若场宽小于标准场宽时,第一位仍为符号位,最 后 四 位 仍 为“E士nn”,中间部分为尾数显示部分!如果指定的宽度小于8位,则 数 据 按 8位 格 式 *.*Enn”输 出!(3)双域宽输出格式:如果输出项是实数时,如果希望输出的实数不用科学记数法输出,而用小数形式输出,可以用指定双场宽方法输出!输出格式:w r i t e In(a:m:n)双域宽主要用于实型数据的输出!m 的用法同上!在 m个字符宽的输出域上按右队齐方式用小数点形式输出a 的数值,n 是小数点后的位数
39、!原来的数据按该该格式指定的小数位数四舍五入!若 n=0,则不输出小数部分和小数点,原数据四舍五入取整!n,m 必须是整 数!例如:整 型 变 量 I 为 1 5,实 型 变 量 J为-3 5.2 3,下列输出语句的参数格式及执行结果 为:w r i t e(I:5);1 5 (1 5 前面有三个空格)w r i t e C ABC :5);ABC(ABC 前面有两个空格)w r i t e(J:8:2);-3 5.23 (-3 5.23 前面有两个空格)例:输出语句的例子pr og r am s h u c h u;c ons ts=pas c al);v ari:i nt e g e r;
40、r:r e al;c:c h ar;b:bool e an;be g i ni:=1 23 4 5;r :=1 23.4 5,c :=a;b:=t r u e;w r i t e In(i=,);w r i t e i n(i:6);w r i t e l n(r=,,r,r :6 :1);w r i t e l n(J c=,,c,c :1 0);w r i t e i n(*b=,,b,b:1 0);w r i t e i n(s=,,s,s:1 0);r e adl n;e nd.1=12345r=1.2345000000E+02 123.4c=a ab=TRUE TRUEs=pasca
41、l pascal复合语句复合语句是由若干语句组成的序列,语句之间用分号;隔开,并 且 以b e g i n和e n d括起来,作为一条语句!复合语句的一般形式:be g i n语 句1;语 句2;语 句n;e nd注意:P A S C A L把复合语句视作一个语句!复合语句可用在P A S C A L允许使用普通语句的任何地方!例:变量值的交换pr og r am j i aoh u an;v ara,b,t:i nt e g e r;be g i na:=1 0;b:=20;be g i nt:=a;a:=b;b:=t;e nd;w r i t e i n a=,a,b=,b)e nd.选择
42、结构设计P AS CAL 中 的 布 尔(逻 辑)类型在前面,我们学习了整型(i nt e g e r)与 实 型(r e al)!其 中 i nt e g e r 型数据取值范围为-3 27 6 8 到 3 27 6 7 之间所有整数!而 r e al 型数据取值范围为2.9 e-3 9.1.7 e 3 8 之间的所有 实 数!它们都是数值型的(即值都为数)!布尔型(Bool e an)是一种数据的类型,这种类型只有两种值,即“真”与“假”!1、布尔常量在 P as c al 语 言 中“真”用 t u r e 表示,“假”用 Fal s e表 示!所以布尔类型只有t r u e 与 f a
43、l s e 两个常量!2、布 尔 变 量(bool e an)如果我们将某些变量说明成布尔型,那么这些变量就是布尔变量,它们只能用于存放布尔值(t u r e 或 f al s e)!例如,VA R A,B:B O O LE A N;3、布尔类型是顺序类型由于这种类型只有两个常量,P as cal 语 言 中 规 定 t u r e的序号为1,f al s e 的序号为0!若某种类型的常量是有限的,那么这种类型的常量通常都有一个序号,我们称这种类型为顺序类型!如前面我们学过的整型(i n t e g e r),以及后面要 学 到 的 字 符 型(ch ar)都是顺序类型!4、布尔类型的输入与输
44、出输出v ar a,b:bo o l e an;be g i na:=t r u e;b:=f al s e;w r i t e i n (a,b);e n d.输出为:t r u e f al s e布尔类型变量不能直接用读语句输入布尔类型变量不能通过读语句给它们提供值!事实上,我们可以通过间接方式对布尔变量进行值的输入!例如,以下程序是错误的:v ar a,b,c:B o o l e an;be g i nr e ad l n (a,b,c);错误语句w r i t e i n (a,b,c);end.关系表达式与布尔表达式1、什么是关系表达式用小括号、=、=、=、将两个算术表达式连接起来
45、的式子就称为关系表达式(比较式)!如:3+78,x+y10,2*76是错的,故它的值为FALSE!同样,45=32是对的,故该表达式的值为true!关系表达式用于表示一个命题!如:“m为偶数”可表示为:m mod 2=0!“n为正数”可表示为:n0!3、布尔运算及布尔表达式为了表示更复杂的命题,Pascal还引入三种逻辑运算符:not、and、or!它们分别相当于数学上的“非”、“且”和“或”的意义!运算符运算运算对象结果类型not逻辑非布尔型布尔型and逻辑与布尔型布尔型or逻辑或布尔型布尔型xor逻辑异或布尔型布尔型这三个运算符的运算对象为布尔量,其 中not为单目运算,只有一个运算对象,
46、and与or为双目运算,有两个运算对 象!它们的运算真值表如下:abNot a a and b a or b a xor bfalse falsetruefalsefalsefalsefalsetruetruefalseturetruetruefalse falsefalsetruetruetruetruefalsetruetruefalse于是,对于一个关系表达式,或多个关系表达式用布尔运算符连接起来的式子就称为布尔表达式!布尔表达式的值也为布尔值!如果一个表达式里出现两个或两个以上的运算符,则必须规定它们的运算次序!p as cal 规定:表达式中相同优先级的运算符,按从左到右顺序计算;表
47、达式中不同优先级的运算符,按从高到低顺序计算;括号优先级最高,从内到外逐层降低!对于一个复杂的表达式可能同时包含算术运算、关系运算和逻辑运算以及函数运算!运算的优先顺序为:括号、函数、n o t *、/、d i v、m o d an d +、一、o r x o r 关系运算!对于复杂的命题,我们可以用布尔表达式来表示!例如,命题:“m,n都是偶数或都是奇数”可 表 示 为(m m o d2=0)an d (n m o d 2=0)o r (m m o d 2 =1)an d (n m o d 2=1)”!3.3 i f 语句I F 语句是由一个布尔表达式和两个供选择的操作序列组 成!运行时根据
48、布尔表达式求值结果,选取其中之一的操作序列执行!有 两 种形式的I F语句:格式一(称为“I F-T H EN”型):i f 布尔表达式 t h e n 语句;格 式 二(称 为“I F-T H EN-EL S E”型):i f 布尔表达式 t h e n 语 句 1e l s e(语句 2;当布尔表达式的值为真,则 执 行 t h e n 后面的语句,值为假时有两种情况:要么什么也不做,要 么 执 行 e l s e 后面的语句!注 意 e l s e 前面没有分号,因为分号是两个语句之间的分隔符,而 e l s e 并非语句!如果在该处添了分号,则在编译的时候就会认为if语句到此结束,而
49、把 e l s e 当作另一句的开头,输出出错信息、!例如:求 y=f (x),当 x 0时,y=l,当 x=0时,y=0,当x 0 t h e n y:=1;i f x=0 t h e n y:=0;i f x 0时候,计 算 x*x,并 且 输 出 x和 x*x !程序如下:p r o g r a m 1i a n x i e 3;v a r x,x 1:r e a l;b e g i nr e a d l n (x=,x);i f x 0 t h e nb e g i nx l:=x*x;w r i t e i n (x*x=,x l);w r i t e l n (x=,x);e n
50、d;e n d.例如:读入三个整数,找出并输出其中最大数!程序如下:p r o g r a m e x e c l (i n p u t,o u t p u t);v a r n l,n 2,n 3,m a x:r e a l;b e g i nr e a d (n 1,n 2,n 3);i f n 1 n 2 t h e n m a x:=n 1e l s e m a x:=n 2;i f n 3 m a x t h e n m a x:=n 3;w r i t e l n t h e l a r g e s t n u m b e r i s ,m a x:8)e n d.例如:给 出三角