《Delphi程序设计基础教程》第2章 面向对象的pascal语言.ppt_第1页
《Delphi程序设计基础教程》第2章 面向对象的pascal语言.ppt_第2页
《Delphi程序设计基础教程》第2章 面向对象的pascal语言.ppt_第3页
《Delphi程序设计基础教程》第2章 面向对象的pascal语言.ppt_第4页
《Delphi程序设计基础教程》第2章 面向对象的pascal语言.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DELPHI程序设计基础教程 第二章面向对象的pascal语言 2020年1月27日星期一 DELPHI程序设计基础教程 第二章面向对象的pascal语言 本章学习导读2 1ObjectPascal概述2 2基本数据类型2 3运算符本章小结 2020年1月27日星期一 DELPHI程序设计基础教程 本章学习导读 本章首先介绍如何在Delphi集成开发环境中创建控制台程序 这将为下面学习对象Pascal语言的基本理论创造一个简单实用的上机环境 然后介绍面向对象的Pascal语言中的一些基本知识 如源程序结构 符号 常量 变量 基本数据类型和表达式 并相应的配合图形界面程序实现的实例进一步加深读者对相关知识点的理解 读者在学习完本章之后就可以使用Delphi进行简单的面向对象的程序设计和开发了 2020年1月27日星期一 DELPHI程序设计基础教程 2 1ObjectPascal概述 2 1 1标识符2 1 2保留字2 1 3注释2 1 4常量和变量 2020年1月27日星期一 DELPHI程序设计基础教程 2 1ObjectPascal概述 ObjectPascal具备清晰的模块结构 编译 运行效率高 便于移植 同时由于它提供了各种常量 变量的设置以及丰富的数据类型 在充分体现结构化程序设计的同时 使其应用程序广泛应用于应用软件的开发 通常可以利用Delphi开发下面的3种应用程序 1 Windows图形界面程序 2 控制台程序 3 服务器程序 2020年1月27日星期一 DELPHI程序设计基础教程 2 1ObjectPascal概述 例2 1 编写一个小程序 要求输入一行文字 然后输出用户输入的文字 按回车键退出 该实例可以让读者在学习对象Pascal语言的过程中方便地上机 该实例具有以下特点 1 是一个控制台程序 2 生成的应用程序非常小 一般在几十个字节左右 3 便于保存和备份实例 因为实例的运行环境 界面模式和文件等都比较简单 统一 所以在做完实例之后可以将关键代码复制到某个字处理软件的文档中保存 另外也可以通过简单的操作将运行结果显示的文字复制到剪贴板中 4 相关文件少 最少情况下可以只有一个工程文件 dpr 和一个可执行文件 exe 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 1标识符 标识符 Identifiers 是以字母或下划线开头 后跟字母 数字或下划线所组成的串 其作用是标识常量 变量 类型 属性 对象 过程 函数 程序 单元 库和组件库等 标识符由一个或多个ASCII码字符序列组成 其构词规则如下 1 标识符由字母 数字或下划线组成 2 标识符的第一个字符必须是字母或下划线 3 标识符的长度不应超过255个字符 否则只有前255个字符有效 4 不能将保留字用作标识符 5 标识符不区分大 小写 2020年1月27日星期一 DELPHI程序设计基础教程 2 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等 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 3注释 注释语句为非执行语句 编译程序不对其进行翻译 也不执行 只是为方便用户读程序而附加的解释说明语句 ObjectPascal支持3种类型的注释 大括号注释 与 的成对使用表示它们之间的内容为注释部分 带星号的小括号注释 与 的成对使用表示它们之间的内容为注释部分 双斜杠注释 表示所在行的该符号之后的内容为注释 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 3注释 例2 2 编写一个小程序 依次输入a b c三个数 然后分行输出三个数 按回车键退出 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 4常量和变量 常量和变量是学习各种编程语言进行程序设计的基础概念 它们都是存储数据的载体 它们在同一时刻只存储一个数据 常量和变量代表了在程序运行过程中两种不同状态的量 常量的值是指在程序运行过程中始终不变 与之相反 变量的值则是程序运行过程中可以改变 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 4常量和变量 常量在ObjectPascal中用Const关键字来声明变量 可以同时声明一个或几个常量 每定义一个常量应以分号结束 说明常量时 不需要指定其数据类型 只需给出具体的值 因为编译器能根据常量的值自动判断常量的类型并分配内存 对于整型常量 编译器在运行时跟踪它的值 并不对它分配内存 如 Consta 10 编译器能自动判断a是整型 ConstPi 3 14判断Pi是实型 等等 常量赋值的格式如下 Const常量名 表达式 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 4常量和变量 变量ObjectPascal中用Var关键字来声明变量 在声明变量时需要声明变量的类型 变量分为全局变量和局部变量 全局变量一旦声明 会在整个程序中起作用 而局部变量则是在某一个过程或函数中起作用 退出该过程或函数则该变量自动从内存中被释放 变量是程序代码中代表一个内存地址的标识符 而此地址中的内容在程序代码执行时可以被改变 在使用变量前必须对它进行说明 即对它进行命名 并说明它的类型 系统根据变量的数据类型为每一个变量分配一定的内存空间 用户可以通过变量名对内存单元进行读或写 变量赋值的格式如下 var变量名列表 类型名 2020年1月27日星期一 DELPHI程序设计基础教程 2 1 4常量和变量 例2 3 计算路程有一辆汽车每小时可以行驶x公里 欲计算y小时能行驶多少公里 假设x和y均为整数 解决这个问题需要使用公式 路程 速度 时间 要编写解决这个问题的程序 需要使用3个变量 v t和s 变量v用于存放速度的值 变量t用于存放时间的值 变量s用于存放路程的值 2020年1月27日星期一 DELPHI程序设计基础教程 2 2基本数据类型 2 2 1简单数据类型2 2 2字符串类型2 2 3可变类型2 2 4类型转换 2020年1月27日星期一 DELPHI程序设计基础教程 2 2基本数据类型 在ObjectPascal语言中 每个数据都有一个确定的类型 某种数据类型定义了该类型数据的存储方式和允许的一组运算 存储方式的定义相应地便确定了该类型数据的取值范围 ObjectPascal是一种强类型语言 其变量在使用之前都要声明其数据类型 变量的数据类型决定了它能够存储数据的形式 数据的范围以及它能够进行的运算 在声明变量时 常量值本身就代表其类型 同时也决定了它所能参与的运算 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 1简单数据类型 简单数据类型包括整型 实型 布尔型和字符型等 整型一个整型数据用来存放整数 ObjectPascal支持7种预定义整型 每一种类型规定了相应的整数取值范围以及所占用的内存字节数 整型类型是由正号或负号 数字组成的数据 数据中不包含小数 一般整型类型是最常用的类型 它们可以充分利用CPU和操作系统的特性 所以在程序中应尽可能使用这种整数类型 实型一个实型数据用类存放实数 是实数的子集 它是带有小数部分的数值 ObjectPascal支持六种预定义实型 每一种类型规定了相应的实数取值范围 所占用的内存字节数以及它们所能达到的精度见教材表2 2所示 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 1简单数据类型 布尔型一个布尔型数据用来存放逻辑值 布尔值 ObjectPascal支持四种预定义布尔型 每一个类型规定了所占用的内存字节数 布尔型的值只有两个 False 序号是0 和True 序号是1 分别表示逻辑假和逻辑真 并且True False 4 字符型字符型用Char作为标识符 字符串用String作为标识符 字符型必须用单引号括起来 字母作为字符型时 要区分大小写 并且字符型只允许单引号中有一个字符 否则就是字符串 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 1简单数据类型 例2 4 编写一个小程序 将整数值为0 255的字符在屏幕上输出 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 2字符串类型 字符串类型包括ShortString AnsiString和WideString三种类型 如教材表2 3所示 ShortString类型中的每个元素都是AnsiChar类型 不以NULL作为结束标记 AnsiString类型也是基于AnsiChar类型 可被动态分配存储空间 字符个数几乎不受限制 以NULL作为结束标记 WideString与AnsiString类似 只是所包含的字符是WideChar类型字符 习惯上String默认为AnsiString类型 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 3可变类型 有时需要对一些数据类型变化的数据进行操作 并且在编译期间不能确定数据的类型 这时就可以使用可变类型的数据 这些数据的数据类型可以在运行期间进行改变 但是它们比固定类型的数据占用更多的空间和更多的操作实践 另外 可变类型不能包含记录型 集合类型 静态数组 文件类型 类 指针类型以及长整型等数据类型 可变类型变量声明 var变量名表 variant 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 4类型转换 在Delphi程序中 只有赋值号两端的数据类型一致或相容才可以进行赋值的操作 有时在一个表达式中包含有各种类型的数据 这就需要将不同类型的操作数转换为同一类型的数据 使所得到的结果只能是某一类型的数据 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 4类型转换 类型相容类型相容的数据之间可以进行关系运算 类型相容是赋值相容的前提 也是进行数据运算的前提 在ObjectPascal中 两种数据类型只有满足下列条件之一时才是相容的 两种类型的数据一致 两种类型的数据都是实型 两种类型的数据都是整型 一种数据类型是另一种数据类型的子界 两种数据类型是另外一种宿主类型的子界 两种数据类型都是另外一种相容基类型的集合类型 两种数据类型都是紧凑字符串类型 并且具有相同的元素个数 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 4类型转换 一种数据类型是字符串类型 另一种数据类型是字符串类型 紧凑字符串类型或字符类型 或者一种数据类型是Char类型 另一种数据类型是形式为array 0 n ofchar的字符数组 一种类型是Pointer类型 另一种数据类型是指向任意一种数据类型的指针类型 或者2种数据类型都是基类型相同的指针类型 两种数据类型都是类数据类型或者类引言类型 并且一种数据类型继承了另外一种类型 两种数据类型都是结果类型相同 参数个数相同 参数类型一致的过程类型 一种数据类型是可变数据类型 另外一种数据类型是整型 实型 字符串类型或布尔类型 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 4类型转换 变量的强制类型转换强制类型转换就是将一种类型的变量当作另一种类型 因为ObjectPascal是对数据类型要求严格的面向对象程序设计语言 编译器检查一些语句的数据类型是非常严格的 为了能通过编译检查 经常需要把一个变量的类型转换为另一种类型 强制类型转换的格式如下 类型标识符 变量名 2020年1月27日星期一 DELPHI程序设计基础教程 2 2 4类型转换 例2 5 有以下程序段Varstr1 char str2 byte beginstr1 a str2 str1 End试写出该程序正确的类型转换语句 2020年1月27日星期一 DELPHI程序设计基础教程 2 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运算符的优先级 2020年1月27日星期一 DELPHI程序设计基础教程 2 3运算符 运算符是在代码中对各种数据类型进行运算的符号 例如 有能进行加 减 乘 除的运算符 有能访问一个数组的单个单元地址的运算符 表达式由运算对象和运算符两部分组成 不同数据类型的数据所能进行的运算是不同的 下面分别对各种运算符及其功能进行介绍 根据运算符给定的操作数数据类型 可以将其分为以下几种 赋值运算符 算术运算符 关系运算符 逻辑运算符 集合运算符 位运算符和其他运算符 2020年1月27日星期一 DELPHI程序设计基础教程 2 3 1赋值运算符 赋值语句格式 变量 表达式 其中 称为赋值号 赋值语句的功能是先计算赋值运算符右边表达式的值 然后再把结果赋给左边的变量 例如 x 12 y 5 x 6 str1 w 2020年1月27日星期一 DELPHI程序设计基础教程 2 3 2算术运算符 算术运算符对浮点数和整数进行加 减 乘 除和取模运算 如教材表2 4所示 其中 和 运算符还可以作为单目运算符 放在浮点数或整数前 分别表示正数和负数 此外 运算符还可以用在字符串的运算表达式中 可以将两个字符串连在一起 和 运算符还可以用在集合运算表达式中 在进行 运算中 只有一个运算分量为Real类型 则结果就为Real类型 只有两个运算分量都为Integer类型时 结果才为Integer类型 2020年1月27日星期一 DELPHI程序设计基础教程 2 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的值分别为多少 2020年1月27日星期一 DELPHI程序设计基础教程 2 3 2算术运算符 例2 7 已知圆半径r 计算圆的周长和面积 使用公式 C 2 r和S r2 式中C表示圆的周长 S表示圆的面积 r表示圆的半径 2020年1月27日星期一 DELPHI程序设计基础教程 2 3 3关系运算符 关系运算符可以对两个普通数据类型 类 对象 接口类型或字符串类型的数据进行比较 结果数据类型为布尔类型 关系运算符如教材表2 6所示 关系运算符用来比较两个操作数的大小 被比较的两个操作数类型必须相容 若操作数是数值 则按照数值的大小进行比较 若操作数是字符 串 则根据字符的先后顺序按照ASCII值进行比较 例 a A 结果为True a 的ASCII值为 97 A 的ASCII值为65 15 A 结果为False 2020年1月27日星期一 DELPHI程序设计基础教程 2 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 的值为什么 2020年1月27日星期一 DELPHI程序设计基础教程 2 3 4逻辑运算符 Pascal语言用and和or作为逻辑与和逻辑或运算符 Pascal的逻辑非的运算符是not 它是用来对一个布尔表达式取反 逻辑运算符对逻辑类型的操作数进行运算 数据结果也为逻辑类型 如教材表2 7所示 not 逻辑非 将逻辑结果取反 即原先为True的变成False 原选为False的变成True and 逻辑与 有且仅有两个操作数为真 结果才为真 否则为假 相当于汉语中 并且 的意思 只有当两个条件同时满足时 结果才为True or 逻辑或 仅当一个操作数为真时 值就为真 否则为假 xor 逻辑异或 当两个操作数不同时 即一个为True 另一个为False时结果为真 同时为True或同时为False时为假 2020年1月27日星期一 DELPHI程序设计基础教程 2 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的值 2020年1月27日星期一 DELPHI程序设计基础教程 2 3 6位运算符 位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论