Pascal语言1-3(Tp与Fp的区别、程序设计初步)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件下载地址:http://162.105.81.201/noip/env.html
补充
Free Pascal与Turbo Pascal的区别
1、从主办方的角度上说,TP有版权,FP没有版权限制,TP已经12年没有更新,而FP 一直在更新,IOI、NOI使用的都是FP。 2、Free Pascal理论上可以使用4GB的内存,因此实际上几乎可以使用系统中的所有 剩余内存(除非赛题中有内存限制)。这是Free Pascal由于32位的编译器。但是 对于Turbo Pascal来说,由于是16位的编译器,因此不能定义大小超过64KB的数 据类型和变量,并且在DOS实模式下可以使用的内存总数只有640KB。 3、Free Pascal是一个跨平台的编译器,而Turbo Pascal只在dos/windows上使用。 4、FP函数和过程在使用时,参数的类型必须和定义时完全一致 。原因是在Free Pascal中添加了函数重载功能。所以可以用相同的名字定义不同的函数,只要这 些函数的参数不同,就是不同的函数 5、FP布尔表达式不一定要全部进行计算。只要最终结果已经能够确定,就不再计算 其它还没有计算的部分了。比如布尔表达式exp1 AND exp2 AND exp3,如果已知 exp1的结果是false,那么怎么表达式的结果肯定是false,exp2和exp3就不用进行 计算了。 6、在Free Pascal中,集合中的元素都是4个字节长的。 7、FP表达式执行的顺序不确定。如表达式a:=g(2)+f(3); 不保证g(2)一定在f(3)之前 执行。
3. 标识符:
标识符是以字母开头的字母数字序列(大小写等效,可跟下划线_), 用来标识常量、变量、程序、函数等。Pascal中允许的标识符的有 效长度为63。 标识符分为两大类: ① 标准标识符: 标准常量:false,true,maxint(32767) 标准类型:integer,real,char,boolean,text 标准文件:input,output 标准函数:abs,arctan,chr,cos,eof,eoln,exp,ln,odd, ord,pred,round,sin,sqr,sqrt,succ,trunc 标准过程:get,new,pack,page,put,read,readln,reset, rewrite,unpack,write,writeln ② 自定义标识符 由用户自己在程序首部或说明部分进行定义,但要注意以下几 点:不能与保留字同名;避免与标准标识符同名;最好有一定的 含义,增加程序的可读性。 例如:在程序中如用到数学中的π,则在定义该常量时可用PI表示。
一、 Pascal 简介 PASCAL语言是瑞士苏黎世联邦工业大学的N.沃思(Niklaus Wirth)教授于 1968年设计完成的,1971年正式发表,它的命名是为了纪念法国数学家 Pascal。在Pascal问世以来的三十余年里,先后产生了适合于不同机型的各种 版本,其中,影响最大的莫过于Turbo Pascal系列软件。 Turbo Pascal 是由美国Borland公司设计、研制的一种微机的Pascal语言应 用开发集成环境。该产品由1983年推出的1.0版本发展到1992年推出的7.0版 本,随着版本的不断更新,功能也更趋完善,Turbo Pascal是NOIP在2004年 以前使用的主要软件之一。 从NOIP2004开始,中国计算机协会要求联赛使用freepascal,停止使用 turbo pascal。 Freepascal分为Windows和linux两个版本,NOIP大多使用 Windows版,它提供了Windows环境下兼容Turbo Pascal的Pascal编译器,同 时也提供了类似Turbo Pascal的集成开发环境Freepascal IDE。
② 实数类型:
实数类型包括正实数、负实数和实数零。它的标识符是real。 有两种表示实数的方法:十进制表示法;科学记数法:3.4E3表示3.4*103 实数的绝对值在1E-38到1E38之间。
第二章 Pascal程序设计语言基础
一、概述
1.Pascal是结构化的语言 Pascal语言全面清晰地体现结构化思想。不仅提供了直接实现“顺序结 构”、“选择结构”和“循环结构”的语句,而且还可以定义子程序(“函 数”和“过程”)。在编程时可以完全不使用转向语句“goto”,使程序的执 行顺序与行文顺序保持一致,便于理解; 2.Pascal的数据类型丰富 Pascal语言不仅提供了整型、实型、字符型、布尔型等标准数据类型, 而且还允许用户按照语法规则自定义枚举型、子界型、数组型、集合型、记 录型、指针类型和文件类型,便于数值计算和非数值信息处理; 3.Pascal语言可以实现模块的独立化要求 Pascal语言允许在函数和过程内部定义局部变量,允许在主程序和子程 序之间传递参数,使得每一个子程序模块都能反映一个相对独立的性质,模 块之间的联系简单清晰,便于修改; 由于Pascal语言精确地表达了程序设计的基本概念,结构性好,表达能 力强,因此成为学校程序设计课程的教学语言,计算机会考和奥林匹克信息 学竞赛的规定语言。
程序首部
程 序 体
二、基本符号、保留字、标识符:
1.基本符号: 是ASCII字符集,主要有: ① 26个英文字母(不分大小写,字符串中的字母例外。 ② 十个数字符号。
③ 特殊符号
+
> { ^
-
* / = <= >= ( } := . , ..
<> ) ;
[
< :
]
’
2.保留字:
保留字是指pascal语言中一些有特殊含义的英文单词,它们已被pascal 语言自己使用,都有专门的用途。 Pascal 语言中保留字有36个,可分为以下六种类型: ① 程序、函数、过程的符号: program,function,procedure ② 说明部分的专用定义符号: array,const,file,label,packed,var,record,set,type,of ③ 语句专用符号: case,do,downto,else,for,goto,if,repeat,then,to,until, while,with,forward ④ 运算符号: and,div,in,mod,not,or ⑤ 分隔符号: begin,end ⑥ 空指针常量: Nil 7. PROTECTED, PUBLIC, PUBLISHED, TRY, FINALLY, EXCEPT, RAISE (fp新增保留字)
Turbo Pascal规定了两个预定义整型常量表识符 maxint和maxlonint,他们各表示确定的常数值, maxint为32767, longint为2147483647, 他们的类型分别是integer 和longint。 整数的运算符有+、-、*、div、mod,后三种运算符 的优先级高于前两种,整数运算的结果也为整数。当两个 整数用/相除时,结果为实型,只能赋给实型变量。
三、数据类型、常量、变量及说明方法
数据类型确定了该类型数据项的表示、取值范围以及 所能参与的运算。在pascal语言中,无论常量还是变量都 必须属于一个确定的数据类型。 Pascal 提供了丰富的数据类型,可以分为三大类: ①ห้องสมุดไป่ตู้简单类型:分为标准类型(整型、实型、字符型和布 尔型)和自定义类型(枚举型和子界型) ② 构造类型:分为数组类型、集合类型、记录类型和文 件类型 ③ 指针类型 这些数据类型中除了指针类型是动态数据类型外,其 他的都是静态数据类型。另外,我们把整型、字符型、 布尔型、枚举型和子界型称为顺序类型。
Pascal语言程序设计
【第一、二、三章】
寿光现代中学 王桐林
本章要点
Free Pascal与Turbo Pascal的区别 Pascal的程序结构 基本符号、保留字、标识符 数据类型、常量、变量及说明方法 函数与表达式 三种基本的程序结构 顺序结构 分支结构 循环结构
第一章 Free Pascal概述
1、程序结构
Pascal语言具有严谨的程序结构
【例1】已知圆的半径,求它的周长和面积。
从这个简单的程序可以看到: 一个PASCAL程序分为两个部分:程序首部和程序体。 ① 程序首部 程序首部是程序的开头部分,有保留字program后接程序名及程 序参数表组成,由分号结束。程序名是用户自己定义的标识符, 参数表一般是文件变量名,用于该程序与外界的数据交流。最常 用的参数为input和output。在turbo pascal语言中,首部中的参 数表可以省略,首部也可省略。 ② 程序体 程序体是程序的主体部分,由说明部分和执行部分两部分组成。 ⑴说明部分: 用来描述程序中用到的变量、常量、类型、过程与函数等。 本程序中第二行是"变量说明",用来定义变量的名称、类型。 PASCAL规定,凡程序中用到所有变量、符号常量、数组、标号、 过程与函数、记录、文件等数据都必须在说明部分进行定义(或 称"说明")。也就是说,不允许未说明先使用。 ⑵执行部分: 以"begin"开始,以"end"结束,其间有若干个语句,语句之 间以分号隔开。一条语句执行一定的功能,所有语句完成程序设 计的任务。允许一行写多个语句,也允许一个语句写几行,最后 一行的end后加一‘.’号表示结束。
2、完整的pascal程序框架:
program 程序名(程序参数表); label 标号说明; const 常量说明; type 说 类型说明; 明 var 部 变量说明; 分 function 函数说明; procedure 过程说明; begin 执 程序语句1; 行 ……; 部 程序语句n; end. 分
1.标准数据类型: ①
整数类型:
整数类型包括正整数、负整数和零。整数只能由正负号和数字组 成,不允许出现其他字符,“+”号可以省略。
名称 字节型 字型 短整型 整型 长整型 长字型 整数INT64 Q字型 类型 Byte Word Shortint Integer Longint Longword Int64 QWord 数值范围 占字节数 0 .. 255 1 0..65535 2 -128 .. 127 1 -32768..32767; 2 -2147483648 .. 2147483647 (9位) 4 0..4294967295 4 -9223372036854775808 .. 9223372036854775807 8 0 .. 18446744073709551615 8 (整数部分19位)
8、在FP中,如果用Rewrite打开文件,那么文件就只能被写入了。如果需要读取这个文 件,要对文件执行Reset。 9、FP在程序结束之前一定要关闭输出文件,否则输出文件可能不能被正确的写入。
10、Free Pascal在windows 95及其以上的windows版本上支持长文件名。对于 文件名,由于windows系统对大小写不敏感,因此在程序中,文件名的大小 写是无关的。但是对于其它大小写敏感的系统,比如linux,程序中用到的文 件名必须和系统中的文件名完全一致。但是由于信息学竞赛的评测系统一般 是linux,因此要求程序中的文件名和系统中的文件名一样。 11、FreePascal和TP语法兼容,但是最不同的就是调试过程。FP中对于数据类 型的范围有一定改动,而且语法要求更苛刻。FP的帮助系统比较不好,尤其 是和TP比,基本上没法用。FP调试系统分编译调试和执行时调试两种。编 译调试在‘Compiler’框内显示,基本上会给出错误的行和列,但是其定位 效率却没有TP好,有的时候仅仅是少了一个分号,可能会因此给你五六个错 误 提 示 , 而 其 原 因 就 是 那 个 分 号 。 执 行 时 错 误 就 更 惨 。 TP 会 给 你 诸 如 “Stack overflow error"等大家能看懂的,但是FP给的是“Exitcode"。而且 这个Exitcode现在还找不到一个完整的解释资料。我现在仅仅知道Exitcode =2是找不到输入文件,其他的还看不懂呢。有一个好办法就是把程序弄回 TP找错,再到FP中执行。