<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pascal语言</title>
	<atom:link href="https://www.aitaocui.cn/tag/189486/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Wed, 23 Nov 2022 15:53:29 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>Pascal语言</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pascal语言(计算机语言)</title>
		<link>https://www.aitaocui.cn/article/296526.html</link>
					<comments>https://www.aitaocui.cn/article/296526.html#respond</comments>
		
		<dc:creator><![CDATA[王俊煜]]></dc:creator>
		<pubDate>Wed, 23 Nov 2022 15:53:29 +0000</pubDate>
				<category><![CDATA[百科]]></category>
		<category><![CDATA[Pascal语言]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=296526</guid>

					<description><![CDATA[Pascal是通用的高级语言，最初由Niklaus Wirth在1970年代初开发。它被开发用于作为系统学科教授编程，并开发可靠而有效的程序。Pascal是基于Algol的语言，包...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>Pascal是通用的高级语言，最初由Niklaus Wirth在1970年代初开发。它被开发用于作为系统学科教授编程，并开发可靠而有效的程序。Pascal是基于Algol的语言，包括许多Algol的构造。Algol 60是Pascal的子集。Pascal提供了几种数据类型和编程结构。易于理解和维护Pascal程序。</p>
</article>
<article>
<h1>来历</h1>
<p>Pascal是最早出现的结构化编程语言，具有丰富的数据类型和简洁灵活的操作语句，适于描述数值和非数值的问题。</p>
<p>正因为上述特点，Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者，Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一，NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言，在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。</p>
<h1>发展</h1>
<p>在Pascal问世以来的三十余年间，先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本，其版本不断更新，而功能更趋完善。</p>
<p>Turbo Pascal语言是编译型程序语言，它提供了一个集成环境的工作系统，集编辑、编译、运行、调试等多功能于一体。Pascal有5个主要的版本，分别是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中，Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal标准委员会所创立和维护的，Unextended Pascal类似于瑞士Niklaus Wirth教授和K.Jensen于1974年联名发表的Pascal用户手册和报告，而Extended Pascal则是在其基础上进行了扩展，加入了许多新的特性。</p>
<p>它们都属于正式的Pascal标准；Object-Oriented Extensions to Pascal是由Pascal标准委员会发表的一份技术报告，在Extended Pascal的基础上增加了一些用以支持面向对象程序设计的特性，但它属于非正式的标准。Borland Pascal和Delphi Object Pascal是由Borland公司专门为其开发的编译工具设计的Pascal语言，前者是用于DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的传统高级语言，后者是用于Windows的Delphi和Linux的Kylix的面向对象程序设计语言，它们都不是正式的Pascal标准，具有专利性。但由于Turbo Pascal系列和Delphi功能强大并且广为流行，Borland Pascal和Delphi Object Pascal已自成为一种标准，为许多人所熟悉。</p>
<h1>影响</h1>
<p>高级语言发展过程中，PASCAL是一个重要的里程碑。PASCAL语言是第一个系统地体现了E.W.Dijkstra和C.A.R.Hoare定义的结构化程序设计概念的语言。1971年，瑞士联邦技术学院尼克劳斯·沃尔斯（N.Wirth）教授发明了另一种简单明晰的电脑语言，这就是以电脑先驱帕斯卡的名字命名的PASCAL语言。PASCAL语言语法严谨，层次分明，程序易写，具有很强的可读性，是第一个结构化的编程语言。它一出世就受到广泛欢迎，迅速地从欧洲传到美国。沃尔斯一生还写作了大量有关程序设计、算法和数据结构的著作，因此，他获得了1984年度“图灵奖”。</p>
<h1>应用</h1>
<p>在中国的信息学奥林匹克竞赛中，过去比较常用的Pascal编程工具是Turbo Pascal，20世纪Freepascal普及。Turbo Pascal是DOS下的一种16位编程工具，在Delphi出现之前，它是世界上最多人使用的Pascal编程工具，拥有编译速度极快的先进编译器和功能强大而又简便易用的集成开发环境（IDE），在微机程序员中广为流行，正是它的出现奠定了Pascal在DOS/Windows平台上不可动摇的根基，20世纪常见的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0与Turbo Pascal 5.5相比，主要是IDE更为强大，而其程序设计功能改变不大，只是增加了一些新的功能，例如可以内嵌asm汇编语句等。</p>
<p>而Borland Turbo Pascal with Objects 7.0（简称Borland Pascal 7.0）则有了新的飞跃，首先是IDE进一步加强，提供了程序浏览器，然后是程序设计功能有了很大的提升，新增了一些十分有用的标准子程序，支持比较完善的面向对象程序设计功能，并提供了DOS实模式、DOS保护模式和Windows模式三种程序编译模式，能够编写出可以使用扩充内存（XMS）的保护模式应用程序或者在Windows 3.x下运行的Windows程序，另外还提供了一个对象窗口库（OWL），使用它可以快速的开发出具有一致的视窗界面（DOS或Windows 3.x）的应用程序。Borland Pascal 7.0在1992年推出，是Turbo Pascal系列在DOS下的最后版本。</p>
<p>下面列出Turbo Pascal的编年史：</p>
<p>1983 Turbo Pascal 1.0</p>
<p>Turbo Pascal 2.0</p>
<p>Turbo-87 Pascal 提高实数运算速度并扩大值域</p>
<p>1985 Turbo Pascal 3.0 增加图形功能</p>
<p>Turbo BCD Pascal 特别适合应用于商业</p>
<p>1987 Turbo Pascal 4.0 提供集成开发环境(IDE)，引入单元概念</p>
<p>1988 Turbo Pascal 5.0 增加调试功能</p>
<p>1989 Turbo Pascal 5.5 支持面向对象的程序设计(OPP)</p>
<p>1990 Turbo Pascal 6.0 提供面向对象的应用框架和库(Turbo Vision)</p>
<p>1992 Turbo Pascal 7.0 面向对象的应用系统、更完善的IDE</p>
<p>Turbo Vision 2.0</p>
<p>1993 Borland Pascal 7.0 开发 Object Windows库</p>
<p>(For Windows) 提供对OLE多媒体应用开发的支持</p>
<p>1995 Delphi Visual Pascal</p>
<p>20世纪，随着Turbo Pascal逐渐被淘汰，全国信息学奥林匹克竞赛决赛（NOI）和国际信息学奥林匹克竞赛（IOI）已经指定Free Pascal为比赛使用的Pascal编程工具。Free Pascal是由一个国际组织开发的32位Pascal编程工具，属于共享软件，可用于各种操作系统。根据编译选项的不同，它可以使用Borland Pascal兼容语法、Delphi 2 Object Pascal语法或者其它语法进行编写程序。</p>
<p>由于它拥有32位的编译器，所以理论内存达到了4GB，而且一直在更新发展中，因此它的功能比Borland Pascal更加强大，拥有许多现代程序设计的特征，但同时也很不成熟，存在很多漏洞。Free Pascal正处于发展初期，相应的函数库十分少，对程序员的吸引力远比不上拥有VCL和CLX的Delphi和Kylix，但是它的这些不同于Turbo Pascal的特征使联赛选手们需要改进自己的算法（简单地说就是时间换空间）。</p>
<p>Pascal竞赛的辅导用书有很多，最经典的有《全国青少年信息学奥林匹克联赛培训教材》。</p>
<h1>标准数据类型</h1>
<p>Pascal向程序设计者提供了丰富的数据类型，它们用于专门的目的，但却都是由简单的、非构造型的数据类型所构成的。本节介绍Turbo Pascal中最为基本的几种数据类型：整型、实型、布尔型和字符型。它们都是系统定义的简单数据类型，称为标准数据类型，其对应的名字称为标准标识符。</p>
<h2 id="a-68575438">整型</h2>
<p>一个整型数据用来存放整数，整型数据可以是正整数、负整数和整数零。</p>
<p>Turbo Pascal中的整型常数必须按规定严格书写。</p>
<p>Turbo Pascal支持五种预定义整型，它们是短整型(Shortint)、整型(Integer)、长整型(Longint)、字节型(Byte)和字类型(Word)，每一种类型规定了相应的整数取值范围以及所占内存字节数(一个字节为8个二进制位)。因此，用户在具体编程定义变量类型时，要根据它们的特点选用适当的类型，以达到理想的效果。当两个不同范围类型的操作数进行运算时，得到的结果属于较大范围的类型。如下表所示。</p>
<p>Turbo Pascal语言规定可以对整型数据进行算术运算符+、一、*、Div(取商)、Mod。</p>
<p>它们分别表示加、减、乘、整除和取余。这五种运算，要求参加运算的两个数都是整型数，运算结果也是整型数。前三种运算与一般的算术运算加、减、乘相同。Div整除运算，是两个整型数相除取整数部分(商的整数部分)，得到整型结果。Mod取余运算，是两个整型数相除取余数，余数的符号与被除数符号相同。例如：</p>
<p>3 Div 2 = 1 5 Div 7 =0</p>
<p>6 Div (-4) = &#8211; 1 (-12) Div (-5) =2</p>
<p>7 Mod 4 = 3 (14) Mod (-4) =2</p>
<p>(-18) Mod (-6) = 0 6 Mod l7 =6</p>
<p>由此可见，a Mod b，所得结果的符号与a相同，其值(绝对值)在0～∣b∣-1之间。运算符Mod与Div之间有如下关系：</p>
<p>a Mod b = a – (a Div b) * b(b&lt;&gt;0)</p>
<p>其中Mod运算的结果的符号与a的符号相同。</p>
<p>利用以上两种运算可以对正整数进行分离。例如：</p>
<p>n为四位数8531，可用下法分离出它的个、十、百、千位。</p>
<p>8531 Mod l0 = 1 (个位数)</p>
<p>(8531 Mod l00) Div l0 = 3 (十位数)</p>
<p>(8531 Mod l000) Div l00 = 5 (百位数)</p>
<p>8531 Div l000 = 8 (千位数)</p>
<p>利用 a Mod b可以判断a能否被b整除。当a Mod b = 0时，a能被b整除。</p>
<h2 id="a-d828027f">实型</h2>
<p>一个实型数据用来存放实数。实型数据可以是正实数、负实数和实数零。实型数据一般用小数或指数形式(亦称科学表示法)表示。例如：</p>
<p>+1993，33，3.5E+8(=3.5×105)，-0.5E-3(=-0.5×10-3，)，-20.0，，0.0等都是合法实型数。</p>
<p>Turbo Pascal支持一种预定义实型，它们是基本实型(Real)、单精度实型(Single)、双精度实型(Double)、扩展实型(Extended)和装配实型(Comp)。每一种类型规定了相应的实数取值范围和所占内存字节数，以及它们所能达到的精度，即有效数字位数。因此，用户在具体编程时应根据以上的参数适当选用，以达到最佳效果。如下表所示。</p>
<p>对于此类实型数据，若其绝对值大于上界，则产生上溢；绝对值小于下界，则产生下溢，下溢导致结果为0。Comp类型的取值范围是-263+1～238-1之间的整数，相当于十进制的-9.218～9.218。由于Comp类型的数据表示成二进制形式的数，这种类型的变量有时处理起来比较方便，特别对于数值很大的整数间的计算，这种数据类型很有用。</p>
<p>Turbo Pascal语言允许实型数使用下列运算符进行运算。</p>
<p>运算符：+、-、*、/</p>
<p>分别表示加、减、乘和除。其中&quot;/&quot;叫实数除，即使两个整型数相除，其结果也总是实型，如： 7/2=3.5 6/3=2.0</p>
<h2 id="a-b39f2e3e">字符型</h2>
<p>用标准标识符Char标明字符型。字符型数据可以是字母、符号、数字(0-9)等ASCII码的所有字符。Turbo Pascal支持扩展ASCII码，共包括256个字符。但非印刷字符是不能在标准显示上显示或打印输出。在计算机内部，字符集的元素是以该元素在字符集内的顺序位置来标记的，位置取值范围为0~255，我们称这些整数为字符在字符集内的序数值或序号。每个字符型数据在内存中占一个字节。将字符用单引号括起来，即成字符常数，如，’X’，’7’，’?’。字符常数可按字符的序数值确定大小关系，也就是说它们的大小由它们所对应的ASCII码值决定，如：’Y’，’Z’，’A’&lt;’a’。</p>
<p>由于采用ASCII码，字符依ASCII码序号排列。这样，字符与ASCII码序号有一一对应的映射关系。</p>
<h2 id="a-71eda89b">布尔型</h2>
<p>一个布尔型数据用来存放逻辑值，或称布尔值。Turbo Pascal支持预定义布尔型，以标准标识符Boolean表示。Boolean一词，系根据19世纪英国数学家George boole (1815-1864)的名字而得，George boole为现代布尔代数之父。布尔型数据的值只有两个：True(逻辑真)和False(逻辑假)。布尔型是顺序类型，规定False&lt;TRUE，FALSE的序号为0，TRUE的序号为1。</p>
<p>逻辑运算的结果只有两个：True（真）和False（假）。Turbo Pascal提供了六种关系运算符和四种逻辑运算符：</p>
<p>=(等于)、&lt;（小于）、&lt;=（小于等于）、&gt;（大于）、&gt;=（大于等于）、&lt;&gt;（不等于）</p>
<p>NOT（非）、AND（与）、OR（或）、XOR（异或）</p>
<h1>运算关系</h1>
<h2 id="a-9d1e334d">函数</h2>
<p>标准函数。Turbo Pascal语言提供了自变量为整型量的标准函数有顺序函数算术函数和转换函数等。</p>
<p>标准函数是Turbo Pascal语言预先定义的，它们实际上是能完成特定功能的称步子程序的程序段。每个标准函数都用一个标识符来标识，每个标准函数都能完成一个特定的功能，在程序中可以直接调用它们。Turbo Pascal语言中某些标准函数与数学中的函数有相似之处。</p>
<h2 id="a-b6597334">整数类型函数</h2>
<p>整型是顺序类型，即所有的整型数都是按一定的顺序排列的。如3的后序数是4，350的后序数是351。以后介绍的布尔型、字符型、枚举类型和子界类型等都是顺序类型。顺序函数可以对顺序类型数据进行操作，但要注意它们自变量的取值范围。</p>
<p>①前趋函数：Pred(x)函数值为x-l，例如：</p>
<p>Pred (6)=5 Pred (-21)=-22</p>
<p>②后继函数：Succ (x)函数值为x+l，例如：</p>
<p>Succ (l5)=16 Succ (-114)= -113</p>
<p>③绝对值函数：Abs (x)函数值为︱X︱，例如：</p>
<p>Abs (-119)=119 Abs (101)=101</p>
<p>④平方函数：Sqr (x)函数值为X2，例如：</p>
<p>Sqr (-5)=，25 Sqr (l0)= 100</p>
<p>以上四个函数的结果仍是整型数。</p>
<p>⑤奇函数：Odd (x)，函数的结果为布尔型。当X为奇数时，函数值为true；当X为偶数时，函数值为false。例如：</p>
<p>Odd (13)= True Odd (16)= False</p>
<p>⑥字符函数：Chr (X)，函数值是序号的ASCII字符，属字符型。例如：</p>
<p>Chr (65)=’A’ Chr (32)=’ ’</p>
<h2 id="a-fc6a1c8b">实数类型函数</h2>
<p>在下列算术函数中，X可以是实型或整型数的表达式。对于函数Abs和Sqr，其结果类型和变量X的类型相同，其他算术函数的结果类型都是实型。</p>
<p>绝对值函数Abs(x)：函数值为x的绝对值</p>
<p>平方函数Sqr(x)：函数值为x的平方</p>
<p>小数函数Frac(x)：函数值为x的小数部分</p>
<p>整数函数Int(x)：函数值为x的整数部分</p>
<p>正弦函数Sin(x)：函数值为x的正弦，其申，的单位为弧度</p>
<p>余弦函数Cos(x)：函数值为x的余弦，其中，的单位为弧度</p>
<p>指数函数Exp(x)：函数值为了ex</p>
<p>对数函数Ln(X)：函数值为x的自然对数</p>
<p>平方根函数的Sqrt(x)：函数值为x的平方根</p>
<p>反正切函数Arctan(x)：函数值为x的反正切，单位为弧度</p>
<p>随机函数Random：无自变量时，函数值取(0,1)间的随机小数；有自变量且为Word类型时，函数值取(0，自变量)间的随机整数。</p>
<h2 id="a-c5901a38">字符类型函数</h2>
<p>Turbo Pascal语言提供如下自变量为字符型的标准函数，其中Chr为字符型。</p>
<p>后继函数Succ (ch)：例如，Succ (’8’)=’9’ Succ (’E’)=’F’</p>
<p>对字符集的最后一个字符，Succ函数无意义。</p>
<p>前趋函数Pred (ch)：例如，Pred (’7’)=’6’ Pred (’B’)=’ A’</p>
<p>序数函数Ord (ch)：:给出字符ch在ASCII字符集中的序号，结果为整型。</p>
<p>注意：Ord (’7’)&lt;&gt;7，正确的是：Ord (’7’)=Ord(’0’)+7=48+7=55</p>
<p>若ch是数字字符，则Ord (ch)-Ord (&#x27;0&#x27;)是该数字字符的数值。例如：Ord (’7’)-Ord(’0’)=7</p>
<p>前面介绍的字符函数Chr (i)是Ord (ch)的逆函数。例如:</p>
<p>Chr (55)= ’7’ Chr (Ord(’A’))=’A’</p>
<h2 id="a-c1084a46">布尔类型函数</h2>
<p>Turbo Pascal语言提供布尔型函数主要是几个字符型函数。</p>
<p>Ord (B)例如：Ord (false)=0 Ord (true)=1</p>
<h1>表达式</h1>
<p>运算是对数据进行加工处理的过程，得到运算结果的数学公式或其它式子统称为表达式。表达式可以是常量也可以是变量或算式，在表达式中又可分为：算术表达式、逻辑表达式和字符串表达式。</p>
<p>1、算术表达式：</p>
<p>算术表达式是最常用的表达式，又称为数值表达式。它是通过算术运算符来进行运算的数学公式。我们先来看Visual Basic中的算术运算符：</p>
<p>算术运算符</p>
<p>运算符表达式说明举例</p>
<p>* X*Y 求X乘Y的值 6*7=42</p>
<p>/ X/Y 求X除Y的值（浮点数运算） 2.76/1.2=2.3</p>
<p>div X div Y 求X除Y的整数商（对整型数计算） 25 div 5=5</p>
<p>Mod X mod Y 求X除Y的余数（对整型数运算） 25 mod 4=1</p>
<p>+ X+Y 加法运算 32+2=34</p>
<p>&#8211; X-Y 减法运算 48-21=27</p>
<p>由于Visual Basic只能识别按其格式书写的数学表达式，所以必须将我们常用的数学表达式转换成Visual Basic表达式。例如：</p>
<p>数学式 Visual Basic表达式</p>
<p>2、逻辑运算</p>
<p>逻辑运算的结果只有两个：True（真）和False（假）。Visual Basic提供了六种关系运算符和四种逻辑运算符：</p>
<p>=(等于)、&lt;（小于）、&lt;=（小于等于）、&gt;（大于）、&gt;=（大于等于）、&lt;&gt;（不等于）</p>
<p>NOT（非）、AND（与）、OR（或）、XOR（异或）</p>
<p>运算关系</p>
<p>p q NOT p p AND q p OR q</p>
<p>True True False True True</p>
<p>True False False False True</p>
<p>False True True False True</p>
<p>False false True False False</p>
<p>例如：5&gt;3 结果为 True, “a”&gt;”b” 结果为False。</p>
<p>3、表达式的运算优先顺序</p>
<p>在进行表达式的转换过程中，必须了解各种运算的优先顺序，使转换后的表达式能满足数学公式的运算要求。运算优先顺序为：</p>
<p>括号→函数→乘方→乘、除→加、减→字符连接运算符→关系运算符→逻辑运算符</p>
<p>如果同级的运算是按从左到右次序进行；多层括号由里向外。</p>
<p>例：</p>
<p>（10+6）*3^2*COS(1)/2*8+7</p>
<p>① ④ ③ ⑤ ② ⑥ ⑦ ⑧</p>
<p>Sqrt(Abs(p/n-1))+1</p>
<p>④ ③ ① ② ⑤</p>
<h1>Pascal字符与符</h1>
<p>1．标识符</p>
<p>(1)标识符的定义：标识符就是以字母开头的字母数字序列，有效长度为63个字符，并且大小写等效。可以用来标示常量、变量、程序、函数等。例如例1.1中的Area(程序名)，pi(符号常量)，s、r(变量名)都是标识符。</p>
<p>(2)标识符的分类：</p>
<p>a.保留字(关键字)</p>
<p>所谓保留字是指在Pascal语言中具有特定的含义，你必须了解它的含义，以便于正确的使用，否则会造成错误。标准Pascal语言中的保留字一共有35个，Turbo Pascal语言一共有51个。下面是Pascal语言的保留字:</p>
<p>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等</p>
<p>b.标准标识符：指Pascal语言预先定义的标识符，具有特殊含义。</p>
<p>以下列举了Turbo Pascal语言部分常用的标准表识符：</p>
<p>标准常量False　Maxint　True</p>
<p>标准类型Boolean　Char　Real　 Integer</p>
<p>标准函数Abs　Arctan　Chr　Cos　Eof　Eoln　Exp</p>
<p>Ln　 Odd　 Ord　Pred　 Round　Sin　 Sqr</p>
<p>Sqrt　 Succ　Trunc</p>
<p>标准过程Dispose　Get　 New　Pack　 Page　 Put　 Read</p>
<p>Readln Reset　 Rewrite　Unpack　 Write　Writeln</p>
<p>标准文件Input　Output</p>
<p>c．用户自定义标识符：由你自己根据需要来定义。</p>
<p>（1）选用的标识符不能和保留字相同。</p>
<p>（2）语法上允许预定义的标准标识符作为你自己定义的标识符使用，但最好还是不要用。</p>
<p>以下列举了你自己在定义标识符时可以用的字符：</p>
<p>A..Z,a..z,0..9和_(下划线)，其中首位必须是字母，字母不区分大小写。</p>
<p>2.2Pascal数据类型</p>
<p>数据是程序设计的一个重要内容，其重要特征&#8212;-数据类型，确定了该数据的形、取值范围以及所能参与的运算。</p>
<p>Turbo Pascal提供了丰富的数据类型，这些数据类型可以分为三大类：简单类型、构造类型和指针类型，其中简单类型可以分为标准类型（整型、实型、字符型和布尔型）和自定义类型（枚举型和子界型），构造类型可以分为数组类型、集合类型、记录类型和文件类型。这些数据类型中除了指针类型是动态数据类型外，其他的都是静态数据类型。在这些数据类型中的简单类型都是有序类型，除了实型以外的简单类型都是顺序类型，所谓顺序类型就是他们的值不仅是有序的而且是有顺序号。</p>
<p>在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型。</p>
<p>1.整型</p>
<p>一个整型数据用来存放整数。Turbo Pascal支持五种预定义整型，它们是shortint（短整型）、integer（整型）、longint（长整型）、 byte（字节型）和 word（字类型），Turbo Pascal分别用相同的名字作为他们的标识符。每一种类型规定了相应的整数取值范围以及所占用的内存字节数。</p>
<p>类型　数值范围　占字节数　格式</p>
<p>shortint　-128..128　1　 带符号8位</p>
<p>integer　 　-32768..32767　 2　 　带符号16位</p>
<p>longint　-2147483648..2147483647 　4　 带符号32位</p>
<p>byte　0..255　 1　 不带符号8位</p>
<p>word　0..65535　 2　 不带符号16位</p>
<p>Turbo Pascal规定了两个预定义整型常量标识符maxint和maxlonint，他们各表示确定的常数值，maxint为32767， longint为2147483647，他们的类型分别是integer 和longint</p>
<p>2.实型</p>
<p>一个实型数据用来存放实数。Turbo Pascal支持五种预定义实型，它们是real（基本实型）、 single（但精度实型）、double（双精度实型）、extended（扩展实型）、comp（装配实型），Turbo Pascal分别用相同的名字作为他们的标识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度</p>
<p>类型数值范围占字节数有效位数</p>
<p>real　2.9e-39..1.7e38　6　11..12</p>
<p>single　1.5e-45..3.4e38　4　7..8</p>
<p>double　5.0e-324..1.7e308　8　15..16</p>
<p>Turbo Pascal支持两种用于执行实型运算的代码生成模式：软件仿真模式和80&#215;87浮点模式。除了real可以在软件仿真模式下直接运行以外，其他类型必须在80&#215;87浮点模式下运行。</p>
<p>3.布尔型</p>
<p>一个布尔型数据用来存放逻辑值（布尔值）。布尔型的值只有两个：false和true，并且false的序号是0，true的序号是1。false 和true都是预定义常数标识符，分别表示逻辑假和逻辑真。并且true&lt;false。boolean是布尔型的标识符。</p>
<p>4.字符型</p>
<p>字符型用char作为标识符。字符型必须用单引号括起来，字母作为字符型时，大小写是不等价的，并且字符型只允许单引号中有一个字符，否则就是字符串。</p>
<p>2.3常量与变量</p>
<p>1.常量</p>
<p>(1)常量：在某个程序的整个过程中其值不变的量。</p>
<p>(2)常量定义：常量定义出现在说明部分。它的语法格式是：</p>
<p>const</p>
<p>&lt;常量标识符&gt;=&lt;常量&gt;;</p>
<p>&#8230;</p>
<p>&lt;常量标识符&gt;=&lt;常量&gt;;</p>
<p>常量标识符的类型由定义它的常量的类型决定。例如：const a=12 隐含说明a是整型；const r=3.21 隐含说明r是实型&#8230;&#8230;</p>
<p>(3)常量定义部分必须以保留字const开头，可以包含一个或几个常量定义，而且每个常量均以分号结束。</p>
<p>(4)Turbo Pascal类型常量</p>
<p>类型常量，又称变量常数，它是Turbo Pascal的一个扩充特性。类型常量的定义与标准Pascal规定的常数定义和变量说明有所区别。类型常量定义的语法格式：</p>
<p>const</p>
<p>&lt;简单类型常量标识符&gt;:简单类型=常数；</p>
<p>例如：</p>
<p>const</p>
<p>counter:integer=0;</p>
<p>flag:boolean=true;</p>
<p>index:0..100=0;</p>
<p>2.变量</p>
<p>(1)变量：在某个程序中的运行过程中其值可以发生改变的量</p>
<p>(2)变量说明：变量说明出现在说明部分。它的语法格式是：</p>
<p>var</p>
<p>&lt;变量标识符列表&gt;:&lt;类型&gt;;</p>
<p>&#8230;</p>
<p>&lt;变量标识符列表&gt;:&lt;类型&gt;;</p>
<p>其中，保留字var表示开始一个变量说明部分。变量标识符列表是一个用逗号隔开的标识符序列，冒号后面的类型是类型标识符。每个变量说明均以分号结束。</p>
<p>program (程序名)；</p>
<p>var</p>
<p>定义变量如：integer、real、long int 、short int、boolean(此为，标志的变量)</p>
<p>begin</p>
<p>程序开始</p>
<p>例如：</p>
<p>var</p>
<p>a,b,c:integer;</p>
<p>m,n:real;</p>
<p>2.4　标准函数</p>
<p>1.算术函数</p>
<p>函数标识符　 自变量类型　意义　结果类型</p>
<p>abs　整型、实型　绝对值　同自变量</p>
<p>arctan　整型、实型　反正切　实型</p>
<p>cos　整型、实型　余弦　实型</p>
<p>exp　整型、实型　指数　实型</p>
<p>frac　 　整型、实型　小数部分　实型</p>
<p>int　整型、实型　整数部分　实型</p>
<p>ln　整型、实型　自然对数　实型</p>
<p>pi　 无自变量　圆周率　实型</p>
<p>sin　整型、实型　正弦　实型</p>
<p>sqr整型、实型平方同自变量</p>
<p>sqrt整型、实型平方根实型</p>
<p>例：abs(-4)=4abs(-7.49)=7.49arctan(0)=0.0</p>
<p>sin(pi)=0.0cos(pi)=-1.0frac(-3.71)=-0.71</p>
<p>int(-3.71)=-3.0sqr(4)=16sqrt(4)=2</p>
<p>2.标准函数</p>
<p>函数标识符自变量类型意义结果类型</p>
<p>odd 整型判断奇数布尔型</p>
<p>pred离散类型求前趋同自变量</p>
<p>succ离散类型求后继同自变量</p>
<p>例：odd(1000)=falsepred(2000)=1999succ(2000)=2001</p>
<p>odd(3)=truepred(&#x27;x&#x27;)=&#x27;wsucc(&#x27;x&#x27;)=&#x27;y&#x27;</p>
<p>3.转换函数</p>
<p>函数标识符自变量类型意义 结果类型</p>
<p>chrbyte自变量对应的字符　字符型</p>
<p>ord离散类型自变量对应的序号longint</p>
<p>round实型四舍五入longint</p>
<p>trunc　实型截断取整longint</p>
<p>例：chr(66)=&#x27;B&#x27;ord(&#x27;A&#x27;)=65round(-4.3)=-5trunc(2.88)=2</p>
<p>4.杂类函数</p>
<p>函数标识符自变量类型意义结果类型</p>
<p>random　无自变量　[0,1间的随机实数real</p>
<p>random　word　[0,自变量间的随机整数) word</p>
<p>randomize 　无自变量初始化内部随机数产生器longint</p>
<p>upcase　字符型　使小写英文字母变为大写字符型</p>
<p>downcase　字符型　使小写英文字母变为大写字符型</p>
<p>2.5运算符和表达式</p>
<p>1.运算符和优先级</p>
<p>(1)运算符</p>
<p>是实型，如果全部的运算对象都是整型并且运算不是除法，则结果为整型，若运算是除法，则结果是实型a.算术运算符</p>
<p>运算符运算运算对象结果类型</p>
<p>+加整型、实型只要有一个运算对象是实型，结果就</p>
<p>-减整型、实型是实型，如果全部的运算对象都是整</p>
<p>*乘整型、实型型并且运算不是除法，则结果为整型，</p>
<p>/除整型、实型若运算是除法，则结果是实型。</p>
<p>div整除整型整型</p>
<p>mod取余整型整型</p>
<p>b.逻辑运算符</p>
<p>运算符运算运算对象结果类型</p>
<p>not逻辑非布尔型布尔型</p>
<p>and逻辑与布尔型布尔型</p>
<p>or逻辑或布尔型布尔型</p>
<p>xor逻辑异或布尔型布尔型</p>
<p>c.关系运算符</p>
<p>运算符运算运算对象结果类型</p>
<p>=等于简单类型布尔型</p>
<p>&lt;&gt; 不等于　简单类型布尔型</p>
<p>&lt;小于简单类型布尔型</p>
<p>&gt;大于简单类型布尔型</p>
<p>&lt;=小于等于简单类型布尔型</p>
<p>&gt;=大于等于简单类型布尔型</p>
<p>(2)优先级</p>
<p>运算符优先级</p>
<p>not1(高)</p>
<p>*,/,div,mod,and2</p>
<p>xor,+,-,or 3</p>
<p>in,=,&lt;&gt;,&gt;=,&lt;=,&lt;&gt;4(低)</p>
<p>2.表达式</p>
<p>(1)算术表达式：算术表达式是由算术运算符连接常量、变量、函数的式子。算术表达式中各个运算符的次序为：()&#8211;&gt;函数&#8211;&gt;*,/,div,mod&#8211;&gt;+,1</p>
<p>(2)布尔表达式：TurboPascal提供给布尔表达式以下基本操作：逻辑运算和关系运算。</p>
<p>（3）数学上的表达式与pascal语言表达式的区别</p>
<p>数学表达式PASCAL表达式注意</p>
<p>2a2*a*号不能省略</p>
<p>a÷ba/b除号的写法</p>
<p>a≠ba&lt;&gt;b不等号的写法</p>
<p>a≤ba&lt;=b 小于等于号的写法</p>
<p>a≥ba&gt;=b大于等于号的写法</p>
<p>主要语句：</p>
<p>读入：Read/ReadLn：读入内容/读入内容并将读入指针转到下一行。</p>
<p>输出：Write/WriteLn：输出内容/输出内容并将输出指针转到下一行。</p>
<p>赋值：&lt;变量&gt;:=&lt;表达式&gt;</p>
<p>判断：ifcase</p>
<p>循环：forwhileuntil</p>
<p>退出：break(跳出循环),exit(跳出过程/函数).halt(终止程序)</p>
<h1>程序设计</h1>
<p>单元：</p>
<p>PASCAL语言的程序中，通过在开头使用uses命令，说明使用的单元，语法是：</p>
<p>uses&lt;单元名称&gt;</p>
<p>标准库单元：System、DOS、CRT、Printer、Graph、Graph3、Turbo3、Overlay</p>
<p>单元的结构</p>
<p>单元的程序类似于一般的源程序，结构一般如下：</p>
<p>unit&lt;单元名称&gt;</p>
<p>interface</p>
<p>uses&lt;单元名称表&gt;;</p>
<p>&lt;公用说明&gt;</p>
<p>implementation</p>
<p>uses&lt;单元名称表&gt;;</p>
<p>&lt;私有说明&gt;</p>
<p>&lt;过程和函数程序段&gt;</p>
<p>begin&lt;开始&gt;</p>
<p>&#8230;&lt;语句&gt;</p>
<p>end.&lt;结束&gt;</p>
<p>可以看出，interface一节接就相当于C++中类的public部分，uses相当于类的继承，implementation相当于private部分，初始化部分相当于构造函数。</p>
<p>面向对象的程序设计：</p>
<p>面向对象的程序设计就是利用pascal的单元进行设计。</p>
<p>pascal有object关键字，就是用于面向对象的程序设计，使用起来，程序的结构更加清晰。</p>
<p>语法：</p>
<p>object</p>
<p>Field;</p>
<p>Field;</p>
<p>&#8230;</p>
<p>Method;</p>
<p>Method;</p>
<p>end;</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/296526.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
