Pascal语言概述.docx

上传人:b****0 文档编号:9493579 上传时间:2023-05-19 格式:DOCX 页数:47 大小:39.15KB
下载 相关 举报
Pascal语言概述.docx_第1页
第1页 / 共47页
Pascal语言概述.docx_第2页
第2页 / 共47页
Pascal语言概述.docx_第3页
第3页 / 共47页
Pascal语言概述.docx_第4页
第4页 / 共47页
Pascal语言概述.docx_第5页
第5页 / 共47页
Pascal语言概述.docx_第6页
第6页 / 共47页
Pascal语言概述.docx_第7页
第7页 / 共47页
Pascal语言概述.docx_第8页
第8页 / 共47页
Pascal语言概述.docx_第9页
第9页 / 共47页
Pascal语言概述.docx_第10页
第10页 / 共47页
Pascal语言概述.docx_第11页
第11页 / 共47页
Pascal语言概述.docx_第12页
第12页 / 共47页
Pascal语言概述.docx_第13页
第13页 / 共47页
Pascal语言概述.docx_第14页
第14页 / 共47页
Pascal语言概述.docx_第15页
第15页 / 共47页
Pascal语言概述.docx_第16页
第16页 / 共47页
Pascal语言概述.docx_第17页
第17页 / 共47页
Pascal语言概述.docx_第18页
第18页 / 共47页
Pascal语言概述.docx_第19页
第19页 / 共47页
Pascal语言概述.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Pascal语言概述.docx

《Pascal语言概述.docx》由会员分享,可在线阅读,更多相关《Pascal语言概述.docx(47页珍藏版)》请在冰点文库上搜索。

Pascal语言概述.docx

Pascal语言概述

第一章Pascal语言概述与预备知识

1关于TurboPascal

  Pascal是一种计算机通用的高级程序设计语言。

它由瑞士NiklausWirth教授于六十年代末设计并创立。

  以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:

严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。

  正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。

尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。

IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一,NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。

  在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。

其中影响最大的莫过于TurboPascal系列软件。

它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。

该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。

下面列出TurboPascal编年史

出版年代

版本名称

主要特色

1983

TurboPascal1.0

TurboPascal2.0

Turbo-87Pascal

提高实数运算速度并扩大值域

1985

TurboPascal3.0

增加图形功能

TurboBCDPascal

特别适合应用于商业

1987

TurboPascal4.0

提供集成开发环境(IDE),引入单元概念

1988

TurboPascal5.0

增加调试功能

1989

TurboPascal5.5

支持面向对象的程序设计(OPP)

1990

TurboPascal6.0

提供面向对象的应用框架和库(TurboVision)

1992

TurboPascal7.0

面向对象的应用系统、更完善的IDE

TurboVision2.0

1993

BorlandPascal7.0

开发ObjectWindows库、

(ForWindows)

提供对OLE多媒体应用开发的支持

1995

Delphi

VisualPascal

  TurboPascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。

1.2TurboPascal或BorlandPascal的启动

(1)TurboPascal的启动

a.DOS下的启动(适用于MS-DOS6.22之前的版本或Win9X&Win2000的CommandMode)

  DOS下,在装有TurboPascal的文件目录下,键入turbo即可进入TurboPascal集成环境。

b.Win9X或Win2000模式下的启动(适用于TurboPascal3.0以后的版本)

  如果在Win9X或Win2000的“资源管理器”装有TurboPascal的目录中,双击turbo.exe或在“开始--程序”菜单中通过MS-DOS方式来运行turbo.exe,它会提示你“该程序设置为MS-DOS方式下运行,并且其它程序运行时,无法运行它。

如果选择继续所有其它程序将关闭”,所以在Win9X或Win2000下无法直接运行它,这时你可以在你希望的地方(比如说桌面上)单击鼠标右键“新建--快捷方式”,单击“浏览”,找到turbo.exed选中,然后单击“打开”,再单击“下一步”,再单击完成;这还没完,选中前面新建的快捷方式(应该叫TurboPascal吧),单击右键,单击“属性”,选择“程序”,然后再单击“高级”,把“MS-DOS方式”前面的那个勾去掉,也就是不要选“MS-DOS方式”,然后单击“确定”,在单击“确定”就大功告成了,以后你运行TurboPascal的时候,只要双击那个你建立起的快捷方式就可以直接在Win9X或Win2000下运行TurboPascal。

 

(2)BorlandPascal的启动

  BorlandPascal的启动没有像TurboPascal那样复杂,一般来说在任何情况下双击bp.exe或是在MS-DOS下运行都不会出现什么问题。

Pascal基本教程第二章

  2001-6-6  大榕树

 

Pascal语言基础知识

2.1Pascal程序基本组成

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

programArea;{程序首部}

{已知半径求圆的面积}

constpi=3.14159; {说明部分——数据描述}

vars,r:

real;

begin           {执行部分}

readln(r);

s:

=pi*sqr(r);

writeln('s=',s);

end. 

  上述程序第一行称为程序首部。

其中用花括号(注释可以用{}或(**)来表示)括起来的内容是注释,程序第二行就是一个注释,注释除了给人看,增加程序的可读性外,对程序编译和运行不起作用。

一个程序可以包含多个出现在不同处注释,亦可无注释。

程序第三行是常量说明,程序第四行是变量说明。

程序从begin到end都是执行(语句)部分

(1)程序首部

  例1.1的第一行称为程序首部。

program是保留字,接着是程序名(由你依据“标示符”规则自行定义),最后以分号表示程序首部结束,下面是程序主体的开始。

程序首部在一个TurboPascal(仅在TurboPascal中有效)程序中并非必须出现,它是可选的。

写上它仅起了文档作用。

因此,在时间有限的情况下,如果用TurboPascal编程完全可以省略程序首部。

(2)程序体

a.说明部分

说明部分用于定义和说明程序中用到的数据,由单元说明、标号说明、常量说明、类型说明、变量说明、函数或过程说明组成,并且这些数据的说明次序必须按照以上次序。

但是一个简单的TurboPascal程序也可以不包含说明部分,也就是说说明部分是可选的。

b.执行部分

执行部分描述了程序要执行的操作。

它必须以一个TurboPascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。

begin和end必须成对出现,这是一个TurboPascal程序所必须有的。

紧跟end之后的句号表示执行部分的结束,也表示整个程序的结束。

此后的任何语句都无效。

TurboPascal规定紧随end之前出现的分号允许省略。

(3)一个完全的Pascal程序结构

program程序名;

 uses

   已知单元说明;

 label

   标号说明;

 const

  常量说明;

 type

   类型说明;

 var

  变量说明;

 function

  函数说明;

 procedure

  过程说明;

begin

 语句;

 语句;

 ……

 语句

end.

2.2Pascal字符与符号

1.保留字(关键字)

  所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误。

标准Pascal语言中的保留字一共有35个,TurboPascal语言一共有51个。

下面是Pascal语言的保留字(斜体是TurboPascal特有的保留字):

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

2.标识符

  

(1)表识符的定义:

标识符就是以字母开头的字母数字序列,有效长度为63个字符,并且大小写等效。

可以用来标示常量、变量、程序、函数等。

例如例1.1中的Area(程序名),pi(符号常量),s、r(变量名)都是标识符。

(2)表识符的分类:

    a.标准标识符:

指Pascal语言预先定义的表识符,具有特殊含义。

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

标准常量FalseMaxintTrue    

标准类型BooleanCharRealInteger   

标准函数AbsArctanChrCosEofEolnExp

 LnOddOrdPredRoundSinSqr

 SqrtSuccTrunc    

标准过程DisposeGetNewPackPagePutRead

 ReadlnResetRewriteUnpackWriteWriteln 

标准文件InputOutput     

b.用户字定义表识符:

由你来根据需要定义。

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

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

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

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

=,,,;,.,:

,..,',^

2.3 Pascal数据类型

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

  TurboPascal提供了丰富的数据类型,这些数据类型可以分为三大类:

简单类型、构造类型和指针类型,其中简单类型可以分为标准类型(整型、实型、字符型和布尔型)和自定义类型(枚举型和子界型),构造类型可以分为数组类型、集合类型、记录类型和文件类型。

这些数据类型中除了指针类型是动态数据类型外,其他的都是静态数据类型。

在这些数据类型中简单类型都是有序类型,除了实型以外的简单类型都是顺序类型,所谓顺序类型就是他们的值不仅是有序的而且是有顺序号。

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

1.整型

  一个整型数据用来存放整数。

TurboPascal支持五种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)和word(字类型),TurboPascal分别用相同的名字作为他们的表识符。

每一种类型规定了相应的整数取值范围以及所占用的内存字节数。

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

shortint-128..1281带符号8位

inteter-32768..327672带符号16位

longint-2147483648..21474836474带符号32位

byte0..2551带符号8位

word0..655352带符号16位

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

2.实型

  一个实型数据用类存放实数。

TurboPascal支持五种预定义实型,它们是real(基本实型)、single(但精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),TurboPascal分别用相同的名字作为他们的表识符。

每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。

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

real2.9e-39..1.7e38611..12

single1.5e-45..3.4e3847..8

double5.0e-324..1.7e308815..16

extended3.4e-4932..1.1e49321019..20

comp-2**63+1..2**63-1819..20

  TurboPascal支持两种用于执行实型运算的代码生成模式:

软件仿真模式和80x87浮点模式。

除了real可以在软件仿真模式下直接运行以外,其他类型必须在80x87浮点模式下运行。

3.布尔型

  一个布尔型数据用来存放逻辑值(布尔值)。

布尔型的值只有两个:

false和true,并且false的序号是0,true的序号是1。

false和true都是预定义常数表识符,分别表示逻辑假和逻辑真。

并且true

boolean是布尔型的表识符。

4.字符型

  字符型用char作为表识符。

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

2.4常量与变量

1.常量

(1)常量:

在某个程序的整个过程中其值不变的量。

(2)常量定义:

常量定义出现在说明部分。

它的语法格式是:

const

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

...

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

常量表识符的类型由定义它的常量的类型决定。

例如:

consta=12隐含说明a是整型;constr=3.21隐含说明r是实型......

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

(4)TurboPascal类型常量

类型常量,又称变量常数,它是TurboPascal的一个扩充特性。

类型常量的定义与标准Pascal规定的常数定义和变量说明有所区别。

类型常量定义的语法格式:

const

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

简单类型=常数;

例如:

const

counter:

integer=0;

flag:

boolean=true;

index:

0..100=0;

2.变量

(1)变量:

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

(2)变量说明:

变脸说明出现在说明部分。

它的语法格式是:

var

<变量标识符列表>:

<类型>;

...

<变量标识符列表>:

<类型>;

其中,保留字var表示开始一个变量说明部分。

变量标识符列表是一个用逗号隔开的标识符序列,冒号后面的类型是类型标识符。

每个变量说明均以分号结束。

例如:

var

a,b,c:

integer;

m,n:

real;

2.5 标准函数

1.算术函数

函数标识符

自变量类型

意义

结果类型

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

2.标量函数

函数标识符

自变量类型

意义

结果类型

odd

整型

判断奇数

布尔型

pred

离散类型

求前趋

同自变量

succ

离散类型

求后继

同自变量

例:

odd(1000)=false

odd(3)true

pred(2000)=1999

succ(2000)=2001

pred('x')='w'

succ('x')='y'

3.转换函数

函数标识符

自变量类型

意义

结果类型

chr

byte型

自量对应的字符

字符型

ord

离散类型

自量对应的序号

longint

round

实型

四舍五入

longint

trunc

实型

截断取整

longint

4.杂类函数

函数标识符

自变量类型

意义

结果类型

random

无自变量

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

real

random

word

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

wird

randomize

无自变量

用一随机值初始化内部随机数产生器

longint

upcase

字符型

使小写英文字母变为大写

字符型

2.6 运算符和表达式

1.运算符和优先级

(1)运算符

a.算术运算符运算符

运算

运算对象

结果类型

+

整型、实型

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

-

整型、实型

*

整型、实型

/

整型、实型

div

整除

整型

整型

mod

取余

整型

整型

b.逻辑运算符

运算符

运算

运算对象

结果类型

not

逻辑非

布尔型

布尔型

and

逻辑与

布尔型

布尔型

or

逻辑或

布尔型

布尔型

xor

逻辑异或

布尔型

布尔型

c.关系运算符

运算符

运算

运算对象

结果类型

=

等于

简单类型

布尔型

<>

不等于

简单类型

布尔型

<

小于

简单类型

布尔型

>

大于

简单类型

布尔型

<=

小于等于

简单类型

布尔型

>=

大于等于

简单类型

布尔型

(2)优先级

运算符

优先级

not

1(高)

*,/,div,mod,and

2

xor,+,-,or

3

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

4(低)

2.表达式

(1)算术表达式:

算术表达式是由算术运算符连接常量、变量、函数的式子。

算术表达式中各个运算符的次序为:

()-->函数-->*,/,div,mod-->+,1

(2)布尔表达式:

TurboPascal提供给布尔表达式以下基本操作:

逻辑运算和关系运算。

Pascal基本教程第三章

  2001-6-6  大榕树

 

顺序结构程序设计

3.1 赋值语句

赋值语句是最简单的语句,其一般形式为:

<变量>:

=<表达式>

赋值语句的作用是计算表达式的值,并赋给变量。

对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以一个随机值参与运算。

另外,赋值号两边的类型必须相同,但表达式值为整数时,它可自动化为实型后赋给该实型变量,即符合赋值相容。

例:

关于赋值的例子

 programexample;

  vara,b:

integer;

 begin

  a:

=3;b:

=2;

  writeln(a);

  writeln(b);

  a:

=a+b;

  writeln(a);

  writeln(b);

  b:

=a-b;

  writeln(a);

  writeln(b);

  a:

=a-b;

  writeln(a);

  writeln(b);

  readln

 end.

 

3.2 输入语句

  通过计算机的外设把数据送到计算机内存的过程称为输入。

TurboPascal语言的输入语句有如下两种形式:

  read(<变量名表>);

  readln(<变量名表>);

<输入项表>是一个或几个由逗号隔开的变量标识符,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型,布尔型不可以直接读入。

  例如a,b,c为整型变量,read(a,b,c)之后

    键盘输入:

203040表示回车)

    结果:

 a=20,b=30,c=40

  readln语句和read语句不同之处在于输入数据到各变量之后,readln自动换行,从下一行开始再输入数据。

一个read语句执行完后,数据行中多余的未读数据可以被下一个输入语句读入;而一个readln于执行完后,数据行中多余未读数据就没有用了。

readln语句中可以不包含变量名表。

即有以下等价情况:

readln(a,b);readln等价于readln(a,b)

  输入语句输入的数据类型必须和变量一一对应。

如果输入的是一串整数或实数,数据间用空格或回车分隔;若输入的是一串字符,则不用分隔。

例:

输入语句示例

  programshuru;

    var

      x:

real;

      c:

char;

  begin

    write('pleaseinputthenumber:

($XXX.XX)');

    readln(c,x);

    writeln('Thepriceis',c,x)

  end.

3.3 输出语句

  输出是将内存中的数据送到外设的过程。

TurboPascal的输出语句有两种形式:

    write(<输出项表>)

    writeln(<输出项表>)

  其中<输出项表>是一串用逗号分隔的常量、变量、函数名、表达式或字符串。

如果是变量、函数名、表达式,则将其计算结果输出;如果是常量或字符串,则直接输出其值。

  writeln和writeln的区别在于:

write语句是输出项输出后,不换行,光标停留在最后一项后,writeln语句按项输出后,自动换行,光标则停留在下一行的开始位置。

  writeln语句允许不含有输出项,即仅writeln;表示换行。

  TurboPascal语言把输出项的数据显示占用的宽度称为域宽,你可以根据输出格式的要求在输出语句中自动定义每个输出项的宽度。

定义宽度时分为单域宽和双域宽。

(1)单域宽输出格式:

    writeln(I:

n)

  在n个字符宽的输出域上按右对齐方式输出I的值,若n大于I的实际位数,则在I值前面补(n-I的实际位数)个空格。

若I的实际位数大于n,则自动突破限制。

n必须是整数。

(2)双域宽输出格式:

    writeln(a:

m:

n)

  双域宽主要用于实型数据的输出。

n的用法同上。

在n个字符宽的输出域上按右队齐方式用小数点形式输出a的数值,m是小数点后的位数。

原来的数据按该该格式指定的小数位数四舍五入。

若m=0,则不输出小数部分和小数点,原数据四舍五入取整。

n,m必须是整数。

例:

输出语句的例子

 programshuchu;

  const

   s='pascal';

  var

   i:

integ

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2