《第2章的语法基础优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2章的语法基础优秀PPT.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章的语法基础现在学习的是第1页,共39页2.1保留字与标识符2.1.1保留字 保保留留字字(Reserved Word)是是由由系系统统规规定定的的、具具有有特特定定意意义义的的单单词词,在在编编程程时时不不能被重新定义或作其他用能被重新定义或作其他用,Object Pascal 中规定的保留字有中规定的保留字有65个。个。begin end if then else 等等 2.1.2 标识符标识符标识符是用来表示常量、变量、字段、类型、程序、过程、函数、对象等语法实体的名称的符号。1.标准标识符(标准常量、标准类型、过程、函数、文件)2.自定义标识符(字母或下划线开始)3.限定标识符现在
2、学习的是第2页,共39页2.1.3 指令符指令符指令符(directives)也是具有特定意义的单词,但是,它们仅被用于用户自定义的标识符不会出现的上下文中。如:implements、read、write等现在学习的是第3页,共39页2.2数据类型参看p312.2.1 数值型数据数值型数据1.整型INTEGER2.实型REAL2.2.2 字符数据字符数据1.字符型CHARA2.字符串型STRINGASDF2.2.3 布尔型数据布尔型数据 BOOLEAN2.3 常量与变量常量与变量在程序的执行过程中其值保持不变,称为常量;在程序的执行过程中其值可以被改变,称为变量。2.3.1 常量常量1.直接常
3、量2.符号常量现在学习的是第4页,共39页定义符号常量使用常量说明语句,其语法格式为:CONST 常量名常量名1=常量值常量值1;常量名常量名n=常量值常量值n;如:如:const pi=3.1415;3.类型常量符号常量可以具有数据类型,定义类型常量的语法格式为:CONST 常量名常量名:类型名类型名=常量值常量值;如:如:const pi:real=3.1415;现在学习的是第5页,共39页2.3.2 变量变量程序中变量是某个内存地址的标识符,表示内存单元的值在程序运行过程中可以被改变。1.变量的声明变量声明的语法格式为:VAR 变量名变量名1:类型名类型名1;变量名变量名n:类型名类型名
4、n;当多个变量具有相同的类型时,可以使用如下的紧凑格式:VAR 变量名变量名1,变量名变量名n:类型名类型名;举例举例:略略2.变量的使用变量的使用现在学习的是第6页,共39页2.4 运算符与表达式运算符与表达式2.4.1 算术运算符与算术表达式算术运算符与算术表达式1.算术运算符+-*/DIVMOD2.算术表达式数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,结果为数值型。算术表达式的格式为:数值数值1算术运算符算术运算符1数值数值2算术运算符算术运算符2数值数值33.算术运算符的优先级算术运算符的优先级正、负号;正、负号;*、/;Div、Mod;+、-现在学习的是第7页,共3
5、9页2.4.2 表达式的一般概念由操作数与运算符组成,不同运算符用于不同类型的表达式.主要的运算符有:算术运算符、逻辑运算符、关系运算符、字符串运算符等。1.逻辑运算符的使用主要有:notandorxor(又称二进制位运算符)2.关系运算符主要有:=3.布尔运算符布尔运算符与逻辑运算符形式相同,有:notandorxor,但操作的对象和运算结果不同。布尔运算符的操作数是布尔型变量,运算结果也是布尔型.例如:if(i100)thenx:=1elsex:=0;if(i100)thenx:=1elsex:=0;*求值特点现在学习的是第8页,共39页2.4.3 字符串运算符字符串运算符只有一种即连接运
6、算符:+,字符串表达式的格式为:字符串表达式字符串表达式+字符串字符串|字符字符如:如:abcd+666666 /连接后为连接后为abcd666666现在学习的是第9页,共39页2.5常用函数1.算术运算函数2.字符处理函数大小写转换函数:lowercase(x)、uppercase(x)转换函数:inttostr(x)、floattostr(x)、strtoint(x)、strtofloat(x)3.日期与时间函数系统当前的日期和时间label1.Caption:=datetostr(now();转换函数datetostr(date),其它timetostr(date)、datetimeto
7、str(date)现在学习的是第10页,共39页2.4.3 赋值符号:=用法:变量名:=;Varx,y,k:integer;c:char;X:=2;y:=7,k=18;c:=a;则表达式则表达式 x=y 和和 x*y=k的值分别:的值分别:false true 现在学习的是第11页,共39页2.6语句语句是执行具体操作的指令,如下面的语句label1.Caption:=datetostr(now();2.6.1语句的书写规则每个语句必须以分号(;)结束可以是空语句,即只有一个分号(;)多个语句用begin和end组成复合语句格式begin语句1;语句2;。;语句n;end;1、赋值语句格式变量
8、标识符:=表达式;举例略2、过程语句格式过程标识符(实际参数表);举例find(a,s);现在学习的是第12页,共39页3、条件语句、条件语句格式:格式:If then else ;格式:格式:Case 常量表达式常量表达式 of 常数常数1:语句:语句1;常数常数2:语句:语句2;。常数常数n:语句语句n;else 语句;语句;End;4、循环语句、循环语句格式格式 repeat 语句语句1;语句语句2;语句语句3;until ;格式格式 while do 语句语句;格式格式 for :=初值初值 to 终值终值 do 语句;语句;5、break 和和 continue语句语句格式格式 略略
9、现在学习的是第13页,共39页现在学习的是第14页,共39页例:输入a、b,将较小数存于a中ProgramaaVart,a,b:integer;BeginRead(a,b);Ifabthenbegint:=a;a:=b;b:=t;end;End;现在学习的是第15页,共39页例:例:。Var n:integer;Begin read(n);case n of 0:begin write(sun);end;1:write(mon);.Else write(error);End;End.Case 常量表达式常量表达式 of 常数常数1:语句:语句1;常数常数2:语句:语句2;。常数常数n:语句语句
10、n;else 语句;语句;End;现在学习的是第16页,共39页例:输入a、b、c,按由小到大顺序排列。Vart,a,b,c:integer;BeginRead(a,b,c);Ifabthenbegint:=a;a:=b;b:=t;End;Ifacthenbegint:=a;a:=c;c:=t;End;Ifbcthenbegint:=b;b:=c;b:=t;End;End.现在学习的是第17页,共39页例:求例:求n!Var n,f:integer;Begin N:=1;f:=1;Repeat N:=n+1;f:=f*n;Until n=5;End.N:=1;f:=1;While n5 do
11、begin N:=n+1;f:=f*n;end;F:=1;For n:=2 to 5 do f:=f*n;现在学习的是第18页,共39页6、注释语句、注释语句 或或 (*)或或 /现在学习的是第19页,共39页程序结构程序结构Program filename(input,output);Const 常量说明;常量说明;Type 类型说明;类型说明;Var 变量说明;变量说明;Procedure 过程说明;过程说明;Function函数说明;Begin语句组;End.幻灯片34现在学习的是第20页,共39页现在学习的是第21页,共39页现在学习的是第22页,共39页2.5 常用函数与过程常用函数
12、与过程2.5.1 数学运算函数数学运算函数1.绝对值函数绝对值函数定义:function Abs(x);2.平方与平方根函数平方函数的定义:function Sqr(x:Extended):Extended;现在学习的是第23页,共39页平方根函数的定义:function Sqrt(x:Extended):Extended;3.三角函数function Sin(x:Extended):Extended;function Cos(x:Extended):Extended;function ArcTan(x:Extended):Extended;4.整数部分与小数部分取整数函数的定义:functi
13、on Int(x:Extended):Extended;取小数函数的定义:function Frac(x:Extended):Extended;6.指数函数和对数函数指数函数的定义:function Exp(x:Real):Real;现在学习的是第24页,共39页对数函数的定义:function Ln(x:Real):Real;7.随机函数 随机函数的定义:随机函数的定义:function Random (Range:Integer);8.函数函数定义为:函数定义为:function Pi:Extended;2.5.2 字符处理函数字符处理函数1.大小写转换函数其函数定义分别为:其函数定义分别
14、为:function LowerCase(const S:string):string;function UpperCase(const S:string):string;现在学习的是第25页,共39页2.比较先后顺序函数其函数定义分别为:function CompareStr(const S1,S2:string):Integer;function CompareText(const S1,S2:string):Integer;3.合并字符串其过程定义为:procedure AppendStr(var Dest:string;const S:string);其函数定义为:function C
15、oncat(s1,s2,.,sn:string):string;4.查找字符串函数其函数定义为:function Pos(Substr:string;S:string):Integer;5.求字符串长度函数其函数定义为:function Length(S):Integer;现在学习的是第26页,共39页6.截取子字符串函数其函数定义为:function Copy(S;Index,Count:Integer):string;7.删除子字符串过程其过程定义为:procedure Delete(var S:string;Index,Count:Integer);8.插入子字符串过程其过程定义为:pr
16、ocedure Insert(Source:string;var S:string;Index:Integer);9.数值与字符串转换(1)过程Str用来将数值型数据转换成字符串,其过程定义为:procedure Str(X:Width:Decimals;var S);(2)过程Val用来将字符串转换成数值型数据,其过程定义为:procedure Val(S;var V;var Code:Integer);现在学习的是第27页,共39页(3)函数IntToStr用来将整型数据转换成字符串,其函数定义为:function IntToStr(Value:Integer):string;overlo
17、ad;(4)函数FloatToStr用来将实型数据转换成字符串,其函数定义为:function FloatToStr(Value:Extended):string;(5)函数StrToInt用来将数字字符串转换成整型数值,其函数定义为:function StrToInt(const S:string):Integer;(6)函数StrToFloat用来将数字字符串转换成实型数值,其函数定义为:function StrToFloat(const S:string):Extended;(7)函数IntToHex用来将10进制整数转换成或16进制格式,其函数定义为:function IntToHex
18、(Value:Integer;Digits:Integer):string;10.ASCII转换为字符函数Chr用来将ASCII码值转换成字符,其函数定义为:function Chr(X:Byte):Char;现在学习的是第28页,共39页11.格式化函数函数Format用来将字符串按照指定的格式返回,故称格式化函数。其函数定义为:function Format(const Format:string;const Args:array of const):string;类型和格式信息由字符“%”开头,格式如下:%参数位置:-所占宽度.小数位数类型2.5.3 日期时间函数日期时间函数1.日期与时
19、间函数函数Now用来返回系统当前的日期和时间,其函数定义为:function Now:TDateTime;2.日期函数函数Date用来返回系统当前的日期,其函数定义为:function Date:TDateTime;现在学习的是第29页,共39页3.时间函数函数Time用来返回系统当前的时间,其函数定义为:function Time:TDateTime;4.转换函数(1)函数DateToStr、TimeToStr、DateTimeToStr可以分别将日期和时间(TdateTime类型)转换成字符串,其函数定义分别为:function DateToStr(Date:TDateTime):stri
20、ng;function TimeToStr(Time:TDateTime):string;function DateTimeToStr(DateTime:TDateTime):string;(2)函数EncodeDate与过程DecodeDate可以在TdateTime类型的日期值与整型的年、月、日之间互相转换,其定义分别为:function EncodeDate(Year,Month,Day:Word):TDateTime;procedure DecodeDate(Date:TdateTime,var Year,Month,Day:Word);现在学习的是第30页,共39页(3)函数Enco
21、deTime与过程DecodeTime可以在TdateTime类型的时间值与整型的小时、分、秒、毫秒之间互相转换,其定义分别为:function EncodeTime(Hour,Min,Sec,MSec:Word):TDateTime;procedure DecodeTime(Time:TdateTime,var Hour,Min,Sec,MSec:Word);5.星期函数函数DayOfWeek用来返回日期所对应的星期数,其函数定义为:function DayOfWeek(Date:TDateTime):Integer;6.日期与时间的格式函数FormatDateTime用来处理日期与时间的格
22、式。其函数定义为:function FormatDateTime(const Format:String;DateTime:TDateTime):String;2.5.4 顺序类型函数顺序类型函数1.顺序类型现在学习的是第31页,共39页2.顺序函数(1)序数函数Ord返回数据的序数,其定义为:function Ord(X):Longint;(2)前趋函数Pred返回数据的前趋值,其定义为:function Pred(X);(3)后继函数Succ返回数据的后继值,其定义为:function Succ(X);(4)首序数函数Low返回顺序型数据取值集合中的第一个值(序数最小),其定义为:func
23、tion Low(X);(5)末序数函数High返回顺序型数据取值集合中的最末一个值(序数最大),其定义为:function High(X);现在学习的是第32页,共39页2.6 语句语句2.6.1 语句的书写规则语句的书写规则 Object Pascal程程序序语语句句的的书书写写比比较较自自由由,可可以以把把多多个个语语句句放放在在一一个个程程序序行行中中,也也可可以以一个语句分多行书写,只是需要记住:一个语句分多行书写,只是需要记住:Object Pascal的每个语句必须以分号的每个语句必须以分号“;”结束。结束。最简单的语句是什么也不做的最简单的语句是什么也不做的“空语句空语句”:“
24、复合语句”。其语法格式为:Begin 语句语句1;语句语句n;End;现在学习的是第33页,共39页2.6.3 赋值语句赋值语句赋值语句是Delphi程序中最常用的语句,其语法格式为:变量名变量名|属性名属性名:=表达式表达式;2.6.4 注释语句注释语句为了提高程序的可读性,通常应在程序的适当位置加上一些注释。注释语句用来在程序中包含注释,语法格式为:注释内容注释内容或(*注释内容注释内容*)或/注释内容注释内容现在学习的是第34页,共39页习题习题22.1下列符号中哪些可以作为用户自定义的标识符?(1)Student(2)All(3)PROGRAM(4)program(5)ASM(6)xy
25、z(7)X+y(8)Hello!(9)HAITa(10)ord(11)sqr2.2下列符号中哪一个可以作为用户自定义的标识符?(A)4AN(B)an4(C)AND(D)abs2.3Delphi定义的数据类型中,哪些是标准数据类型?哪些是顺序类型?2.4下列哪个符号不能作为Delphi6中的变量名?(A)ABCDEFG(B)P000000(C)89TWDDFF(D)xyz2.5下列符号哪一个是Delphi6中的合法变量名?(A)AB7(B)7AB(C)IF(D)AB72.6下列数据哪些是变量?哪些是常量?是什么类型的常量?(1)name(2)name(3)False(4)ff(5)cj(6)12
26、0(7)n(8)12.345现在学习的是第35页,共39页2.7下列常量说明语句中哪个是合法的?(A)constc:=(a3.4);(B)constc:3.4;(C)constc=3.4;(D)constc:=10and20;2.8下列常量说明语句中哪个是合法的?(A)constI=maxint+1;(B)constzero=0.001;(C)constpi=;(D)constss=pascal;2.9下列实数中哪个是不合法的?(A)0.25E+02(B).25+2(C)25E+2(D)34.52.10指出下列变量说明语句的错误:varc3,c4,c5:real;C3:integer;现在学习
27、的是第36页,共39页2.11计算下列表达式的值:(1)20+17div2(2)(31+23div5)mod3(3)succ(b)+pred(c)(4)ord(a)+ord(d)2.12的ObjectPascal表达式是:(A)(b+sqr(b*b4*a*c)/(2*a)(B)(b+sqrt(b*b4*a*c)div(2*a)(C)(b+sqrt(b*b4*a*c)/(2*a)(D)(b+sqr(sqrt(b)4*a*c)/(2*a)2.13把下列数学表达式,改写为等价的Delphi算术表达式。(1)(2)(3)(4)2.14的ObjectPascal表达式是:(A)E*X*Lg(A+B)*(
28、3*t*2)(B)Exp(X)*Ln(A+B)*(3*t*t)(C)Exp(X)*Ln(A+B)*(3*Spr(t)(D)Exp(X)*Ln(A+B)/Ln(10)*(3*Spr(t)现在学习的是第37页,共39页2.15把Delphi算术表达式a/(b+c/(d+e/Sqrt(f)写成数学表达式。2.16设n为整型变量,且已赋值为1898,表达式(nmod100)div10表示:(A)分离出个位数字(B)分离出十位数字(C)分离出百位数字(D)分离出千位数字2.17写出下列函数的值。(1)LowerCase(Hello)(2)UpperCase(Hello)(3)Copy(Hello,1,2
29、)(4)StrToInt(1968)(5)FloatToStr(-459.65)(6)Length(Hello)2.18函数Trunc(Random*10)值是在哪个范围内的整数?(A)(0,1)(B)(1,10)(C)(0,10)(D)(1,9)2.19如果x是一个正实数,对x的第3位小数四舍五入的表达式是:(A)0.01*Int(x+0.005)(B)0.01*Int(100*(x+0.005)(C)0.01*Int(100*(x+0.05)(D)0.01*Int(x+0.05)现在学习的是第38页,共39页2.20数学式子sin30写成Delphi表达式是:(A)Sin30(B)Sin(30)(C)SIN(30)(D)Sin(30*Pi/180)2.21指出下列赋值语句的错误:(1)x:=2y+10;(2)a:=b:=3.1415*2;(3)r1+r2:=23;(4)Sqrt(3.14):=x*y;2.22将下列算式写成赋值语句:(1)(2)(3)(4)现在学习的是第39页,共39页