标准的语言——Pascal入门

Author: 李军 Date: 2000年 第38期

#1    一、前言
  Pascal语言是由瑞士Niklaus Wirth教授设计的,它代表的是结构化程序设计的顶峰;一经推出即风靡全球,形成Pascal热潮。尤其在全世界各所大学里作为计算机编程的入门语言备受推崇。在今天Pascal已经成为最为流行的RAD(Rapid Application Development)工具之一——Delphi的基本语言,因此学好Pascal也是通向Delphi的捷径。
  在所有的Pascal系统中,Turbo Pascal是目前使用最广泛的,其界面友好,对Pacal语言全面支持。可以这么说,Turbo Pascal是实际上的PC机上的Pascal标准,其数据结构及控制结构丰富,代码安全性能高,程序可读性强,便于调试及维护,充分体现了结构化程序设计思想。而且在高版本的Turbo Pascal中引入并支持面向对象的程序设计方法,使Pascal语言在Delphi中获得了新的活力。Turbo Pascal的集成开发环境,将程序的编辑和调试环境合而为一,从而使程序设计不再那么枯燥。
#1    二、Pascal语法简介
  本文将以Turbo Pascal的语法为范本进行Pascal的入门讲解,主要按照数据类型、数据操作、以及程序控制结构三个部分来介绍。
#1    1.数据类型
  Pascal具有有丰富的数据类型,无论是数值的还是字符的,甚至是位的。数值型的有Byte、Integer、Word、LongInt、Real。虽然都是数值类型,但是它们的取值范围是不一样的。在使用过程中,需按自己的需要作取舍,取小了,会有数值越界的错误;取大了,虽然无关大事,但总觉得有些浪费存储空间。同样对于字符型,Char是针对单个字符使用的,而String类型可以用于定义任何一个不超过255个字符的句子。
  也许有时你觉得系统提供的标准数据类型不够用,这时你就可以定义自己所需要的数据类型。但是要记住的一点是这些数据类型都必须以系统提供的数据类型为基础。在定义完自己的数据类型之后,在以后的程序里就可以像使用标准数据类型一样,使用该数据类型了。
  Pascal的用户自定义数据类型包括枚举型、记录型、集合型以及数组型。下面就针对每一种类型稍加解释。
  ①枚举类型
  该类型就是帮助用户把同类型的数据元素归在一类,就像如下方式:
  IncomeLevel:(High,Moderate,Low);
  ②记录类型
  该类型一般是用于一个整体性数据结构的封装(有点类似后来出现的对象封装的概念)。这在C/C++里也有,那就没有“炫耀”的价值了。
  ③集合类型
  集合一般是一组相关的数据,用于判断某个数据是否属于指定的一组数据。
  ④数组类型
  这个类型到处都是,那就不用多费口舌了。
  既然有了那么多可用的数据类型,下面就介绍使用方法。数据类型总是出现在定义符号“:”的右边,如“变量名:数据类型”的形式,把它读作“××变量是××类型”,那样就容易记忆多了。
#1    2.数据操作
  在Pascal中,变量在定义之后才能在程序中使用。各个变量之间的操作只有赋值和运算两种操作,赋值是很简单的,使用赋值运算符“:=”,就可以将一个确定的值赋给某个相同类型的变量。运算那就有些麻烦,各种类型的数据都有其自己的运算规则。所以这个需要用心学一下。对于数值型的变量,无论是算术的加减乘除,还是逻辑上的大于小于等于,其规则跟数学上的相同,可以对照着学会。而字符串的运算一般都需调用系统提供的一些函数,包括Chr、Upcase、Contact、Copy、Delete、Insert等,在这里不对它们作介绍,因为Turbo Pascal集成开发环境的help里有详尽讲述,读者可以自己去查看。
#1    3.程序结构控制
  各种控制语句使用在程序主体里,通过控制语句的综合使用来完成程序复杂功能的实现。写过流程图的读者都会发现,在整个程序流中,使用最多的程序控制方式就是判断和循环,因此在Pascal中控制语句也就是判断和循环两类。Pascal的判断语句有If-then-else和Case-Of,当条件判断的分支过多时,那就用Case-Of来代替If-then-else了,使程序看上去更加简洁易读;循环语句有For-Do、While-Do和Repeat-Until.。For-Do是用于循环次数确定的情况下,而后两者一般都是难以确定次数的循环,常以某个布尔值(True或者False)来判断是否停止循环。
#1    三、编一个Pascal程序
  在介绍一个示例之前,先说明一下Pascal程序的基本结构(事先说明一下,Pascal中的注释均是用{}括起来的):
  Program 程序名;{标识这个程序的名称,可以省略。但是使用一个可读性好的程序名,可以对该程序实现的功能一目了然。}
  Uses 调用单元{当程序使用别的单元里的变量、函数或者过程时,就需要在这里对单元作出调用声明,让编译器知道那些“陌生”的变量、函数或者过程的来源,一般程序都要引用Crt单元,因为它负责的是程序通过显示器的输入和输出}
  Const
  {常量定义}
  Var
  {变量定义}
  Begin
  {程序主体定义}
  End;
  通过使用Read(或Readln)和Write(或Writeln)来进行输入\输出的交互,Read和Readln区别只是后者输出字符串后会自动换行,这同样也适用于Write和Writeln。
  现在我们要实现的功能就是在屏幕上显示一个字符串“你好,《电脑报》软件世界!”。其实里面只涉及到一个字符串的定义和输出。在Turbo Pascal的集成环境下,在FILE菜单里选择NEW来新建一个程序,在新的编辑框里,输入如下程序:
  Program Hello;
  Uses Crt;
  Var
  {变量定义}
  MyString:String;
  Begin
  {变量赋值}
  MyString:=′你好,《电脑报》软件世界!′;
  {调用Writeln在屏幕上输出}
  Writeln(MyString);
  End;
  等全部输入后,通过选择菜单中RUN项来运行程序,这时在DOS环境的屏幕上,可以看到程序的输出结果:你好,《电脑报》软件世界!
#1    四、综述
  本文只是对Pascal的简单介绍,更多的内容还需要在实践中去学习提高。套用一个常用的表达方式:要学会Pascal不难,但是要精通Psacal却需要下苦功。在入门阶段,我们要考虑的主要是程序代码在语法上和语义上的正确性。随着步步深入,我们还要注意到代码的可读性、稳定性以及代码的优化。
  在你学习Pascal的路途上,能给你最大帮助的是Turbo Pascal自带的Help文件,但是一两本参考书也是必要,比如电子工业出版社的《Turbo Pascal程序设计指南》,内容全面详尽,既有语法的说明,又有大量的实例。Internet上的Pascal资源比较少,这是因为现在Pascal程序设计直接融入了Delphi的应用程序开发中,很少有单独推介Pascal的网站。但是在http:∥rssw.126.com,还是有一些精选的Pascal编程资源和例程供你参考。
  在你多看多写Pascal程序后,你的经验值自然会上升。如果不久后,你要笑话这篇文字的肤浅时,我要真诚地祝贺你:朋友,你的功力提升很多!继续努力!