PASCAL基础教程

PASCAL基础教程

ID:37862046

大小:259.00 KB

页数:12页

时间:2019-06-01

上传者:U-2437
PASCAL基础教程_第1页
PASCAL基础教程_第2页
PASCAL基础教程_第3页
PASCAL基础教程_第4页
PASCAL基础教程_第5页
资源描述:

《PASCAL基础教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

PASCAL基础教程信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力。选手首先应针对竞赛中题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试通过。程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第一步必须掌握一门高级语言及其程序设计方法。FreePascal主界面Pascal程序基本组成例1.计算半径为R的圆面积S  programArea;{程序首部}  constpi=3.14159; {说明部分——数据描述}  vars,r:real;  begin  {执行部分}   readln(r);   s:=pi*sqr(r);   writeln('s=',s);  end.Pascal程序基本组成一个完全的Pascal程序结构program程序名;   const 常量说明;   var变量说明;  begin   ……语句 end.流程图开始输入三角形的底(a)和高(h)计算三角形的面积S=a×h/2输出三角形的面积S结束1试一试l根据下列流程图编写程序输入圆的半径(r)和圆周率pi开始计算圆的面积S=pi×r×r周长C=2×pi×r结束输出圆的面积S和周长C 保留字(关键字)Pascal给一些英文单词赋予了特定的含义,这些特定符号叫做保留字或关键字。比如program,const,var,begin,end,div,mod等。标识符1)标识符的定义:标识符就是以字母开头的字母数字序列,可以包含“_”。有效长度为63个字符,并且大小写等效。可以用来标示常量、变量、自定义变量名、程序名、函数名、过程名等。例如例1.1中的Area(程序名),pi(符号常量),s、r(变量名)都是标识符。2)标识符的分类 A、标准标识符:指Pascal语言预先定义的标识符,具有特殊含义。 以下列举了FreePascal语言部分常用的标准标识符: 标准常量FalseTrueMaxLongintMaxint标准类型BooleanCharRealIntegerString 标准函数AbsArctanChrCosEofEolnExp LnOddOrdPredRoundSinSqr SqrtSuccTrunc  标准过程DisposeGetNewPackPagePutRead ReadlnResetRewriteUnpackWriteWriteln 标准文件InputOutputB、用户自定义标识符:由你来根据需要定义。  选用的标识符不能和保留字相同。  语法上允许预定义的标准标识符作为你定义的的标识符使用,但最好还是不要用。Pascal数据类型数据是程序设计的一个重要内容,其重要特征----数据类型,确定了该数据的形、取值范围以及所能参与的运算。  FreePascal提供了丰富的数据类型,这些数据类型可以分为三大类:简单类型、构造类型和指针类型,其中简单类型可以分为标准类型(整型、实型、字符型和布尔型)和自定义类型(枚举型和子界型),构造类型可以分为数组类型、集合类型、记录类型和文件类型。这些数据类型中除了指针类型是动态数据类型外,其他的都是静态数据类型。在这些数据类型中简单类型都是有序类型,除了实型以外的简单类型都是顺序类型,所谓顺序类型就是他们的值不仅是有序的而且是有顺序号。  在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型。1、整型  一个整型数据用来存放整数。FreePascal 支持十种预定义整型,常用的有shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)和word(字类型)、longword(无符号长整型)、Int64(8字节长整型)、Qword(8字节无符号长整型),FreePascal分别用不同的名字作为他们的标识符。每一种类型规定了相应的整数取值范围以及所占用的内存字节数。类型数值范围占字节数Byte0..2551Shortint-128..1271Word0..655352Integer-32768..327672Longint-2147483648..21474836474Longword0..42949672954Int64-9223372036854775808..92233720368547758078QWord0..184467440737095516158  FreePascal规定了两个预定义整型常量标识符maxint和maxlonint,他们各表示确定的常数值,maxint为32767,maxlongint为2147483647,他们的类型分别是integer和longint。2、实型  一个实型数据用类存放实数。FreePascal支持五种预定义实型,它们是real(基本实型)、single(单精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),FreePascal分别用不同的名字作为它们的标识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。类型    数值范围    占字节数    有效位数real   2.9e-39..1.7e38  6     11..12single  1.5e-45..3.4e38  4     7..8double  5.0e-324..1.7e308 8     15..16extended 3.4e-4932..1.1e4932 10     19..20comp   -2**63+1..2**63-1  8    19..20  FreePascal支持两种用于执行实型运算的代码生成模式:软件仿真模式和80x87浮点模式。除了real可以在软件仿真模式下直接运行以外,其他类型必须在80x87浮点模式下运行。3、布尔型  一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false和true,并且false的序号是0,true的序号是1。false和true都是预定义常数标识符,分别表示逻辑假和逻辑真。并且true>false。boolean是布尔型的标识符。   4、字符型  字符型用char作为标识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。5、字符串字符串用string或ansistring作为标识符。字符串是用单引号括起来的字符序列,定义标例:s:string;//字符串的最大长度为255s:string[10];//长度为10的字符串s:ansistring;//字符串的长度无限制常量1)常量:在某个程序的整个过程中其值不变的量。2)常量定义:常量定义出现在说明部分。它的语法格式是:  const  <常量标识符>=<常量>;  ...  常量标识符的类型由定义它的常量的类型决定。例如:consta=12隐含说明a是整型;constr=3.21隐含说明r是实型......3)常量定义部分必须以保留字const开头,可以包含一个或几个常量定义,而且每个常量均以分号结束。变量1)变量:在某个程序中的运行过程中其值可以发生改变的量  2)变量说明:变量说明出现在说明部分。它的语法格式是:  var  <变量标识符列表>:<类型>;  ...  <变量标识符列表>:<类型>;  其中,保留字var表示开始一个变量说明部分。变量标识符列表是一个用逗号隔开的标识符序列,冒号后面的类型是类型标识符。每个变量说明均以分号结束。  例如:  var  a,b,c:integer;  m,n:real;标准函数 1、算术函数函数标识符    自变量类型    意义    结果类型abs       整型、实型    绝对值   同自变量exp       整型、实型    指数    实型int       整型、实型    整数部分  实型sqr       整型、实型    平方    同自变量 sqrt       整型、实型    平方根   实型例:abs(-4)=4、abs(-7.49)=7.49、int(-3.71)=-3.0、sqr(4)=16、sqrt(4)=22、标量函数函数标识符    自变量类型    意义    结果类型odd       整型       判断奇数  布尔型pred       离散类型     求前趋   同自变量succ       离散类型     求后继   同自变量 例:odd(1000)=false、odd(3)true、pred(2000)=1999succ(2000)=2001、pred('x')='w'、succ('x')='y'3、转换函数函数标识符   自变量类型    意义      结果类型chr       byte型           自变量对应的字符字符型ord      离散类型  自变量对应的序号longintround      实型      四舍五入    longinttrunc      实型      截断取整    longint运算符和表达式1、运算符和优先级  1)运算符  A、算术运算符  运算符   运算   运算对象   结果类型  +     加    整型、实型  实型、整型  -     减    整型、实型  整型、实型  *     乘    整型、实型  整型、实型  /     除       整型、实型   整型、实型  div    整除   整型     整型  mod   取余   整型     整型B、逻辑运算符  运算符   运算   运算对象   结果类型  not    逻辑非  布尔型    布尔型   and    逻辑与  布尔型    布尔型  or     逻辑或  布尔型    布尔型  xor    逻辑异或 布尔型    布尔型C、关系运算符  运算符   运算   运算对象   结果类型   =     等于    简单类型  布尔型  <>     不等于  简单类型   布尔型  <          小于   简单类型   布尔型  >     大于   简单类型   布尔型  <=    小于等于 简单类型   布尔型  >=    大于等于 简单类型  布尔型2)优先级  操作符优先级Not,@1*/divmodandshlshras2+-orxor3<<><><=>=inis4同优先级别的运算符从左向右运算2、表达式1)算术表达式:算术表达式是由算术运算符连接常量、变量、函数的式子。算术表达式中各个运算符的次序为:()-->函数-->*,/,div,mod-->+,-2)布尔表达式:FreePascal提供给布尔表达式以下基本操作:逻辑运算和关系运算。(not,and,or,xor,>,>=,<,<=)赋值语句1、赋值语句是最简单的语句,其一般形式为<变量>:=<表达式>2、赋值语句的作用是计算表达式的值,并赋给变量。3、对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以一个随机值参与运算。另外,赋值号两边的类型必须相同,但表达式值为整数时,它可自动化为实型后赋给该实型变量,即符合赋值相容。输入语句1、FreePascal语言的输入语句有如下两种形式:  1)read(<输入项表>);  2)readln(<输入项表>);2、使用说明   1)<输入项表>是一个或几个由逗号隔开的变量标识符,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型,布尔型不可以直接读入。  例:a,b,c为整型变量,read(a,b,c)之后    键盘输入:203040(表示回车)    结果: a=20,b=30,c=40  2)readln语句和read语句不同之处在于输入数据到各变量之后,readln自动换行,从下一行开始再输入数据。一个read语句执行完后,数据行中多余的未读数据可以被下一个输入语句读入;而一个readln于执行完后,数据行中多余未读数据就没有用了。readln语句中可以不包含变量名表。即有以下等价情况:read(a,b);readln等价于readln(a,b)输出语句1、FreePascal的输出语句有两种形式:  1)write(<输出项表>)  2)writeln(<输出项表>) 2、使用说明  1)<输出项表>是一串用逗号分隔的常量、变量、函数名、表达式或字符串。如果是变量、函数名、表达式,则将其计算结果输出;如果是常量或字符串,则直接输出其值。  2)writeln和writeln的区别在于:write语句是输出项输出后,不换行,光标停留在最后一项后,writeln语句按项输出后,自动换行,光标则停留在下一行的开始位置。  writeln语句允许不含有输出项,即仅writeln;表示换行。3)FreePascal语言把输出项的数据显示占用的宽度称为域宽,你可以根据输出格式的要求在输出语句中自动定义每个输出项的宽度。定义宽度时分为单域宽和双域宽。  A、单域宽输出格式为writeln(I:n)  在n个字符宽的输出域上按右对齐方式输出I的值,若n大于I的实际位数,则在I值前面补(n-I的实际位数)个空格。若I的实际位数大于n,则自动突破限制。n必须是整数。  B、双域宽输出格式为writeln(a:m:n)  双域宽主要用于实型数据的输出。n的用法同上。在n个字符宽的输出域上按右队齐方式用小数点形式输出a的数值,m是小数点后的位数。原来的数据按该该格式指定的小数位数四舍五入。若m=0 ,则不输出小数部分和小数点,原数据四舍五入取整。n,m必须是整数。复合语句复合语句是由若干语句组成的序列,语句之间用分号“;”隔开,并且以begin和end括起来,作为一条语句。复合语句的一般形式:  begin   语句1;   语句2;   ……   语句n;  end.programjiaohuan;  var   a,b,t:integer;  begin   a:=10;b:=20;   begin    t:=a;    a:=b;    b:=t;   end;   writeln('a=',a,'b=',b)  end.习题1.已知一个学生的语文、数学、外语成绩,编程求他的总分和平均成绩。2.输入一个三位自然数,把这个数的百位数与个位数对调,输出对调后的数。Programex1;Varyu,shu,ying,zf,jf:real;BeginReadln(yu,shu,ying);Zf:=yu+shu+ying;Jf:=zf/3Writeln(zf,jf)End.Programex2;Varx,ge,shi,bai,y:integer; BeginReadln(x);Bai:=xdiv100;Shi:=(x-100*bai)div10;Ge:=xmod10;Y:=100*ge+10*shi+bai;Writeln(y);End.【问题描述】试编一程序,输入一梯形的上底、下底、高,求该梯形的面积。【问题分析】整个程序分为三段:输入数据、计算面积、输出结果。程序中用a,b,h三个变量分别存放梯形的上、下底与高,S存放面积。要使用这些变量都要先说明,程序的执行部分中先输入上、下底与高,接着求面积S,最后输出结果S。在这里根据情况要将变量定义为实型。【程序设计】[程序清单] programex3; vara,b,h,s:real;{程序说明部分}begin {程序执行部分}write('Inputa,b,h:');readln(a,b,h);s:=(a+b)*h/2;write('s=',s:10:3);end.有三个小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。现在他们做一个游戏。从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。问最后甲、乙、丙三人各有多少粒糖果?问题分析:这个问题中我们关心的是在游戏过程中每个小朋友的糖果个数,且他们所拥有的的糖果数是在变化的。因此可用a,b,c三个变量分别存放甲乙丙三个小朋友在某一时刻所拥有的糖果数。对于每人,分糖后,他的糖果数一定为原来的糖果数div3(因为分糖过程糖果的数目不一定都刚好分完,用整除恰恰可以表示多余的糖自己吃掉)。而其他两人则增加与这个小朋友现在拥有的一样的糖果.[程序清单] programex4; varA,B,C:integer;begin A:=50;B:=43;C:=13;{初始时每个小朋友所拥有的糖果数} A:=Adiv3;B:=B+A;C:=C+A;{甲小朋友分糖果后,每个人拥有的糖果数变化情况} B:=Bdiv3;A:=A+B;C:=C+B;{乙小朋友分糖果后,每个人拥有的糖果数变化情况} C:=Cdiv3;A:=A+C;B:=B+C;{丙小朋友分糖果后,每个人拥有的糖果数变化情况} writeln(‘A=’,A,‘B=’,B,‘C=’,C);{输出结果} readln;end.[运行示例]A=51B=35C=16复习巩固1.浅析已知数据的输入方法1赋值语句x:=3;2输入语句(读语句)read(x);readln(x);2.定义的格式Constx=3Varx,y,z:real(integer);Ø读语句例题1.Readln(a,b,c);Readln(i,k,j,l);Readln(m,n);输入数据1234567891011202.Read(a,b,c);Read(i,k,j,l);Read(m,n);输入数据123456789101120Ø输出语句例题 1.设m为整数型数1997,ch为字符’?’,f为布尔值true,此时执行如下输出语句:Writeln(m:5);Writeln(ch:5);Writeln(f:5);Writeln(‘ok!’:5)2.已知s为3,write(s);和write(‘s’)的区别输出3和sWriteln(‘s=‘,s);输出s=3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭