pascal教程自学.ppt
- 文档编号:13156400
- 上传时间:2023-06-11
- 格式:PPT
- 页数:314
- 大小:1.90MB
pascal教程自学.ppt
《pascal教程自学.ppt》由会员分享,可在线阅读,更多相关《pascal教程自学.ppt(314页珍藏版)》请在冰点文库上搜索。
Pascal教程,目录,第一章算法、程序设计与编译器基础第二章Pascal基础第三章程序设计初步第四章枚举、子界与数组第五章过程与函数第六章集合、记录与文件第七章指针等动态类型第八章面向对象与单元设计第九章特效,第一章,算法、程序设计与编译器基础,目录,第一讲算法基础知识算法描述方法第二讲程序语言第三讲Pascal编译器基础,第一讲,算法基础知识算法描述方法,用计算机解决实际问题的四个步骤,分析问题,把实际问题抽象为一个一般性的数学问题根据分析,设计出求其解的方法和步骤用某种形式(如图形、自然语言、类计算机语言)表达以设计好的算法在计算机上编辑、调试和测试编制好的程序,直到正确满足问题的需求,算法的描述方法,例1.1.1:
交换a、b两数值定义cacbacb,N-S图,1973年,美国学者I.Nassi和B.Shneiderman提出了一种在流程图中完全去掉流程线,全部算法写在一个矩形框内,在框内还可以包含其它框的流程图。
N-S图也被称为盒图或CHAPIN图。
N-S图,功能域明确;很容易确定局部和全局数据的作用域;不可能任意转移控制;很容易表示嵌套关系及模块的层次关系。
N-S图,顺序,选择,当型,直到型,循环,第二讲,程序语言,编程语言,机器语言汇编语言高级语言脚本语言,机器语言,由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序成为目标程序。
只有目标程序才能被计算机直接识别和执行。
但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
机器语言,(1+1),汇编语言,汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采汇编语言用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序通常由三部分组成:
指令、伪指令和宏指令。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
汇编语言,movax,1addax,1(1+1),高级语言,高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、C+、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
像最简单的编程语言PASCAL语言也属于高级语言.,高级语言,高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
如较早时期的Qbasic语言。
编译类:
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。
现在大多数的编程语言都是编译型的,例如C/C+、VisualFoxpro、Delphi等。
高级语言,Basicprint1+1C#includemainprintf(“%d/n”,1+1);Pascalwriteln(1+1);(1+1),脚本语言,脚本语言(Scriptlanguage,scriptinglanguage,scriptingprogramminglanguage)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。
此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。
JavaScript、ActionScript、VBA,第三讲,Pascal编译器基础,编译器,TurboPascal7FreePascal1.0/2.0CPPascalSuperPascalDelphi7.0LazarusGUIDE,TurboPascal7.0,FreePascal,快捷键,F2Alt+EnterAlt+XF7F8F9Alt+F9Ctrl+F9,保存全屏/小窗口转换关闭单步执行当前程序单步执行当前程序导出exe程序纠错调试并导出exe程序,文件关联,.pas.bak.o.exe.ppu.tpu,第二章,Pascal基础,目录,第一讲Pascal语言特点、优点与缺点第二讲Pascal程序结构第三讲Pascal基本符号、保留字和标识符第四讲Pascal标准数据类型、常量与变量第五讲Pascal标准函数、过程、运算符与表达式,第一讲,Pascal语言特点、优点与缺点,Pascal特点,以法国数学家命名的Pascal语言现已成为使用最广泛的语言之一,其主要特点有:
严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。
Pascal优点,结构化Pascal可以方便地书写出结构化程序。
这就保证程序的正确性和易读性。
在结构化这一点上,比其它算法语言更好一些。
Pascal优点,数据类型丰富Pascal提供了整数型、实数型、字符型、布尔型、枚举型、子界型以及由以上类型构成的数组类型、集合类型、记录类型和文件类型。
此外,还提供了其它许多语言中所没有的指针类型。
丰富的数据结构和上述的结构化性质,使得Pascal可以被方便地用来描述复杂的算法。
Pascal优点,适用性好既适用于数值运算,也适用于非数值运算领域。
有些语言只适用于数值计算,有些语言则适用于商业数据处理和管理领域。
Pascal的功能较强,能广泛应用于各种领域。
Pascal优点,书写较自由不象有些算法语言那样对程序的书写格式有严格的规定。
Pascal允许一行写多个语句,一个语句可以分写在多行上,这样就可以使Pascal程序写得象诗歌格式一样优美,便于阅读,但一行不可超过257个字符。
Pascal缺点,网络支持面向对象GUI,第二讲,Pascal程序结构,Pascal程序例子,programex(input,output);usescrtlabel1;constpi=3.1415926;typeint:
0.1000;varr:
int;s:
real;functionfac(r:
int):
real;vars:
real;begins:
=r*pi*r;fac:
=s;end;,proceduresum;begins:
=fac(r);end;begin1:
ClrScr;write(r=);readln(r);sum;writeln(s=,s);readln;goto1;end.,程序首部,标号说明,常量说明,类型说明,变量说明,函数定义,过程定义,主程序体,单元引用,第三讲,Pascal基本符号、保留字和标识符,基本符号,ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-*/=():
=.,:
;.,保留字,
(1)程序、函数、过程符号:
program,function,procedure
(2)说明部分专用定义符号:
array,const,file,label,of,packed,record,set,type,var(3)语句专用符号:
case,do,downto,else,for,forward,goto,if,repeat,then,tountil,while,with(4)运算符号:
and,div,in,mod,not,or(5)分隔符号:
begin,end(6)空指针常量:
nil共36个补充:
unitimplementationinterfacestring,标识符,要求标准标识符自定义标识符,要求,以字母或下划线开头的数字字母下划线序列例:
a、ab、a1、max、_12、_ab211、a_1、a_等,自定义标识符使用时的注意要点,不能与保留字同名如果与标准标识符同名,强行改变标准标识符原来意义最好有一定意义,使程序具有可读性可以使用大写、小写、大小写混用,意义不变,第四讲,Pascal标准数据类型、常量与变量,常用数据类型,整型(整数类型)实型(实数类型)字符型布尔类型枚举类型子界类型,数组类型集合类型记录类型文件类型指针类型对象类型,整型,shortint-128127integer-3276832767longint-21474836482147483647byte0255word065536int64freepascal专用,非顺序类型qwordfreepascal专用,非顺序类型,整型,符号:
+-*divmod,实型,real$N+singledoubleexendedcomp,实型,符号:
+-*/,字符型,char#001#128,布尔型,Boolean(true/false)计算符号notandorxor,not,not(true)=falsenot(false)=true,and,(true)and(true)=true(true)and(false)=false(false)and(true)=false(false)and(false)=false,or,(true)or(true)=true(true)or(false)=true(false)or(true)=ture(false)or(false)=false,xor,(true)xor(true)=true(true)xor(false)=false(false)xor(true)=false(false)xor(false)=true,常量,定义以后不能改变值的如:
constst=abc句型:
const自定义标识符=值,变量,定义以后可以改变值的如:
vari:
integer;句型:
var自定义标识符:
数据类型,第五讲,Pascal标准函数、过程、运算符与表达式,函数与过程,子程序过程procedure函数function,运算符,表达式,表达式指由常量、变量、函数、括号、集合及运算符连接起来的式子。
表达式中的变量必须要有一个明确的值,单个的常量、变量、函数都可以看成是一个表达式运算先后顺序not*,/,div,mod,and+,-,or关系运算符、in,句型,:
=变量名/函数名:
=表达式,例题,例2.5.1两个数差为100布尔表达式:
1:
abs(ab)=100;2:
(a+100=b)or(a100=b),例题,例2.5.2能够被3和5整除布尔表达式:
1:
(amod3=0)and(amod5=0)2:
amod(3*5)=0,例题,例2.5.3闰年表达式:
(yearmod400=0)or(yearmod4=0)and(yearmod1000),例题,例2.5.4求圆周长语句:
1:
s=3.14*r*r;2:
s=3.14*sqr(r);,第三章,程序设计初步,目录,第一讲读入语句与输出语句第二讲复合语句第三讲if语句及if语句的嵌套第四讲case语句第五讲for循环第六讲while循环与repeat循环第七讲goto语句第八讲小技巧,第一讲,读入语句与输出语句,读入语句,语法:
read()readln()技巧:
读入回车后退出程序:
readln;end。
输出语句,语法:
write()writeln()小技巧:
场宽,单场宽,单场宽指在输出时每个输出项所占的长度。
若输出项的长度大于长宽则输出的结果是那个输出项不受长宽限制,后面的输出项仍然在其后输出。
例3.1.1:
programp3_1_1(input,output);vara:
integer;begina:
=100;write(a:
10);end.,双场宽,有两个场宽,双场宽只用于实型数输出,其中前一个和但场宽作用相同,后一个用来控制小数位数,若小数位数大与场宽输出时就四舍五入,若小于场宽就补“0”。
例3.1.2:
programp3_1_2(input,output);vara:
real;begina:
=100;write(a:
0:
2);end.,场宽语法,单场宽:
(integer、char、boolean、string)语法:
自定义标识符:
场宽数双场宽:
(real)语法:
自定义标识符:
总场宽数:
小数位数,例题,例3.1.3:
读入两个实型,交换后输出,精确到0.01。
programp3_1_3_1(input,output);vara,b,c:
real;beginreadln(a,b);c:
=a;a:
=b;b:
=c;writeln(a:
0:
2,b:
0:
2);readln;end.,例题,例3.1.3:
读入两个实型,交换后输出,精确到0.01。
programp3_1_3_2(input,output);vara,b:
real;beginreadln(a,b);a:
=a+b;b:
=ab;a:
=ab;writeln(a:
0:
2,b:
0:
2);readln;end.,例题,读入一个整数,将其平方后减去原数的绝对值,最后求值的平方根,输出最后的值,保留整数。
programp3_1_4(input,output);varn:
integer;beginreadln(n);writeln(sqrt(n*n-abs(n):
0:
0);readln;end.,第二讲,复合语句,语法,复合语句beginend;end前句子末尾可不加;,第三讲,if语句及if语句的嵌套,语法,if+(boolean表达式)+then+句子if+(boolean表达式)+then+句子1+else+句子2注意:
else前句子末尾不加“;”,例题,例3.3.1:
将两个整数大的放入max,小的放入min,并输出。
programp3_3_1(input,output);varmax,min,t:
integer;beginreadln(max,min);ifmaxminthenbegint:
=max;max:
=min;min:
=t;end;writeln(max,min);readln;end.,例题,例3.3.2:
计算下列函数,programp3_3_2(input,output);varx,y:
integer;beginreadln(x);ifx0theny=-1elseifx=0theny=0elsey=1;writeln(y);readln;end.,例题,例3.3.3:
读入三个数排序programp3_3_3(input,output);vara,b,c:
integer;beginreadln(a,b,c);ifabthenifbcthenwriteln(a,b,c)elseifacthenwriteln(a,c,b)elsewriteln(c,a,b)elseifcbthenwriteln(c,b,a)elseifacthenwriteln(b,a,c)elsewriteln(b,c,a);readln;end.,第四讲,case语句,语法,case语句case表达式of常数表1:
语句1;常数表2:
语句2;常数表n:
语句n;else语句n+1end;end前句子末尾可不加;,end与case相对,而非beginelse前可加;,例题,例3.4.1:
随机产生两个数,读入一个符号,并运算。
programp3_4_1(input,output);vara,b:
integer;ch:
char;beginrandomize;a:
=random(100);b:
=random(100);readln(ch);casechof+:
writeln(a,+,b,=,a+b);-:
writeln(a,-,b,=,a-b);*:
writeln(a,*,b,=,a*b);/:
writeln(a,/,b,=,a/b);end;readln;end.,第五讲,for循环,语法,for变量:
=表达式to表达式do语句for变量:
=表达式downto表达式do语句要求:
to循环初值=终值变量:
顺序类型,例题,例3.5.1:
输出从1到100所有的整数。
programp3_5_1(input,output);vari:
integer;beginfori:
=1to100dowriteln(i);readln;end.,例题,例3.5.2:
倒序输出从1到100所有的偶数。
programp3_5_2(input,output);vari:
integer;beginfori:
=1downto100doifimod2=0thenwriteln(i);readln;end.,例题,例3.5.3:
警察查一个杀人犯。
A说,是B杀的;B说:
不是我;C说:
是A杀的。
已知有且只有一个人说了谎,问是人谁杀的。
programp3_5_3(input,output);vara,b,c:
boolean;beginfora:
=falsetotruedoforb:
=falsetotruedoforc:
=falsetotruedoiford(a)+ord(b)+ord(c)=2theniford(not(b)+ord(b)+ord(not(a)=2thenifnot(a)thenwriteln(a)elseifnot(b)thenwriteln(b)elsewriteln(c);readln();end.,注意事项,例3.5.4例3.5.5for循环的终值不能变化。
for循环的指针可以变化。
例题,例3.5.4programp3_5_4(input,output);vari,n,total:
integer;beginn:
=100;total:
=0;fori:
=1tondobegininc(total);n:
=n-1;end;writeln(total);readln;end.,运行结果:
100,例题,例3.5.5programp3_5_5(input,output);vari,total:
integer;beginfori:
=1to10dobegini:
=i+1;inc(total);end;writeln(total);readln;end.,运行结果:
5,第六讲,while循环与repeat循环,语法,whileBoolean表达式do句子repeat句子untilBoolean表达式注:
until前可以不加;,例题,例3.6.1:
读入一行数字,以回车为结束标志,求最大值。
programp3_6_1_1(input,output);vara,max:
integer;beginmax:
=-32768;repeatread(a);ifamaxthenmax:
=a;untileoln;readln;writeln(max);readln;end.,例题,例3.6.1:
读入一行数字,以回车为结束标志,求最大值。
programp3_6_1_2(input,output);vara,max:
integer;beginmax:
=-32768;whilenot(eoln)dobeginreadln(a);ifamaxthenmax:
=a;end;readln;writeln(max);readln;end.,小技巧,while句型与repeat句型转换while句型表达式=not(repeat句型表达式),例题,3.6.2顺序输出1到100内所有整数。
programp3_6_2_1(input,output);vari:
integer;begini:
=1;whilei=100dobeginwriteln(i);i:
=i+1;end;readln;end.,例题,3.6.2顺序输出1到100内所有整数。
programp3_6_2_1(input,output);vari:
integer;begini:
=1;repeatwriteln(i);i:
=i+1;untili=100;readln;end.,第七讲,goto语句,语法,label数字数字:
goto数字,label数字goto数字数字:
例题,例3.7.1:
顺序输出从1到100所有整数。
programp3_7_1(input,output);label1;vari:
integer;begini:
=1;1:
writeln(i);ifi=100thengoto1;readln;end.,注,标号在1.9999之间,且不一定要按顺序。
goto语句可由其他语句代替。
尽可能不用goto语句。
第八讲,小技巧,integer与char的特殊表达式,integer&+二进制数char#+字节型integer$+十六进制数,注释,(*)/,Pascal对汇编语言的支持,语法:
asmend,第四章,枚举、子界与数组,目录,第一讲枚举型第二讲子界型第三讲一维数组第四讲字符串第五讲多维数组第六讲排序法,第一讲,枚举型,语法,方法一type类型名=(标示符1,标示符2);var变量名:
类型名方法二var变量名:
(标示符1,标示符2);,枚举型,是顺序类型不能直接read/write,要用case句型允许直接赋值,没有运算符类型定以后允许作为函数、过程参数,函数值,例题,例4.1.1:
当输入星期几的数字,能输出它的后一天是星期几。
programp4_1_1(input,output);typeweek=(sun,mon,tue,wed,thu,fri,sat);vari:
integer;day,succday:
week;beginreadln(i);caseiof1:
day:
=mon;2:
day:
=tue;3:
day:
=wed;end;if(day=sat)thensuccday:
=sunelsesucday:
=succ(day);write(Thenextdayis);casesuccdayofsun:
writeln(sunday);mon:
writeln(monday);tue:
writeln(tuesday);.end;end.,第二讲,子界型,语法,方法一type类型名最小值.最大值;var变量名:
类型名方法二var变量名:
最小值.最大值;,子界型,shortint=-128.127;boolean没有子界型类型定以后允许作为函数、过程参数,函数值子界型也是顺序类型,也可以用for语句,例题,例4.2.1:
顺输出从1到100所有整数。
programp4_2_1(input,output);vari:
1.100;beginfori:
=1to100dowrite
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pascal 教程 自学