ASCAL程序基础.ppt
《ASCAL程序基础.ppt》由会员分享,可在线阅读,更多相关《ASCAL程序基础.ppt(77页珍藏版)》请在三一办公上搜索。
1、PASCAL程序设计基础,柴沟中学 鹿咏梅,一、PASCAL语言基础知识,二、结构化程序设计,三、数组与字符串,四、函数与过程,五、递归,一、PASCAL程序的基本结构,Program area;Const pi=3.1416;Var r:integer;s:real;Begin writeln(enter r=);readln(r);s:=pi*r*r;write(s=,s)End.,程序首部,说明部分,执行部分,Program 程序名;,Const 常量说明;Type 类型说明;Var 变量说明;Function 函数说明;Procedure 过程说明;,Begin 语句1;语句2;End
2、.,例:已知圆的半径r,编程求圆的面积s.,Program,Const,Var,Begin,End.,第一节 PASCAL语言基础知识,二、PASCAL字符与符号,1标识符(1)标识符的定义:标识符就是以字母开头的字母数字序列,有效长度为63个字符,并且大小写等效。可以用来标示常量、变量、程序、函数等。,二、PASCAL字符与符号,(2)标识符的分类:a.保留字(关键字)所谓保留字是指在Pascal语言中具有特定的含义,标准Pascal语言中的保留字一共有35个.PROGRAM,BEGIN,END,CASE,FUNTION,PROCEDURE,ARRAY,AND,CONST,DIV,DO,DO
3、WNTO,ELSE,FILE,FOR,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH,二、PASCAL字符与符号,b.标准标识符:指Pascal语言预先定义的标识符,具有特殊含义。标准常量FalseMaxintTrue标准类型BooleanCharReal Integer标准函数AbsArctanChrCosEofEoln Exp Ln OddOrd PredRoundSinSqr Sqrt SuccTrunc标准过程DisposeGetNewPackPa
4、ge PutReadReadlnReset RewriteUnpack WriteWriteln标准文件InputOutput,二、PASCAL字符与符号,c用户自定义标识符:由你自己根据需要来定义。选用的标识符不能与保留字和标准标识符相同。在定义标识符时可以用的字符:AZ;az;09;+,-,*,/,=,=,(,),:=,;,.,:,.,注:Pasca语言除了能使用以上规定的基本符号外,不得使用任何其它符号。,三、PASCAL数据类型,数据的一个重要特征就是它的类型,数据类型确定了数据的构成和可进行的运算。Pascal语言是一种强类型语言,不同类型间不能任意转换,不同类型的变量一般不允许作混
5、合运算。程序中出现的所有常量、变量和用户自定义的数据必须预先说明后才能使用。,三、PASCAL数据类型,Pascal数据类型,简单类型,构造类型,指针类型,三、PASCAL数据类型,1.整型,类型 数值范围shortint(短整型)-128.128integer(整型)-32768.32767 longint(长整型)-2147483648.2147483647 byte(字节型)0.255 word(字类型)0.65535,三、PASCAL数据类型,2.实型,类型 数值范围real(基本实型)2.9e-39.1.7e38single(单精度实型)1.5e-45.3.4e38double(双精
6、度实型)5.0e-324.1.7e308,三、PASCAL数据类型,3.布尔型,boolean,false,true,0,1,逻辑真,逻辑假,三、PASCAL数据类型,4.字符型,char,字符型的值必须用单引号括起来,字母作为字符型的值时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。,例:var c:char;c:=a,四、常量与变量,1.常量(1)常量:在某个程序的整个过程中其值不变的量。(2)常量定义:常量定义出现在说明部分。语法格式:const常量标识符1=常量值1;.常量标识符n=常量值n;常量标识符的类型由定义它的常量的类型决定。,Const pi=3.1
7、416;a=10;c=c;t=true;,四、常量与变量,2.变量(1)变量:在某个程序的运行过程中其值可以发生改变的量(2)变量说明:变量说明出现在说明部分。语法格式:var变量标识符列表:类型;.变量标识符列表:类型;,vara,b,c:integer;m,n:real;,五、运算符和表达式,1.运算符a.算术运算符运算符运算运算对象结果类型+加 整型、实型只要有一个运算对象是实型,结果就-减 整型、实型是实型,如果全部的运算对象都是整*乘 整型、实型型并且运算不是除法,则结果为整型,/除 整型、实型若运算是除法,则结果是实型。div 整除 整型整型mod 取余 整型整型,5 div 3=
8、15 mod 3=2,五、运算符和表达式,b.逻辑运算符 运算符运算运算对象结果类型not 逻辑非布尔型布尔型and逻辑与布尔型布尔型or 逻辑或布尔型布尔型 xor 逻辑异或 布尔型 布尔型,not(非)条件为True时,其结果值为False;否则为True;(取反)not(34)and(与)两条件都为True时,其结果值为True;否则为False;or(或)两条件中只要有一个为True;其结果值为True;否则为False;xor(异或)两条件的逻辑值不相同时,其结果值为True;否则为False;,五、运算符和表达式,c.关系运算符运算符运算运算对象结果类型=等于简单类型布尔型 不等于
9、 简单类型布尔型大于简单类型布尔型=大于等于 简单类型布尔型,运算符优先级:not*,/,div,mod,and xor,+,-,or in,=,=,=,五、运算符和表达式,2.表达式,(1)通过运算符把常量、变量、函数调用结合起来组成的式子。,pi*r*rSum+2(xy)and(z=y),五、运算符和表达式,(2)数学上的表达式与pascal语言表达式的区别数学表达式 PASCAL表达式 注意 2a 2*a*号不能省略 ab a/b除号的写法 ab ab 不等号的写法 ab a=b 小于等于号的写法,五、运算符和表达式,Pascal中的逻辑运算:,五、运算符和表达式,第二节 结构化程序设计
10、,pascal程序的三种基本结构,顺序结构,分支结构,循环结构,(一)、什么是顺序结构:【例1】:键盘输入两个变量的值,交换值后输出。方法:间接交换法算法分析:(“自顶向下,逐步求精”的编程思想)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;var a,b,c:integer;beginwrite(please input a,b:);read(a,b);writeln(a=,a,b=,b);c:=a;a:=b;b
11、:=c;writeln(a=,a,b=,b)end.,一.顺序结构程序设计,Pascal 语言的语句分为简单语句(也称基本语句)和复合语句(也称构造语句),(二):几个简单语句:1赋值语句:格式:变量标识符:=表达式;功能:计算和赋值双重功能:【例2】写出程序执行后,变量的值。程序代码:program ex2;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)“:=”赋值号不同于“=”号,具有方向性,具有
12、计算功能。2)赋值号两边的类型应该相同。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;var a,b,c:integer;i,j,k:real;ch1,ch2,c
13、h3: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,执行readln后多余的数据将被忽略;执行read后多余的数据要么被忽略,要么被下一个read或readln语句所读入。,3输出语句(write,writeln):格式:write(输出项);writeln;功能:按指定的格式将输出项的内
14、容输出。【例4】:写出程序运行后的结果。程序代码:program ex4;consta=10;b=20;begin writeln(50);writeln(a);writeln(a+b);writeln(a+b=,a+b)end.说明:1)输出项的内容可以是一项,也可以是若干项,各项之间用逗号分隔。2)当输出项为常量,直接输出常量的值;当输出项为变量时,输出该变量存储单元内的内容,变量允许属于任何一种标准数据类型;当输出项为表达式时,先计算后输出;当输出项为字符串时,原样输出单引号括起来的内容。,501030a+b=30,1、定义:复合语句是由若干条语句组成的语句序列。形式:begin 语句1
15、;语句2;语句nend;用保留字begin和end括起来,构成一条逻辑上的语句,语法上充当一条语句。,(三):复合语句:,二.选择结构程序设计,1if 语句:格式:(1)if 条件 then 语句(2)if 条件 then 语句1 else 语句2(3)if 语句嵌套if 条件1 then 语句11 else if 条件2 then 语句21 else 语句22;,例:计算下列函数 y=,Program p;Var x,y:real;begin read(x);if x0 then y=1 else y=0;writeln(y=,y);end.输入:5 输出:,0(x=0),1(x0),-1(
16、x0),2case 语句:分情况语句(多分支语句)格式:case 表达式 of 常数表1:语句1;常数表2:语句2;常数表n:语句n;else 语句n+1 end;功能:先计算表达式的值,然后将表达式的值依次与各常数表进行对照,当找到一个与表达式的值相匹配的常数表时,就去执行该CASE常数表后面的语句。说明:1)end 与case 对应 2)表达式的类型通常是整型、字符型 3)常量表是常量,其类型与表达式的类型要一致。常量表中的常量不能重复。,通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。因此,重复语句是由循环体及重复终止条件两部分组成。,FOR循环,当循环w
17、hile,直到repeat循环,一、循环结构的三种形式:,三.循环结构程序设计,(一)for循环语句,1for语句:(“计数循环”):就是将规定循环体重复执行的次数。格式:for 控制变量:=初值 to 终值 do 循环体语句;for 控制变量:=初值 downto 终值 do 循环体语句;2、for语句执行过程 先将初值赋给左边的变量(称为循环控制变量);判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤;如果末超过终值,则执行do后面的那个语句(称为循环体);循环变量递增(对to)或递减(对downt o);返回步骤;循环结束,执行循环下面的一个语句。3、说明:1)初值和终值可以
18、是表达式,控制变量和初值、终值的类型相同,且必须是整型、布尔型和字符型等顺序类型,不能为实型。2)递增按succ函数规律变化,递减按pred函数规律变化,整型按数值大小变化,如果为字符型量,按ASCII码表的顺序计算。3)初值和终值在循环之前计算,重复过程中,其值不受影响;不得在循环语句中对控制变量进行赋值。4)当初值超过终值,不执行循环,循环次数为零。,例:计算1+2+3+100之和,var i,s:integer;begins:=0;for i:=1 to 100 do s:=s+i;writeln(s);end.,循环体:重复执行,初值,i:循环控制变量,终值,(二)while语句:对于
19、for循环有时也称为计数循环。适合用于事先知道循环次数.当循环次数未知,只能根据某一条件来决定是否进行循环时,用while 语句实现循环要更方便。(“当型循环”):当条件满足时反复执行循环体。格式:while 布尔表达式 do 语句;执行过程:while语句的执行过程为:判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4;执行循环体语句(do后面的语句);返回步骤1;结束循环,执行while的下一个语句。说明:1)为了使while循环能正常终止,布尔表达式中的变量必须在循环体中的某语句中有所改变,即有可能使布尔表达式的值为假,使循环结束,否则将出现死循环。2)循环体中的语句一般是多条
20、语句,用begin和end使其成为一条复合语句。,引例:求恰好使s=1+1/2+1/3+1/n的值大于10时n的值。,var s:real;n:integer;n分母begin s:=0;n:=0;while s=10 do当s的值还未超过10时 begin n:=n+1;分母1 s:=s+1/n;将下一项值累加到s end;writeln(n);输出结果end.,repeat语句:(“直到型循环”):反复执行循环体直到条件满足为止。格式:repeat 语句1;语句2;语句3;语句n until 布尔表达式;执行过程:先执行指定的语句序列,然后判断表达式。,(三)repeat语句:(“直到型循
21、环”),例】:输入若干个字符,它的终止符是#,计算输入的字符中a(A)出现的次数。,program ex7;var ch:char;i:integer;begin i:=0;repeat read(ch);if(ch=a)or(ch=A)then i:=i+1;until ch=#;writeln(i=,i)end.,三种循环语句的相同点与不同点,数 组,一、为什么要使用数组:,例1输入50个学生的某门课程的成绩,打印出低于平均分的同学号数与成绩。分析:在解决这个问题时,虽然可以通过读入一个数就累加一个数的办法来求学生的总分,进而求出平均分。但因为只有读入最后一个学生的分数以后才能求得平均分,
22、且要打印出低于平均分的同学,故必须把50个学生的成绩都保留下来,然后逐个和平均分比较,把高于平均分的成绩打印出来。如果,用简单变量a1,a2,,a50存放这些数据,可想而知程序要很长且繁。要想如数学中使用下标变量ai形式表示这50个数,则可以引入下标变量ai。这样问题的程序可写为:,第三节 数组与字符串,tot:=0;tot表示总分for i:=1 to 50 do 循环读入每一个学生的成绩,并累加它到总分beginread(ai);tot:=tot+ai;end;ave:=tot/50;计算平均分for i:=1 to 50 doif aiave then writeln(No.,i,ai)
23、;如果第i个同学成绩小于平均分,则将输出而要在程序中使用下标变量,则必须先说明这些下标变量的整体数组,即数组是若干个同名(如上面的下标变量的名字都为a)下标变量的集合。,二、一维数组当数组中每个元素只带有一个下标时,我们称这样的数组为一维数组。1、一维数组类型的定义,一维数组类型的一般格式:array下标1.下标2 of;我们可以说,数组是由固定数量的相同类型的元素组成的。如:type arraytype=array1.8of integer;var a1,a2:arraytype;或var a1,a2:array1.8of integer;,一维数组应用示例,例 输入50个数,要求程序按输入
24、时的逆序把这50个数打印出来。也就是说,请你按输入相反顺序打印这50个数。分析:我们可定义一个数组a用以存放输入的50个数,然后将数组a内容逆序输出。源程序如下:program ex5_1;type arr=array1.50of integer;说明一数组类型arrvar a:arr;i:integer;beginwriteln(Enter 50 integer:);for i:=1 to 50 do read(ai);从键盘上输入50个整数readln;for i:=50 downto 1 do 逆序输出这50个数write(ai:10);end.,二维数组,数组类型的定义中有两个下标类型
25、,二维数组类型的定义:,type intarr=array 1.4 of integer;arr=array 1.5 of intarr;var a:arr;变量a是一个二维的数组变量,它有5个分量,分别用a1,a2,a3,a4,a5表示,每个分量相当于一个一维的数组变量(有4个整型分量),通过下标区分:a1,1,a1,2,a1,3,a1,4 a2,1,a2,2,a2,3,a2,4a3,1,a3,2,a3,3,a3,4 a4,1,a4,2,a4,3,a4,4a5,1,a5,2,a5,3,a5,4,type arr=array 1.5 of array 1.4 of integer;var a:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASCAL 程序 基础
链接地址:https://www.31ppt.com/p-5415746.html