大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>Pascal入门>>基本程序结构和几个概念         本站全文搜索: 友情提示:

基本程序结构和几个概念
http://www.mydrs.org  7/9/2001  大榕树


例:
program pname;
const n=4;
type ar=array [1..4] of integer;
var i:integer; a:ar;
begin
for i:=1 to n do
read(a[i]);
readln;
for i:=n downto 1 do
write(a[i]:4);
writeln;
end.
以上是一个PASCAL程序。从键盘读入4个数据,逆序输出。

一般来说,一个PASCAL程序包括以下几个部分:
程序头:program pname; 其中,program是保留字,表示程序从这个地方开始,pname是标识符,是程序的名字,可由程序员自定。保留字是PASCAL选定的,具有固定意义和用法的专用单词或缩写,这些单词不允许作其它使用。如上,“program”就有“程序从这里开始”这样一种特别的意义,而“const”就有“常量说明从这里开始”的意义。我们不能再用“program”、“const”来作为其它变量、常量等的名字。标识符是以字母开头的字母数字串,其长度最大为8个字符。用来表示常量、变量、类型、文件、过程、函数和程序的名字。如“pname”、“i”、“j”、“a1”就是合法的标识符;但“1a”、“#a”是非法的标识符。有一点要注意的是,在PASCAL中,字母除了作为字符值或字符串值之外,其大小写是无关的。如标识符“A1”和“a1”在PASCLA看来是同一标识符。在PASCAL中除了保留字和自定义的标识符外,还有一类有特殊含义的标识符,这类标识符称为标准标识符。它们是用来标记程序中经常引用的处理对象,如常量、函数。(PASCAL定义的保留字和标准标识符附后)
标识符在命名的时候要注意:1、名字要易记易读,有意义。如8皇后问题程序名可以是“queen”也可以是“huanghou”等;2、不能用保留字、标准标识符作为自定义的标识符。

说明部分:const n=4;
type ar=array [1..4] of integer;
var i:integer; a:ar;
其中,const部分是常量说明,说明一些在以下部分用到的,在整个程序执行过程不改变值的量。这些量PASCAL称为常量。在程序中用到这个值的地方均用常量名来代替。如上题中定义“n=4”指本程序处理4个数值,在下面的程序体中就用“n”来代替具体的值(如for i:=1 to n)。如果要改变处理数据个数,则只在常量说明部分修改“n=4”这一句就行了,而不用在程序中每一个用到的地方都加以修改。这样不但在编写程序的时候很方便,也增加了程序的可读性,修改时更方便。
常量说明在保留字“const”下开始。可以有多个语句。常量说明语句的格式是:“常量名=值;”。如“n=4;”。n是常量名,4是该常量的值,“;”是语句分隔符。
type部分是类型说明,说明一些在以下部分用到的数据类型。如数组、记录、指针等。
类型说明在保留字“type”下开始。可以有多个语句。类型说明语句的格式是:“类型名=类型说明;”。如“ar=array [1..4] of integer;”。ar是类型名,array [1..4] of integer是类型说明,“;”是语句分隔符。
var部分是变量说明。变量是指在程序执行过程中可以通过赋值语句或读语句来改变值的量。所有在程序中使用的变量都应该先在变量说明部分说明。PASCAL中引用的每个变量都有“名字”和“类型”属性。变量说明“说明”的主要工作是告诉PASCA下面程序中要用到这个名字的量,同时这个量的类型是什么。
变量说明在保留字“var”下开始。可以有多个语句。变量说明语句的格式是:“变量名:变量类型;”。其中,如果有多个变量同一类型,则变量名与变量名之间用逗号分隔,变量名与变量类型之间用冒号分隔。如“i:integer;”(i是变量名,integer是类型名)、“i、j:integer;”(i、j是变量名,integer是类型名)……
变量说明要注意:1、有效变量名称不能大于8个字符;2、变量名称必须以字母开头;3、在同一个有效范围内变量名称必须唯一。

各个说明部分均以该部分的保留字开始。如“const”开始常量说明;“type”开始类型说明;“var”开始变量说明。一个程序包含多少种类型的说明,看需要而定,不是每一个程序都必须同时包含这三种说明。如果程序不须要用到常量,则常量说明部分可以省略;如果不须要用到类型说明,则类型说明可省……
PASCAL还有一条规则:先说明后引用。即所有在程序体中用到的“名字”必须都在说明部分说明过才能引用,否则就会出错,通不过编译,也执行不了。如上,类型“ar”先在类型说明中定义,然后在变量说明中引用;变量i在变量说明中定义,在程序中引用。

程序体:begin
for i:=1 to n do
read(a[i]);
readln;
for i:=n downto 1 do
write(a[i]:4);
writeln;
end.
程序体是以begin end.括起来的语句系列。“end”后面是一个小圆点,标识着程序结束,整个程序只有一个是一个程序的主要部分。编程要完成的工作大部分都在这里完成。程序体中每一语句均以“;”作为结束符。在书写程序时,以“分层缩进”的风格来写,以便提高程序的可读性。所谓的“分层缩进”是指在逻辑上同一级的语句其起始点对齐,下一级的语句向右缩进。


运算符 表达式
PASCAL中的运算符有算术运算符和关系运算符。和我们在数学课中学的基本一样但在写法上有些不同,在写程序时要特别注意写法的不同:
+ 加号 - 减号 * 乘号( 数学中写为 × ) / 除号( 数学中写为 ÷)
MOD 取余 如 8 MOD 2=0 7 MOD 2=1 2 MOD 3=2
DIV 取整 如 8 DIV 2=4 7 DIV 2=3 2 DIV 3=0
在PASCAL只有上面6种数学运算。其它的就只能利用这6种运算的组合通过语句来实现。如a^2(a的平方)可以化成a*a。
> 大于 < 小于 <> 不等于(数学中写为 ≠)
<= 小于等于(数学中写为≤) >= 大于等于(数学中写为 ≥)
变量、常量通过运算符连接起来的式子我们称为表达式。一个单独的变量或常量也是表达式。如a、a+3、a*3+b都是表达式。写表达式时要注意PASCAL表达式跟我们已经熟悉的数学表达式在格式上的区别:
数学表达式 PASCAL表达式 注意
2a 2*a *号不能省略
a÷b a/b 除号的写法
a≠b a<>b 不等号的写法
a≤b a<=b 小于等于号的写法


标准数据类型:整型 实型 字符型 布尔型
数据类型可以理解为一个取值范围和定义在这取值范围上的运算规则。想一想我们对于数的理解:小学学自然数,范围是从0开始,那时候不知道有小数,也不知道有负数,允许的运算是+、-、×、÷,而且对于减法规定被减数要大于减数。到了中学,数的范围扩大了,整数包括正数和负数,减法运算也不再有额外的规定的了。同理,在PASCAL中“数据类型”也是一个取值范围和在它上面定义的运算规则。PASCAL中定义好的标准数据类型一共有4个:整型、实型、字符型、布尔型,分别用保留字integer、real、char、boolean来标记它们。其取值范围和运算如下:
整型(integer):范围 -32768——32767;运算 + - * / mod div
实型(real):范围 运算 + - * /
字符型(char):范围 可显示的ASCII字符
布尔型(boolean):范围 true false 运算 and or not

在PASCAL中可使用的基本符号有:
(1)大写字母 A—Z ;小写字母a—z ;数字0—9
(2)其它字符 + — * / = > < >= <= <> :=
( ) [ ] . , :‘ $ ^ (* *) { }
其中,有些符号是以双字符作为一个整体,拆开后就失去原有的意义。如“<>”是一个表示“不等于”的关系运算符,如拆开后就变成了两个关系运算符,分别表示“小于”、“大于”。

PASCAL使用的保留字有:
AND ARRAY BEGIN CASE CONST
DIV DO DOWNTO ELSE END
FILE FOR FUNCTION GOTO IF
IN LABEL MOD NIL NOT
OF PACKED PROCEDURE PROGRAM RECORD
REPEAT SET THEN TO TYPE
UNTIL VAR WHILE WITH FORWARD

常用的标准标识符有:
标准常量:FALSE TRUE MAXINT MAXLONGINT
标准类型:INTEGER BOOLEAN REAL CHAR TEXT
标准文件:INPUT OUTPUT
标准函数:ABS ACTAN CHR COS EOF ELON EXP LN ODD
ORD PRED ROUND SIN SQR SQRT SUCC TRUNC
标准过程:ASSIGN GET NEW DISPOSE PACK PUT READ
READLN RESET REWRITE UNPACK WRITE WRITELN


来 源:NOI信息学竞赛(http://noi.stinfo.net)
共有2801位读者阅读过此文

  • 上篇文章程序优化技巧
  • 下篇文章预备知识练习题

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    基本程序结构和几个概念
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号