PASCAL语言的基本知识

article/2025/10/3 14:00:17

Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。 以法国数学家命名的Pascal语言。现已成为使用最广泛的基于DOS的语言之一。其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强

pascal语法图

pascal语法图

程序组成

例1.1计算半径为R的圆面积S

program Area; {程序首部}
{已知半径求圆的面积}
const pi=3.14159; {说明部分——数据描述}
var s,r:real;
begin {执行部分}
readln(r);
s:=pi*sqr(r);
writeln(’s=’,s);
end.

上述程序第一行称为程序首部。其中用花括号(注释可以用{ }或(* *)来表示)括起来的内容是注释,程序第二行就是一个注释,注释除了给人看,增加程序的可读性外,对程序编译和运行不起作用。一个程序可以包含多个出现在不同处注释,亦可无注释。程序第三行是常量说明,程序第四行是变量说明。程序从begin到end都是执行(语句)部分。




程序首部

例1.1的第一行称为程序首部。program是保留字,接着是程序名(由你依据“标示符”规则自行定义),最后以分号表示程序首部结束,下面是程序主体的开始。程序首部在一个Turbo Pascal(仅在Turbo Pascal中有效)程序中并非必须出现,它是可选的。写上它仅起了文档作用。因此,在时间有限的情况下,如果用Turbo Pascal编程完全可以省略程序首部。




程序体

a.说明部分

说明部分用于定义和说明程序中用到的数据,由单元说明、标号说明、常量说明、类型说明、变量说明、函数或过程说明组成,并且这些数据的说明次序必须按照以上次序。但是一个简单的Turbo Pascal程序也可以不包含说明部分,也就是说说明部分是可选的

b.执行部分

执行部分描述了程序要执行的操作。它必须以一个Turbo Pascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。begin 和end必须成对出现,这是一个Turbo Pascal程序所必须有的。紧跟end之后的句号表示执行部分的结束,也表示整个程序的结束。此后的任何语句都无效。Turbo Pascal规定紧随end之前出现的分号允许省略。




程序结构

program 程序名;
uses
已知单元说明;
label
标号说明;
const
常量说明;
type
类型说明;
var
变量说明;
operator
运算符说明;
function
函数说明;
procedure
过程说明;
begin
语句;
语句;
……
语句
end.



字符与符号




保留字

所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误。标准Pascal语言中的保留字一共有35个,Turbo Pascal语言一共有51个。下面是Pascal语言的保留字(斜体是Turbo 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,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH,EXPORTS,SHR,STRING,ASM,OBJECT,UNIT,CONSTRUCTOR,IMPLEMENTATION,DESTRUCTOR,USES,INHERITED,INLINE,INTERFACE,LIBRARY,XOR,SHL,FAR,OPERATOR

(1)标识符的定义:标识符就是以字母开头的字母数字序列,有效长度为63个字符,并且大小写等效。可以用来标示常量、变量、程序、函数等。例如例1.1中的Area(程序名),pi(符号常量),s、r(变量名)都是标识符。

(2)标识符的分类:

a.标准标识符:指Pascal语言预先定义的表识符,具有特殊含义。

以下列举了Turbo Pascal语言部分常用的标准表识符:

标准常量 False Maxint True

标准类型 Boolean Char Real Integer

标准函数 Abs Arctan Chr Cos Eof Eoln Exp Ln Odd Ord Pred Round Sin Sqr Sqrt Succ Trunc

标准过程 Dispose Get New Pack Page Put Read Readln Reset Rewrite Unpack Write Writeln 

标准文件 Input Output

b.用户字定义表识符:由你来根据需要定义。

(1)选用的表识符不能和保留字相同。

(2)语法上允许预定义的标准标识符作为你定义的的表识符使用,但最好还是不要用。

以下列举了你在定义表识符时可以用的字符:

A——Z;a——z;0——9;+,-,*,/,=,<>,<=,>=,<,>,(,),[,],{,},:=,,,;,.,:,..,’,^,@



数据类型

数据是程序设计的一个重要内容,其重要特征----数据类型,确定了该数据的、取值范围以及所能参与的运算

Turbo Pascal 提供了丰富的数据类型,这些数据类型可以分为三大类:简单类型、构造类型和指针类型,其中简单类型可以分为标准类型(整型、实型、字符型和布尔型)和自定义类型(枚举型和子界型),构造类型可以分为数组类型、集合类型、记录类型和文件类型。这些数据类型中除了指针类型是动态数据类型外,其他的都是静态数据类型。在这些数据类型中简单类型都是有序类型,除了实型以外的简单类型都是顺序类型,所谓顺序类型就是他们的值不仅是有序的而且是有顺序号

在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型。




整型

一个整型数据用来存放整数。Turbo Pascal支持五种预定义整型,它们是shortint(短整型)、 integer(整型)、 longint(长整型)、 byte(字节型)和 word(字类型),Turbo Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的整数取值范围以及所占用的内存字节数。

类型 数值范围 占字节数 格式

shortint -128..128 1 带符号8位

integer -32768..32767 2 带符号16位

longint -2^16~2^16-1 带符号32位

byte 0..255 1 带符号8位

word 0..65535 2 带符号16位

Turbo Pascal规定了两个预定义整型常量表识符maxint和maxlonint,他们各表示确定的常数值,maxint为32767, longint为2147483647,他们的类型分别是integer 和longint。




实型

一个实型数据用类存放实数。Turbo Pascal支持五种预定义实型,它们是real(基本实型)、 single(单精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),Turbo Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。

类型 数值范围 占字节数 有效位数

real 2.9e-39..1.7e38 6 11..12

single 1.5e-45..3.4e38 4 7..8

double 5.0e-324..1.7e308 8 15..16

extended 3.4e-4932..1.1e4932 10 19..20

comp -2**63+1..2**63-1 8 19..20

Turbo Pascal支持两种用于执行实型运算的代码生成模式:软件仿真模式和80x87浮点模式。除了real可以在软件仿真模式下直接运行以外,其他类型必须在80x87浮点模式下运行。




布尔型

一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false和true,并且false的序号是0,true的序号是1。false 和true都是预定义常数表识符,分别表示逻辑假和逻辑真。并且true大于false。boolean是布尔型的表识符。




字符型

字符型用char作为表识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。




其他

构造类型:枚举、子界、记录、集合、数组、object(对象)等

注:引用其他单元后,还有更多类型



常量与变量

常量

(1)常量:在某个程序的整个过程中其值不变的量。

(2)常量定义:常量定义出现在说明部分。它的语法格式是:

const

<常量标识符>=<常量>;

<常量标识符>=<常量>;

常量表识符的类型由定义它的常量的类型决定。例如:const a=12 隐含说明a是整型;const r=3.21 隐含说明r是实型......

(3)常量定义部分必须以保留字const开头,可以包含一个或几个常量定义,而且每个常量均以分号结束。

(4)Turbo Pascal类型常量

类型常量,又称变量常数,它是Turbo Pascal的一个扩充特性。类型常量的定义与标准Pascal规定的常数定义和变量说明有所区别。类型常量定义的语法格式:

const

<简单类型常量标识符>:简单类型=常数;

例如:

const

counter:integer=0;

flag:boolean=true;

index:0..100=0;

变量

(1)变量:在某个程序中的运行过程中其值可以发生改变的量

(2)变量说明:变脸说明出现在说明部分。它的语法格式是:

var

<变量标识符列表>:<类型>;

...

<变量标识符列表>:<类型>;

其中,保留字var表示开始一个变量说明部分。变量标识符列表是一个用逗号隔开的标识符序列,冒号后面的类型是类型标识符。每个变量说明均以分号结束。

例如:

var

a,b,c:integer;

m,n:real;



标准函数


算术函数

函数标识符

自变量类型

意义

结果类型

abs

整型、实型

绝对值

整型、实型

arctan

整型、实型

反正切

实型

cos

整型、实型

余弦

实型

exp

整型、实型

指数

实型

frac

整型、实型

小数部分

实型

int

整型、实型

整数部分

整型

ln

整型、实型

自然对数

实型

pi

圆周率

实型

sin

整型、实型

正弦

实型

sqr

整型、实型

平方

整型、实型

sqrt

整型、实型

平方根

实型

例:

abs(-4)=4

abs(-7.49)=7.49

arctan(0)=0.0

sin(pi)=0.0

cos(pi)=-1.0

frac(-3.71)=-0.71

int(-3.71)=-3.0

sqr(4)=16

sqrt(4)=2




标量函数

函数标识符

自变量类型

意义

结果类型

odd

整型

判断奇数

布尔型

pred

离散类型

求前趋

离散类型

succ

离散类型

求后继

离散类型

例:

odd(1000)=false

odd(3)true

pred(2000)=1999

succ(2000)=2001

pred(’x’)=’w’

succ(’x’)=’y’




转换函数

函数标识符

自变量类型

意义

结果类型

chr

整型

自变量对应的字符

字符型

ord

离散类型

自变量对应的序号

整型

round

实型

四舍五入

整型

trunc

实型

截断取整

整型




杂类函数

函数标识符

自变量类型

意义

结果类型

random

[0,1)之间的随机实数

实型

random

整型

[0,自变量)之间的随机整数

整型

upcase

字符型

使小写英文字母变为大写

字符型



运算符表达式

运算符和优先级

(1)运算符

a.算术运算符 运算符

运算

运算对象

结果类型

+

整型、实型

只要有一个运算对象是实型,结果就是实型,如果全部的运算对象都是整型并且运算不是除法,则结果为整型,若运算是除法,则结果是实型

-

整型、实型

*

整型、实型

/

整型、实型

div

整除

整型

整型

mod

取余

整型

整型

b.逻辑运算符

运算符

运算

运算对象

结果类型

not

逻辑非

布尔型

布尔型

and

逻辑与

布尔型

布尔型

or

逻辑或

布尔型

布尔型

xor

逻辑异或

布尔型

布尔型

c.关系运算符

运算符

运算

运算对象

结果类型

=

等于

简单类型

布尔型

<>

不等于

简单类型

布尔型

<

小于

简单类型

布尔型

>

大于

简单类型

布尔型

<=

小于等于

简单类型

布尔型

>=

大于等于

简单类型

布尔型

(2)优先级

运算符

优先级

not

1(高)

*,/,div,mod,and

2

xor,+,-,or

3

in,=,<>,>=,<=,<>

4(低)

表达式

(1)算术表达式:算术表达式是由算术运算符连接常量、变量、函数的式子。算术表达式中各个运算符的次序为: ( )-->函数-->*,/,div,mod-->+,1

(2)布尔表达式:Turbo Pascal提供给布尔表达式以下基本操作:逻辑运算和关系运算。


http://chatgpt.dhexx.cn/article/2sEc0Muj.shtml

相关文章

C语言assert()函数用法总结

&#xfeff;&#xfeff; assert宏的原型定义在<assert.h>中&#xff0c;其作用是如果它的条件返回错误&#xff0c;则终止程序执行&#xff0c;原型定义&#xff1a; #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression…

C语言assert函数完全攻略

断言assert函数&#xff0c;C语言assert函数完全攻略 对于断言&#xff0c;相信大家都不陌生&#xff0c;大多数编程语言也都有断言这一特性。简单地讲&#xff0c;断言就是对某种假设条件进行检查。在 C 语言中&#xff0c;断言被定义为宏的形式&#xff08;assert(expressio…

python assert函数解析(最清晰的解释)

欢迎关注WX公众号&#xff1a;【程序员管小亮】 python assert的作用&#xff1a; assert函数用于程序调试 Python 官方文档解释https://docs.python.org/3/reference/simple_stmts.html#assert “Assert statements are a convenient way to insert debugging assertions …

C++中的assert用法

assert用法 void assert(int expression);C中assert&#xff0c;即断言&#xff0c;可以在程序调试阶段检查错误&#xff0c;常用的就比如函数传参时&#xff0c;若是整型&#xff0c;是否超出范围&#xff1b;若是字符串型&#xff0c;地址是否为空等。 在正常时&#xff0c;…

assert()函数(断言函数)

assert()函数&#xff08;断言函数&#xff09; 一&#xff0c;快速了解一下assert函数 void assert (int expression);//括号里面是一个表达式。assert函数是一个宏。 括号里面的表达式如果为真&#xff0c;程序正常执行。 如果函数形式的宏的参数表达式比较等于零&#x…

c语言中assert函数是什么

点击上方蓝字关注我&#xff0c;了解更多咨询 1、assert将通过检查表达式expresion的值来决定是否需要终止执行程序。 2、如果表达式expresion的值是假的(即0)&#xff0c;它将首先向标准错误流stderr打印错误信息。 通过调用abort函数终止程序运行。否则&#xff0c;assert没有…

assert()函数

今天&#xff0c;遇到一个函数返回值时引用&#xff0c;但是返回值存在为NULL的情况。下面是搜到的解决方案 然后&#xff0c;就搜了搜assert()函数的用法&#xff0c;找到一篇&#xff0c;贴在下面assert()函数用法总结 assert宏的原型定义在<assert.h>中&#xff0c;其…

assert()函数用法总结

assert宏的原型定义在<assert.h>中&#xff0c;其作用是如果它的条件返回错误&#xff0c;则终止程序执行&#xff0c;原型定义&#xff1a; #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression &#xff0c;如果其值为假…

assert断言函数简介

目录 &#x1f38d;1.整体介绍 &#x1f38d;2.assert() 的用法和机制 &#x1f38d;3.关于NDEBUG 宏 &#x1f38d;4.使用assert()注意事项 &#x1f38d;4.1使用 assert() 时&#xff0c;被检测的表达式最好不要太复杂 &#x1f38d;4.2不要用会改变环境的语句作为断言…

第十二章 C语言调试_assert断言函数

在我们的实际开发过程之中&#xff0c;常常会出现一些隐藏得很深的BUG&#xff0c;或者是一些概率性发生的BUG&#xff0c;通常这些BUG在我们调试的过程中不会出现很明显的问题&#xff0c;但是如果我们将其发布&#xff0c;在用户的各种运行环境下&#xff0c;这些程序可能就会…

c语言之assert()函数用法总结

1.assert宏的原型定义在<assert.h>中&#xff0c;其作用是如果它的条件返回错误&#xff0c;则终止程序执行。 库函数&#xff1a; assert.h 原型定义&#xff1a; void assert( int expression ); assert的作用是现计算表达式 expression &#xff0c;如果其值为假&…

接私活必备!国外5个顶级程序员接私活网站

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 人生交契无老少&#xff0c;论交何必先同调。 文章目录 PeoplePerHour&#xff1a;薪酬最高的专业自由职业者网站GuruFreeLancerUpworkFiverr 话说程序员这个职业有…

关于网上程序员接私活的问题

点击上方“程序人生”&#xff0c;选择“置顶公众号” 第一时间关注程序猿&#xff08;媛&#xff09;身边的故事 文丨eachfeel 很多人都谈网上接私活这件事&#xff0c;其实大家想法都差不多&#xff0c;现在做软件的那么多&#xff0c;工资也不是那么高了&#xff0c;不像以前…

程序员兼职可以从什么平台接私活?

之前有一项调查&#xff0c;结果显示&#xff1a;想通过副业赚钱的朋友&#xff0c;其中60%的人找不到门路。今天这篇文章就给大家一批可以接私活的平台。不过&#xff0c;再次强调一下&#xff0c;副业并不等于接私活儿。 私活类型与价格区间 程序员兼职的项目大致可分为三类…

10个程序员可以接私活的平台和一些建议!

来源&#xff1a;http://mrw.so/5isQLi 什么样的私活不能接 1、没有第三方担保的个人对个人的尽量不要接&#xff0c;双方都没保障&#xff0c;出了问题很大的可能撕破脸皮不了了之。 2、一上来就直接说给我开发一个什么软件&#xff0c;不说具体需求&#xff0c;没有需求文档的…

程序员接私活常用平台汇总

作者&#xff1a;镇上宝塔 素材来源&#xff1a;今日头条 今天分享一些接私活的常用平台。 ▍前 言 关于程序员接私活&#xff0c;社会各界说法不一。按照作者的观点来说如果你确实急用钱&#xff0c;价格又合适&#xff0c;那就去做。如果不怎么缺钱&#xff0c;那就接私活之前…

程序员接私活的几个平台和建议,避免掉坑!

大家对于程序员接私活这件事的看法&#xff0c;褒贬不一。但是你如果确实用钱&#xff0c;价格又合适&#xff0c;那就大胆去接。 如果不那么缺钱&#xff0c;那么接私活之前先考虑清楚&#xff0c;如果自己将空余时间用在接私活所产生的价值是不是大于提升自己。如果是的话&a…

程序员接私活月入2万?分享10个接私活的网站快收藏~

最近&#xff0c;在和身边的程序员聊天中&#xff0c;听不少朋友分享了自己接私活的经历&#xff0c;那收入真是让我“瞠目结舌” … 程序员A&#xff1a;我Java程序员&#xff0c;工作两年&#xff0c;月薪13K&#xff0c;私活20K。 程序员B&#xff1a;之前在单位上班&#…

推荐几个程序员接私活的网站

相信很多新手程序员&#xff0c;都希望能迅速提高自己的能力同时&#xff0c;又可以赚点外快增加下个人收入&#xff0c;那么&#xff0c;去接一些私活是一个不错的选择。但是接私活之前也要考虑清楚&#xff0c;因为私活一般都会占用自己大量的休息时间&#xff0c;而如果你把…

程序员接私活完整攻略

接私活对程序员这个圈子来说是一个既公开又隐私的话题&#xff0c;不说全部&#xff0c;应该大多数程序员都有过想要接私活的想法&#xff0c;当然&#xff0c;也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题&#xff0c;似乎都在避嫌。就跟有人下班后…