版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章面向对象的pascal语言本章学习导读2.1ObjectPascal概述2.2基本数据类型2.3运算符
本章小结2023/10/8C++面向对象程序设计程序设计基础教程第二章面向对象的pascal语言本章学习导读2023/101本章学习导读本章首先介绍如何在Delphi集成开发环境中创建控制台程序,这将为下面学习对象Pascal语言的基本理论创造一个简单实用的上机环境;然后介绍面向对象的Pascal语言中的一些基本知识,如源程序结构、符号、常量、变量、基本数据类型和表达式,并相应的配合图形界面程序实现的实例进一步加深读者对相关知识点的理解。读者在学习完本章之后就可以使用Delphi进行简单的面向对象的程序设计和开发了。2023/10/8C++面向对象程序设计程序设计基础教程本章学习导读本章首先介绍如何在Delphi集成开发环境中创建22.1ObjectPascal概述2.1.1标识符2.1.2保留字2.1.3注释2.1.4常量和变量
2023/10/8C++面向对象程序设计程序设计基础教程2.1ObjectPascal概述2.1.1标识符32.1ObjectPascal概述ObjectPascal具备清晰的模块结构,编译、运行效率高,便于移植,同时由于它提供了各种常量、变量的设置以及丰富的数据类型,在充分体现结构化程序设计的同时,使其应用程序广泛应用于应用软件的开发。通常可以利用Delphi开发下面的3种应用程序:(1)Windows图形界面程序(2)控制台程序(3)服务器程序2023/10/8C++面向对象程序设计程序设计基础教程2.1ObjectPascal概述ObjectPas42.1ObjectPascal概述例2-1:编写一个小程序。要求输入一行文字,然后输出用户输入的文字,按回车键退出。该实例可以让读者在学习对象Pascal语言的过程中方便地上机。该实例具有以下特点:(1)是一个控制台程序。(2)生成的应用程序非常小,一般在几十个字节左右。(3)便于保存和备份实例。因为实例的运行环境、界面模式和文件等都比较简单、统一,所以在做完实例之后可以将关键代码复制到某个字处理软件的文档中保存。另外也可以通过简单的操作将运行结果显示的文字复制到剪贴板中。(4)相关文件少。最少情况下可以只有一个工程文件(.dpr)和一个可执行文件(.exe)。2023/10/8C++面向对象程序设计程序设计基础教程2.1ObjectPascal概述例2-1:编写一个小52.1.1标识符标识符(Identifiers)是以字母或下划线开头,后跟字母、数字或下划线所组成的串,其作用是标识常量、变量、类型、属性、对象、过程、函数、程序、单元、库和组件库等。标识符由一个或多个ASCII码字符序列组成,其构词规则如下:(1)标识符由字母、数字或下划线组成;(2)标识符的第一个字符必须是字母或下划线;(3)标识符的长度不应超过255个字符,否则只有前255个字符有效;(4)不能将保留字用作标识符;(5)标识符不区分大、小写。2023/10/8C++面向对象程序设计程序设计基础教程2.1.1标识符标识符(Identifiers)是以字母62.1.2保留字程序如同一篇文章,由字符组成单词,再由单词和符号构成句子――语句。ObjectPascal语言中具有特殊含义的单词称为保留字。保留字系统已使用,用户不可以用来作为标识符。以下是ObjectPascal的保留字:
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH等2023/10/8C++面向对象程序设计程序设计基础教程2.1.2保留字程序如同一篇文章,由字符组成单词,再由单72.1.3注释注释语句为非执行语句,编译程序不对其进行翻译,也不执行,只是为方便用户读程序而附加的解释说明语句。ObjectPascal支持3种类型的注释。大括号注释:“{”与“}”的成对使用表示它们之间的内容为注释部分。带星号的小括号注释:“(*”与“*)”的成对使用表示它们之间的内容为注释部分。双斜杠注释“//”:表示所在行的该符号之后的内容为注释。2023/10/8C++面向对象程序设计程序设计基础教程2.1.3注释注释语句为非执行语句,编译程序不对其进行翻82.1.3注释例2-2:编写一个小程序。依次输入a,b,c三个数,然后分行输出三个数,按回车键退出。2023/10/8C++面向对象程序设计程序设计基础教程2.1.3注释例2-2:编写一个小程序。依次输入a,b,92.1.4常量和变量常量和变量是学习各种编程语言进行程序设计的基础概念,它们都是存储数据的载体,它们在同一时刻只存储一个数据。常量和变量代表了在程序运行过程中两种不同状态的量。常量的值是指在程序运行过程中始终不变;与之相反,变量的值则是程序运行过程中可以改变。2023/10/8C++面向对象程序设计程序设计基础教程2.1.4常量和变量常量和变量是学习各种编程语言进102.1.4常量和变量常量在ObjectPascal中用Const关键字来声明变量,可以同时声明一个或几个常量,每定义一个常量应以分号结束。说明常量时,不需要指定其数据类型,只需给出具体的值。因为编译器能根据常量的值自动判断常量的类型并分配内存,对于整型常量,编译器在运行时跟踪它的值,并不对它分配内存。如:Consta=10,编译器能自动判断a是整型,ConstPi=3.14判断Pi是实型,等等。常量赋值的格式如下:
Const常量名=表达式;2023/10/8C++面向对象程序设计程序设计基础教程2.1.4常量和变量常量2023/10/8C++面向对象112.1.4常量和变量变量ObjectPascal中用Var关键字来声明变量,在声明变量时需要声明变量的类型。变量分为全局变量和局部变量。全局变量一旦声明,会在整个程序中起作用。而局部变量则是在某一个过程或函数中起作用,退出该过程或函数则该变量自动从内存中被释放。变量是程序代码中代表一个内存地址的标识符,而此地址中的内容在程序代码执行时可以被改变。在使用变量前必须对它进行说明,即对它进行命名,并说明它的类型。系统根据变量的数据类型为每一个变量分配一定的内存空间。用户可以通过变量名对内存单元进行读或写。变量赋值的格式如下:var变量名列表:类型名;2023/10/8C++面向对象程序设计程序设计基础教程2.1.4常量和变量变量2023/10/8C++面向对象122.1.4常量和变量例2-3:计算路程有一辆汽车每小时可以行驶x公里,欲计算y小时能行驶多少公里(假设x和y均为整数)。解决这个问题需要使用公式:路程=速度×时间。要编写解决这个问题的程序,需要使用3个变量:v、t和s。变量v用于存放速度的值,变量t用于存放时间的值,变量s用于存放路程的值。2023/10/8C++面向对象程序设计程序设计基础教程2.1.4常量和变量例2-3:计算路程2023/10/8132.2基本数据类型2.2.1简单数据类型2.2.2字符串类型2.2.3可变类型2.2.4类型转换
2023/10/8C++面向对象程序设计程序设计基础教程2.2基本数据类型2.2.1简单数据类型2023/1142.2基本数据类型在ObjectPascal语言中,每个数据都有一个确定的类型,某种数据类型定义了该类型数据的存储方式和允许的一组运算,存储方式的定义相应地便确定了该类型数据的取值范围。ObjectPascal是一种强类型语言,其变量在使用之前都要声明其数据类型。变量的数据类型决定了它能够存储数据的形式、数据的范围以及它能够进行的运算。在声明变量时,常量值本身就代表其类型,同时也决定了它所能参与的运算。2023/10/8C++面向对象程序设计程序设计基础教程2.2基本数据类型在ObjectPascal语言中,每152.2.1简单数据类型简单数据类型包括整型、实型、布尔型和字符型等。整型一个整型数据用来存放整数。ObjectPascal支持7种预定义整型,每一种类型规定了相应的整数取值范围以及所占用的内存字节数。整型类型是由正号或负号、数字组成的数据,数据中不包含小数。一般整型类型是最常用的类型,它们可以充分利用CPU和操作系统的特性,所以在程序中应尽可能使用这种整数类型。实型一个实型数据用类存放实数,是实数的子集,它是带有小数部分的数值。ObjectPascal支持六种预定义实型,每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度见教材表2-2所示。2023/10/8C++面向对象程序设计程序设计基础教程2.2.1简单数据类型简单数据类型包括整型、实型、布尔型162.2.1简单数据类型布尔型一个布尔型数据用来存放逻辑值(布尔值)。ObjectPascal支持四种预定义布尔型,每一个类型规定了所占用的内存字节数。布尔型的值只有两个:False(序号是0)和True(序号是1),分别表示逻辑假和逻辑真。并且True<False。4.字符型字符型用Char作为标识符。字符串用String作为标识符。字符型必须用单引号括起来,字母作为字符型时,要区分大小写,并且字符型只允许单引号中有一个字符,否则就是字符串。2023/10/8C++面向对象程序设计程序设计基础教程2.2.1简单数据类型布尔型2023/10/8C++面向172.2.1简单数据类型例2-4:编写一个小程序,将整数值为0~255的字符在屏幕上输出。2023/10/8C++面向对象程序设计程序设计基础教程2.2.1简单数据类型例2-4:编写一个小程序,将整数值182.2.2字符串类型字符串类型包括ShortString,AnsiString和WideString三种类型,如教材表2-3所示。ShortString类型中的每个元素都是AnsiChar类型,不以NULL作为结束标记;AnsiString类型也是基于AnsiChar类型,可被动态分配存储空间,字符个数几乎不受限制,以NULL作为结束标记;WideString与AnsiString类似,只是所包含的字符是WideChar类型字符。习惯上String默认为AnsiString类型。2023/10/8C++面向对象程序设计程序设计基础教程2.2.2字符串类型字符串类型包括ShortStri192.2.3可变类型有时需要对一些数据类型变化的数据进行操作,并且在编译期间不能确定数据的类型,这时就可以使用可变类型的数据。这些数据的数据类型可以在运行期间进行改变,但是它们比固定类型的数据占用更多的空间和更多的操作实践。另外,可变类型不能包含记录型、集合类型、静态数组、文件类型、类、指针类型以及长整型等数据类型。可变类型变量声明:
var变量名表:variant2023/10/8C++面向对象程序设计程序设计基础教程2.2.3可变类型有时需要对一些数据类型变化的数据进行操202.2.4类型转换在Delphi程序中,只有赋值号两端的数据类型一致或相容才可以进行赋值的操作。有时在一个表达式中包含有各种类型的数据,这就需要将不同类型的操作数转换为同一类型的数据,使所得到的结果只能是某一类型的数据。2023/10/8C++面向对象程序设计程序设计基础教程2.2.4类型转换在Delphi程序中,只有赋值号两端的212.2.4类型转换类型相容类型相容的数据之间可以进行关系运算。类型相容是赋值相容的前提,也是进行数据运算的前提。在ObjectPascal中,两种数据类型只有满足下列条件之一时才是相容的:两种类型的数据一致。两种类型的数据都是实型。两种类型的数据都是整型。一种数据类型是另一种数据类型的子界。两种数据类型是另外一种宿主类型的子界。两种数据类型都是另外一种相容基类型的集合类型。两种数据类型都是紧凑字符串类型,并且具有相同的元素个数。2023/10/8C++面向对象程序设计程序设计基础教程2.2.4类型转换类型相容2023/10/8C++面向对222.2.4类型转换一种数据类型是字符串类型,另一种数据类型是字符串类型、紧凑字符串类型或字符类型,或者一种数据类型是Char类型,另一种数据类型是形式为array[0..n]ofchar的字符数组。一种类型是Pointer类型,另一种数据类型是指向任意一种数据类型的指针类型,或者2种数据类型都是基类型相同的指针类型。两种数据类型都是类数据类型或者类引言类型,并且一种数据类型继承了另外一种类型。两种数据类型都是结果类型相同、参数个数相同、参数类型一致的过程类型。一种数据类型是可变数据类型,另外一种数据类型是整型、实型、字符串类型或布尔类型。2023/10/8C++面向对象程序设计程序设计基础教程2.2.4类型转换一种数据类型是字符串类型,另一种数据类232.2.4类型转换变量的强制类型转换强制类型转换就是将一种类型的变量当作另一种类型。因为ObjectPascal是对数据类型要求严格的面向对象程序设计语言,编译器检查一些语句的数据类型是非常严格的,为了能通过编译检查,经常需要把一个变量的类型转换为另一种类型。强制类型转换的格式如下:
类型标识符(变量名);2023/10/8C++面向对象程序设计程序设计基础教程2.2.4类型转换变量的强制类型转换2023/10/8C242.2.4类型转换例2-5:有以下程序段Varstr1:char;str2:byte;beginstr1:=’a’;str2:=str1;End试写出该程序正确的类型转换语句。2023/10/8C++面向对象程序设计程序设计基础教程2.2.4类型转换例2-5:有以下程序段2023/10/252.3运算符2.3.1赋值运算符2.3.2算术运算符2.3.3关系运算符2.3.4逻辑运算符2.3.5集合运算符2.3.6位运算符2.3.7其他运算符2.3.8运算符的优先级2023/10/8C++面向对象程序设计程序设计基础教程2.3运算符2.3.1赋值运算符2023/10/8C262.3运算符运算符是在代码中对各种数据类型进行运算的符号。例如,有能进行加、减、乘、除的运算符,有能访问一个数组的单个单元地址的运算符。表达式由运算对象和运算符两部分组成。不同数据类型的数据所能进行的运算是不同的,下面分别对各种运算符及其功能进行介绍。根据运算符给定的操作数数据类型,可以将其分为以下几种:赋值运算符、算术运算符、关系运算符、逻辑运算符、集合运算符、位运算符和其他运算符。2023/10/8C++面向对象程序设计程序设计基础教程2.3运算符运算符是在代码中对各种数据类型进行运算的符号272.3.1赋值运算符赋值语句格式:
变量:=表达式;其中,“:=”称为赋值号。赋值语句的功能是先计算赋值运算符右边表达式的值,然后再把结果赋给左边的变量。例如:x:=12;y:=5*x+6;str1:=’w’;2023/10/8C++面向对象程序设计程序设计基础教程2.3.1赋值运算符赋值语句格式:2023/10/8C+282.3.2算术运算符算术运算符对浮点数和整数进行加、减、乘、除和取模运算,如教材表2-4所示。其中+和-运算符还可以作为单目运算符,放在浮点数或整数前,分别表示正数和负数。此外,+运算符还可以用在字符串的运算表达式中,可以将两个字符串连在一起。+、-和*运算符还可以用在集合运算表达式中。在进行“+”、“-”、“*”运算中,只有一个运算分量为Real类型,则结果就为Real类型,只有两个运算分量都为Integer类型时,结果才为Integer类型。2023/10/8C++面向对象程序设计程序设计基础教程2.3.2算术运算符算术运算符对浮点数和整数进行加、减、292.3.2算术运算符例2-6:varn,m,r:integer;x,y,z:real;beginn:=10;m:=3;x:=2.5;r:=nmodm;//将n除以m所得的余数赋给rz:=n+x;y:=n/x;writeln(r);writeln(z);writeln(y);readlnend.程序段执行后,r,z,y的值分别为多少?2023/10/8C++面向对象程序设计程序设计基础教程2.3.2算术运算符例2-6:2023/10/8C++面302.3.2算术运算符例2-7:已知圆半径r,计算圆的周长和面积。使用公式:C=2∏r和S=∏r2,式中C表示圆的周长,S表示圆的面积,r表示圆的半径。2023/10/8C++面向对象程序设计程序设计基础教程2.3.2算术运算符例2-7:已知圆半径r,计算圆的周长312.3.3关系运算符关系运算符可以对两个普通数据类型、类、对象、接口类型或字符串类型的数据进行比较,结果数据类型为布尔类型。关系运算符如教材表2-6所示。关系运算符用来比较两个操作数的大小,被比较的两个操作数类型必须相容,若操作数是数值,则按照数值的大小进行比较;若操作数是字符(串),则根据字符的先后顺序按照ASCII值进行比较。例:’a’>’A’//结果为True,‘a’的ASCII值为‘97’,
//‘A’的ASCII值为65’15’>’A’//结果为False2023/10/8C++面向对象程序设计程序设计基础教程2.3.3关系运算符关系运算符可以对两个普通数据类型、类322.3.3关系运算符例2-8:在Delphi集成开发环境中,创建一个控制台程序的工程,并在代码编辑窗口中打开Project8.dpr文件,在该文件中输入如下代码:programProject8;{$APPTYPECONSOLE}varx,y:Integer;Bo:Boolean;beginx:=10;//给x赋值10y:=20;//给y赋值20Bo:=not(x>y);writeln(Bo);readlnend.运行后,布尔型变量“Bo”的值为什么?2023/10/8C++面向对象程序设计程序设计基础教程2.3.3关系运算符例2-8:在Delphi集成开发环332.3.4逻辑运算符Pascal语言用and和or作为逻辑与和逻辑或运算符,Pascal的逻辑非的运算符是not,它是用来对一个布尔表达式取反。逻辑运算符对逻辑类型的操作数进行运算,数据结果也为逻辑类型,如教材表2-7所示。not(逻辑非):将逻辑结果取反,即原先为True的变成False,原选为False的变成True。and(逻辑与):有且仅有两个操作数为真,结果才为真;否则为假。相当于汉语中“并且”的意思,只有当两个条件同时满足时,结果才为True。or(逻辑或):仅当一个操作数为真时,值就为真,否则为假。xor(逻辑异或):当两个操作数不同时,即一个为True,另一个为False时结果为真,同时为True或同时为False时为假。2023/10/8C++面向对象程序设计程序设计基础教程2.3.4逻辑运算符Pascal语言用and和or作为逻342.3.5集合运算符集合运算符只要对两个集合进行操作,判断两个集合之间的关系,如教材表2-9所示。例如,有以下说明和集合的运算:typeNumbers=1...100;Numset=setofNumbers;varset1,set2,set3,set4,set5:Numset;beginset1:=[1,3,5,7];set2:=[2,4,5,8];set4:=[1,3];set5:=[2,5];set3:=set1+set2;end;试算出set3的值。2023/10/8C+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芜湖医药健康职业学院《金融企业会计》2025-2026学年期末试卷
- 蚌埠城市轨道交通职业学院《民事诉讼法》2025-2026学年期末试卷
- 宣化科技职业学院《第二语言习得》2025-2026学年期末试卷
- 漳州城市职业学院《经济法》2025-2026学年期末试卷
- 安徽矿业职业技术学院《广告文案写作》2025-2026学年期末试卷
- 企业消防安全警示标语
- 采油测试仪表工成果水平考核试卷含答案
- 燃气供应服务员操作安全竞赛考核试卷含答案
- 磷酸生产工岗前生产安全意识考核试卷含答案
- 汽车电器维修工安全生产基础知识测试考核试卷含答案
- 电商平台服务协议、交易规则
- DB31∕T 1142-2019 燃气工业锅炉能效在线监测技术规范
- 煤矿安全管理人员考试题库及解析
- 体检中心前台接待流程
- 电梯安装安全培训
- 《小王子》数字故事
- 《刻舟求剑》课本剧剧本:古人的固执与现代人的变通(6篇)
- 五年(2020-2024)高考语文真题分类汇编专题04 古代诗歌鉴赏(原卷版)
- 物业管理安全生产风险分级制度
- 中国移动自智网络白皮书(2024) 强化自智网络价值引领加速迈进L4级新阶段
- 免模装配一体化钢筋混凝土结构工业化体系(PI体系)研发及实践
评论
0/150
提交评论