第一个程序Pascal语言的编译器有很多,我们这里以Dev-Pascal为主要编程工具。
该软件界面如下:我们输入如下代码后编译运行。
1 2 3 4 5 program my_program; {程序首部,程序名或简单说明} begin {程序开始的标志}write('Hello,World'); {屏幕上输出单引号下的内容}readln; {等待操作者按一次回车}end. {程序结束的标志}如果没有输入错误的话,计算机应能在黑色背景上显示“Hello,World”。
例:计算a+b的值。
1 2 3 4 5 program circle;vara,b,x:integer;{定义变量} begina:=100;1.点击New source file按钮新建一源文件2.输入代码并保存,保存路径不得有中文字符3.编译并运行6 7 8 9 10 b:=50;x:=a+b;writeln('a+b=',x);{输出并换行} readln;end.Pascal字符与符号1.标识符(1) 标识符的定义:标识符就是以字母开头的字母数字序列,有效长度为63个字符,并且大小写等效。
可以用来标示常量、变量、程序、函数等。
(2) 标识符的分类:a.保留字(关键字)所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误。
下面是Pascal语言的保留字:AND ARRAY BEGIN CASE CONST DIV DO DOWNTOELSE END FILE FOR FUNTION GOTO IF INLABEL MOD NIL NOT OF OR PACKED PROCEDUREPROGRAM RECORD REPEAT SET THEN TO TYPEUNTIL VAR WHILE WITHb.标准标识符:指Pascal语言预先定义的标识符,具有特殊含义。
以下列举了Turbo Pascal语言部分常用的标准表识符:标准常量False Maxint True标准类型Boolean Char Real Integer标准函数Abs Arctan Chr Cos Eof Eoln ExpLn Odd Ord Pred Round Sin SqrSqrt Succ Trunc标准过程Dispose Get New Pack Page Put ReadReadln Reset Rewrite Unpack Write Writeln标准文件Input OutputPascal数据类型Pascal 提供了丰富的数据类型,在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型。
1.整型一个整型数据用来存放整数。
Pascal支持五种预定义整型,它们是shortint(短整型)、integer (整型)、longint(长整型)、byte(字节型)和word(字类型)。
每一种类型相应的整数取值范围以及所占用的内存字节数见下表:类型数值范围占字节数格式Pascal规定了两个预定义整型常量标识符maxint和maxlongint,他们各表示确定的常数值,maxint为32767,longint为2147483647,他们的类型分别是integer 和longint2.实型一个实型数据用来存放实数。
Pascal支持五种预定义实型,它们是single(单精度实型)、real (基本实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型)。
每一种类型相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度见下表:除real型外,其它几种关数类型使用时必须要打开编译开关才可使用。
例如下面的程序:3.布尔型一个布尔型数据用来存放逻辑值(布尔值)。
布尔型的值只有两个:false和true,并且false 的序号是0,true的序号是1。
false 和true都是预定义常数标识符,分别表示逻辑假和逻辑真。
并且true<false。
boolean是布尔型的标识符。
4.字符型字符型用char作为标识符。
字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。
常量和变量1.常量:它的语法格式是:const<常量标识符>=<常量>;例如:constcounter:integer=0;flag:boolean=true;index:0..100=0;2.变量:它的语法格式是:var<变量标识符列表>:<类型>;例如:vara,b,c:integer;m,n:real;标准函数sin(pi)=0.0cos(pi)=-1.0frac(-3.71)=-0.71 int(-3.71)=-3.0sqr(4)=16sqrt(4)=2例:odd(1000)=false pred(2000)=1999succ(2000)=2001 odd(3)=true pred('x')='w succ('x')='y'例:chr(66)='B'ord('A')=65round(-4.3)=-5trunc(2.88)=2运算符和表达式优先级表达式输入输出语句自定义场宽:例如:设置整型时:Writeln(i:6,ch:5);设置实型数据时:Writeln(r:10:4);2.输入语句:例如:Readln(a,b,c);注意:如果输入语句中有ln则给程序中变量输入完数据后,清空键盘缓冲区,没有ln 则输入后不清空键盘缓冲区。
Pascal语句结构IF语句IF语句的一般格式是:IF 条件THEN 语句1{条件为真时的响应、处理}ELSE 语句2;{条件为假时的响应、处理}使用条件语句时要注意:1、条件语句是一个语句。
IF、THEN、ELSE都是语句的一个部分。
所以它只能有一个“;”作为分隔符,放在句子的结束,特别要注意不能放在ELSE 之前。
2、如果我们的程序只需对条件为真的情况作出处理,不需要处理条件为假的情况,则IF语句省略ELSE分句,格式变成:3、if语句可以多层嵌套。
嵌套时为了避免误解,可以用begin ,end括起嵌套部分;else分句一般和最近的if分句配套:IF 条件THENBEGINif 条件1 then …… else ……;ENDELSEBEGINif 条件2 then …… else ……;End;CASE语句分情况语句适用于对一个条件的多种情况的响应。
case 表达式of标号1:语句1;标号2:语句2;……标号n:语句n;else 语句n+1end;例如:1 2 3 4 5 6 7 8 910111213141516 program tt; Varx,y:integer; BeginReadln(x); Case x of1:y:=10;2:y:=14; Else y:=45; End; Writeln(y); end.Repeat语句:该语句执行过程是:(1)首先顺序执行循环体;(2)然后判断条件表达式的值,若为假,则返回(1)重新执行,若为真,则结束循环。
例如:从键盘输入非零数,计算其积,输入0结束,并输出结果。
1 2 3 4 5 6 7 8 910111213141516 program compute; vars,x:real;begins:=1; x:=1; repeats:=s*x;readln(x); until x=0;writeln('s=',s); readln;end.从While-do 语句:该语句执行过程是:1. 当语句先判断后执行。
2. 条件表达式为假的时候,退出循环,为真时继续循环。
3. 循环do 后面的一条语句。
一般do 后面为复合语句。
4. 在循环体内要有改变条件表达式值的语句即改变循环变量的语句。
否则循环没有意义。
将出现死循环或一次也不运行。
例如求1-100之间的偶数和:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16program compute; vars,i:integer; begins:=0; i:=2;while i<=100 do begin s:=s+i; i:=i+2;end;writeln('s=',s); readln; end.While 与repeat 的不同点是:1. Repeat 先执行后判断;while 先判断后执行。
2.Repeat 条件为真时结束循环,为假循环;while 条件为假的时候结束循环,为真循环。
3. Repeat 循环体可以由多条语句组成,while 循环体只能为一条语句。
For 语句递减型:Continue 语句功能是将循环控制返回到条件判断处。
Break 语句功能是强制退出循环,返回到循环语句的下一语句。
过程与函数函数参见下面的例子:Function ba:integer; //无参函数Function bb(var I,j:integer;k:real);Function bc(var i:integer;j:integer):Boolean;过程参见下面的例子:Procedure aa; //无参过程Procedure ab(var I,j:integer;k:real);下面是一个调用过程的例子:1 2 3 4 5 6 7 8 91011121314151617 program compute;varm:integer;procedure draw1(n:integer);//定义了一个过程vari:integer;beginfor i:=1 to n dowrite('*');writeln;end; //过程结束begindraw1(5);//调用过程readln;end.参数传递运行下面的程序: 123456789101112131415161718192021 program local_global; var x,y:integer; procedure p(var i:integer;j:integer);//i 为变量参数,j 为值参数 Begin writeln(i:2,j:2); i:=2*i;j:=3*j; writeln(i:2,j:2); end; Begin x:=1;y:=1; p(x,y); writeln(x:2,y:2);readln; end.运行结果是:1 12 32 1当使用变量参数时,变量参数将获得实际参数的地址,操作变量参数即是操作实际参数。