ascal语言1-3(Tp与Fp的区别、程序设计初步).ppt
《ascal语言1-3(Tp与Fp的区别、程序设计初步).ppt》由会员分享,可在线阅读,更多相关《ascal语言1-3(Tp与Fp的区别、程序设计初步).ppt(72页珍藏版)》请在三一办公上搜索。
1、Pascal语言程序设计,寿光现代中学王桐林,【第一、二、三章】,本章要点,Free Pascal与Turbo Pascal的区别Pascal的程序结构基本符号、保留字、标识符数据类型、常量、变量及说明方法函数与表达式三种基本的程序结构 顺序结构 分支结构 循环结构,第一章 Free Pascal概述,一、Pascal 简介 PASCAL语言是瑞士苏黎世联邦工业大学的N沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表,它的命名是为了纪念法国数学家Pascal。在Pascal问世以来的三十余年里,先后产生了适合于不同机型的各种版本,其中,影响最大的莫过于Turbo
2、 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编译器,同时也提供了类似
3、Turbo Pascal的集成开发环境Freepascal IDE。软件下载地址:,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、F
4、ree Pascal是一个跨平台的编译器,而Turbo Pascal只在dos/windows上使用。4、FP函数和过程在使用时,参数的类型必须和定义时完全一致。原因是在Free Pascal中添加了函数重载功能。所以可以用相同的名字定义不同的函数,只要这些函数的参数不同,就是不同的函数 5、FP布尔表达式不一定要全部进行计算。只要最终结果已经能够确定,就不再计算其它还没有计算的部分了。比如布尔表达式exp1 AND exp2 AND exp3,如果已知exp1的结果是false,那么怎么表达式的结果肯定是false,exp2和exp3就不用进行计算了。6、在Free Pascal中,集合中的
5、元素都是4个字节长的。7、FP表达式执行的顺序不确定。如表达式a:=g(2)+f(3);不保证g(2)一定在f(3)之前执行。,补充,8、在FP中,如果用Rewrite打开文件,那么文件就只能被写入了。如果需要读取这个文件,要对文件执行Reset。9、FP在程序结束之前一定要关闭输出文件,否则输出文件可能不能被正确的写入。10、Free Pascal在windows 95及其以上的windows版本上支持长文件名。对于文件名,由于windows系统对大小写不敏感,因此在程序中,文件名的大小写是无关的。但是对于其它大小写敏感的系统,比如linux,程序中用到的文件名必须和系统中的文件名完全一致。
6、但是由于信息学竞赛的评测系统一般是linux,因此要求程序中的文件名和系统中的文件名一样。11、FreePascal和TP语法兼容,但是最不同的就是调试过程。FP中对于数据类型的范围有一定改动,而且语法要求更苛刻。FP的帮助系统比较不好,尤其是和TP比,基本上没法用。FP调试系统分编译调试和执行时调试两种。编译调试在Compiler框内显示,基本上会给出错误的行和列,但是其定位效率却没有TP好,有的时候仅仅是少了一个分号,可能会因此给你五六个错误提示,而其原因就是那个分号。执行时错误就更惨。TP会给你诸如“Stack overflow error等大家能看懂的,但是FP给的是“Exitcode
7、。而且这个Exitcode现在还找不到一个完整的解释资料。我现在仅仅知道Exitcode2是找不到输入文件,其他的还看不懂呢。有一个好办法就是把程序弄回TP找错,再到FP中执行。,第二章 Pascal程序设计语言基础,一、概述1.Pascal是结构化的语言 Pascal语言全面清晰地体现结构化思想。不仅提供了直接实现“顺序结构”、“选择结构”和“循环结构”的语句,而且还可以定义子程序(“函数”和“过程”)。在编程时可以完全不使用转向语句“goto”,使程序的执行顺序与行文顺序保持一致,便于理解;2.Pascal的数据类型丰富 Pascal语言不仅提供了整型、实型、字符型、布尔型等标准数据类型,
8、而且还允许用户按照语法规则自定义枚举型、子界型、数组型、集合型、记录型、指针类型和文件类型,便于数值计算和非数值信息处理;3.Pascal语言可以实现模块的独立化要求 Pascal语言允许在函数和过程内部定义局部变量,允许在主程序和子程序之间传递参数,使得每一个子程序模块都能反映一个相对独立的性质,模块之间的联系简单清晰,便于修改;由于Pascal语言精确地表达了程序设计的基本概念,结构性好,表达能力强,因此成为学校程序设计课程的教学语言,计算机会考和奥林匹克信息学竞赛的规定语言。,1、程序结构,Pascal语言具有严谨的程序结构【例】已知圆的半径,求它的周长和面积。,从这个简单的程序可以看到
9、:一个PASCAL程序分为两个部分:程序首部和程序体。程序首部 程序首部是程序的开头部分,有保留字program后接程序名及程序参数表组成,由分号结束。程序名是用户自己定义的标识符,参数表一般是文件变量名,用于该程序与外界的数据交流。最常用的参数为input和output。在turbo pascal语言中,首部中的参数表可以省略,首部也可省略。程序体 程序体是程序的主体部分,由说明部分和执行部分两部分组成。说明部分:用来描述程序中用到的变量、常量、类型、过程与函数等。本程序中第二行是变量说明,用来定义变量的名称、类型。PASCAL规定,凡程序中用到所有变量、符号常量、数组、标号、过程与函数、记
10、录、文件等数据都必须在说明部分进行定义(或称说明)。也就是说,不允许未说明先使用。执行部分:以begin开始,以end结束,其间有若干个语句,语句之间以分号隔开。一条语句执行一定的功能,所有语句完成程序设计的任务。允许一行写多个语句,也允许一个语句写几行,最后一行的end后加一.号表示结束。,2、完整的pascal程序框架:,program 程序名(程序参数表);label 标号说明;const 常量说明;type 类型说明;var 变量说明;function 函数说明;procedure 过程说明;begin 程序语句1;程序语句n;end.,程序首部,程序体,说明部分,执行部分,二、基本符
11、号、保留字、标识符:,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
12、,goto,if,repeat,then,to,until,while,with,forward 运算符号:and,div,in,mod,not,or 分隔符号:begin,end 空指针常量:Nil7.PROTECTED,PUBLIC,PUBLISHED,TRY,FINALLY,EXCEPT,RAISE(fp新增保留字),3.标识符:标识符是以字母开头的字母数字序列(大小写等效,可跟下划线_),用来标识常量、变量、程序、函数等。Pascal中允许的标识符的有效长度为63。标识符分为两大类:标准标识符:标准常量:false,true,maxint(32767)标准类型:integer,real
13、,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表示。,三
14、、数据类型、常量、变量及说明方法,数据类型确定了该类型数据项的表示、取值范围以及所能参与的运算。在pascal语言中,无论常量还是变量都必须属于一个确定的数据类型。Pascal 提供了丰富的数据类型,可以分为三大类:简单类型:分为标准类型(整型、实型、字符型和布尔型)和自定义类型(枚举型和子界型)构造类型:分为数组类型、集合类型、记录类型和文件类型 指针类型 这些数据类型中除了指针类型是动态数据类型外,其他的都是静态数据类型。另外,我们把整型、字符型、布尔型、枚举型和子界型称为顺序类型。,1标准数据类型:整数类型:,整数类型包括正整数、负整数和零。整数只能由正负号和数字组成,不允许出现其他字符
15、,“+”号可以省略。,名称 类型数值范围 占字节数 字节型 Byte 0.255 1 字型 Word 0.65535 2 短整型 Shortint-128.127 1 整型 Integer-32768.32767;2 长整型 Longint-2147483648.2147483647(9位)4 长字型 Longword 0.4294967295 4 整数INT64 Int64-9223372036854775808.9223372036854775807 8Q字型 QWord 8(整数部分19位),Turbo Pascal规定了两个预定义整型常量表识符maxint和maxlonint,他们各表
16、示确定的常数值,maxint为32767,longint为2147483647,他们的类型分别是integer 和longint。整数的运算符有+、-、*、div、mod,后三种运算符的优先级高于前两种,整数运算的结果也为整数。当两个整数用/相除时,结果为实型,只能赋给实型变量。,实数类型包括正实数、负实数和实数零。它的标识符是real。有两种表示实数的方法:十进制表示法;科学记数法:3.4E3表示3.4*103实数的绝对值在1E-38到1E38之间。,实数类型:,实数的运算有+、-、*、/、结果也为实型。整数参与实数运算,系统自动将整数转化为实数再运算,结果为实数。,2)实数 名称 Type
17、 Range Significant digits Size 实型 Real platform dependant?4 or 8单精度型 Single 1.5E-45.3.4E38 7-8 4双精度型 Double 5.0E-324.1.7E308 15-16 8扩展型 Extended 1.9E-4951.1.1E4932 19-20 10装配十进制型Comp-2E64+1.2E63-1 19-20 8,字符类型:目前微机上广泛使用的ASCII码字符集满足PASCAL对字符集的要求。字符型用char作为标识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引
18、号中有一个字符,否则就是字符串string。布尔类型:一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false和true,并且false的序号是0,true的序号是1。false 和true都是预定义常数表识符,分别表示逻辑假和逻辑真。并且truefalse。boolean是布尔型的标识符。布尔类型的运算符有not(非)、and(与)、or(或)。参与布尔型运算的是布尔类型的数据,其结果也是布尔类型的数据。,2常量,常量:在程序执行过程中其值不能被改变的量。pascal除了maxint,true,false三个标准常量外,用户还可以使用常量定义语句定义新的常量。它的语法格式是:c
19、onst=;.=;常量表识符的类型由定义它的常量的类型决定。例如:const a=12 隐含说明a是整型;const r=3.21 隐含说明r是实型。常量的定义具有单一性和不可改变性。,3变量,变量:在程序执行过程中可以改变值的数据。它的语法格式是:var:;.:;其中,保留字var表示开始一个变量说明部分。变量标识符列表是一个用逗号隔开的标识符序列,冒号后面的类型是类型标识符。每个变量说明均以分号结束。例如:vara,b,c:integer;m,n:real;,1标准函数:算术函数:函数标识符 自变量类型 意义 结果类型Abs 整型、实型 绝对值 同自变量Arctan 整型、实型 反正切 实
20、型Cos 整型、实型 余弦 实型Exp 整型、实型 指数 实型Int 整型、实型 整数部分 实型Ln 整型、实型 自然对数 实型Sin 整型、实型 正弦 实型Sqr 整型、实型 平方 同自变量Sqrt 整型、实型 平方根 实型Power(a,b)表示a的b次方,也可以写成a*b,兼容所有数结构,四、函数与表达式,2运算符和表达式,运算符和优先级 算术运算符:,表达式,表达式:是指由常量、变量、函数、括号、集合及运算符联结起来的式子。表达式中各运算符的优先级:,表达式有以下几种,a.算术表达式:例如:写出一个整数能被3整除所得余数的表达式b.关系表达式:例如:写出一个能表示正数的表达式c.逻辑表
21、达式:例如:写出一个数既能被3整除又能被5整除的表达式,习 题,1.ax2+bx+c的PASCAL的表达式是_2.一元二次方程的根的PASCAL的表达式是_3.表达式2/4*5的值是_,表达式10*4 mod 5*22/4*5的值是_4.i是j的整数倍的布尔表达式是_,m是偶数的布尔表达式是_,y在-2至-1之间的布尔表达式是_,y是闰年的布尔表达式是_。5.有一编码规则如下:原码:A B C X Y Z 密码:Z Y X C B A 已知原码变量x,则密码的表达式是 _。,第三章 程序设计初步,前言:什么是程序设计?程序设计的步骤是什么?结构化程序设计的特点是什么?,什么是顺序结构:【例1】
22、:键盘输入两个变量的值,交换值后输出。方法:间接交换法算法分析:(“自顶向下,逐步求精”的编程思想)s1:通过键盘给a,b两个变量赋值;s2:交换a,b的值;s2-1:引入中间变量c;s2-2:在c中存放的a值;s2-3:在a中存放的b值;s2-4:在b中存放的c值;s3:输出变量a,b的值。程序代码:program ex1(input,output);var a,b,c:integer;beginwrite(please input a,b:);read(a,b);writeln(a=,a,b=,b);c:=a;a:=b;b:=c;writeln(a=,a,b=,b)end.,第一节 顺序结
23、构程序设计,Pascal 语言的语句分为简单语句(也称基本语句)和复合语句(也称构造语句),二:几个简单语句:1赋值语句:格式:变量标识符:=表达式;功能:计算和赋值双重功能:【例2】写出程序执行后,变量的值。程序代码:program ex2(input,output);vara,b:integer;c:real;ch:char;bool:boolean;begin a:=3;b:=a;b:=a+1;a:=a+1;c:=a+b;ch:=h;bool:=true;bool:=not bool;end.说明:1)“:=”赋值号不同于“=”号,具有方向性,具有计算功能。2)赋值号两边的类型应该相同,
24、但有一个例外。3)一个赋值语句只能给一个变量赋值,可以多次给一个变量赋值。4)被赋值的变量可以作为因子参与运算。,2输入语句(read,readln):格式:read(变量名表);readln read(a1,a2,a3);等价于 read(a1);read(a2);read(a3);readln(a1,a2,a3);等价于 read(a1);read(a2);read(a3);readln;功能:通过键盘,给指定的变量赋值。【例3】:写出程序运行后,变量的值。程序代码:program ex3(input,output);var a,b,c:integer;i,j,k:real;ch1,ch2
25、,ch3:char;begin read(a,b,c);readln(i,j,k);read(ch1,ch2,ch3);writeln(a=,a,b=,b,c=,c);writeln(i=,i,j=,j,k=,k);writeln(ch1=,ch1,ch2=,ch2,ch3=,ch3);end.程序运行后,输入数据:1 2 3 4 56.1 7 8 9 0dos,说明:1)变量名表中的变量可以是一个变量,也可以是多个变量,多个变量之间用逗号隔开。2)程序运行后,执行到该语句时,系统处于等待状态,等待用户从键盘输入数据。输入数值型数据(整型和实型),数据间用空格分隔;输入字符型数据,数据间不须分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ascal 语言 Tp Fp 区别 程序设计 初步
链接地址:https://www.31ppt.com/p-6501753.html