基础7月18日pascal语言复习、深入理解_第1页
基础7月18日pascal语言复习、深入理解_第2页
基础7月18日pascal语言复习、深入理解_第3页
基础7月18日pascal语言复习、深入理解_第4页
基础7月18日pascal语言复习、深入理解_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、基本知识

1、Pascal程序基本组成

2、Pascal数据类型

3、标准函数

4、运算符和表达式

5、基本语句二、程序的三种基本结构:

1、顺序结构

2、选择结构(if、case)

3、循环结构(for、while、repeat)Pascal语言1、Pascal程序基本组成

例1:计算半径为R的圆面积S

programArea(input,output);{程序首部}:可以省略不写

constpi=3.14159;{常量说明}

{说明部分}

vars,r:real;{变量说明}

begin

readln(r);

s:=pi*sqr(r);

writeln('s=',s);

end.

保留字程序名{执行部分}

一、基本知识2、Pascal数据类型

1)整型

类型数值范围占字节数Shortint-128..1271Byte0..2551Integer-32768..32767;2Word0..655352Longint-2147483648..21474836474Longword0..4Int64-8..78

QWord0..1582)实数类型数值范围有意义的位数占字节数

Real依赖于平台???4or8Single1.5E-45..3.4E387-84Double5.0E-324..1.7E30815-168Extended1.9E-4951..1.1E493219-2010Comp-2E64+1..2E63-119-2083)布尔型

一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false和true

vara,b:boolean;A:=4>3;b:=2>3;4)字符型

字符型用char作为标识符。字符型必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。

Vars:char;s:=‘B’算术函数

函数标识符自变量类型意义结果类型

abs(x)整型、实型绝对值同自变量

int(x)整型、实型整数部分整型

sqrt(x)整型、实型平方根实型

如:abs(2-5)=3,int(4.99)=4,sqrt(9)=3.03、标准函数

4、运算符和表达式

1)运算符a.算术运算符

运算符运算运算对象结果类型

+加整型、实型只要有一个运算对象是实型,结果就

-减整型、实型是实型,如果全部的运算对象都是整

*乘整型、实型型并且运算不是除法,则结果为整型

/除整型、实型若运算是除法,则结果是实型。

div整除整型整型

mod取余(模)整型整型15Div6=2

(-15)div6=-2

15Div(-6)=-2

(-15)div(-6)=215mod6=3

(-15)mod6=-3

15mod(-6)=3

(-15)mod(-6)=-3b.逻辑运算符

运算符运算运算对象结果类型

not逻辑非布尔型布尔型

and逻辑与布尔型布尔型

or逻辑或布尔型布尔型c.关系运算符

运算符运算运算对象结果类型

=等于简单类型布尔型

<>不等于简单类型布尔型

<小于简单类型布尔型

>大于简单类型布尔型

<=小于等于简单类型布尔型

>=大于等于简单类型布尔型(2>3)and(4>3)、(2>3)or(4>3)、not(2>3)2)表达式:是通过运算符把常量、变量、函数调用结合起来组成的。PASCAL表达式有以下计算优先顺序规则:

1.括号内的表达式首先计算;

2.运算符的优先级有四级,按其优先顺序从高到低排列为:

not;*,/,div,mod,and,shl,shr;

+,-,or;

=,<>,>,<,<=,>=,IN;不同优先级的两运算符之间的操作数先与具有较高优先级的运算符进行运算;

3.同级的运算从左到右进行;另外,有一点需要指出的是,因为关系运算符的优先级最低,当用关系式构造复杂的布尔表达式时,这些关系式作为初等条件必须放在括号里。如:(x<y)and(z=y)or(x=0)若不加括号,就是一个错误的表达式。

二、程序的三种基本结构一)顺序结构

程序按照语句的书写先后顺序逐句执行,直到程序的结束。Pascal程序中,顺序结构是一种最简单的基本结构。如果不去局部的考虑程序中的选择结构和循环结构,把它们看作是一个复合语句的话,那么程序本身就可以看作是一个顺序的结构;反过来更细地去看选择结构或循环结构的成分,那么它们的主要运行部分(被选择的语句或循环体),实际上又是一个属于顺序结构的复合语句。

1、赋值语句

赋值语句是最简单的语句.

(1)赋值语句的格式变量名:=表达式;其中“:=”称为赋值号。(2)执行过程先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。如:A:=(9*8)-(2-1);

(A←(9*8)-(2-1);)

A:=A+1

(A←A+1)2、输入语句read和readln功能:从键盘或文件读入数据项,并把它存到变量中去,使该数据能在以后的计算中使用。输入语句的一般形式为:

read(v1,v2,…,vn);

readln(v1,v2,…,vn);从键盘依次读入数据,分别赋给变量v1,v2,…,vn,一次输入多个数据值时,要求数据之间用空格分隔,如果是字符类型的数据,则不需要分隔。readln语句要求输入数据后必须回车,使得后继操作从下一行的头上开始。read语句与readln语句区别是:(1)readln语句与read语句的第一个区别是:read后一定要有参数表,readln可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车。(2)readln语句与read语句的第二个区别是:read语句是一个接一个地读数据,在执行完本read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如:Read(a,b);Read(c,d);Read(e);

如果输入数据行如下:1□2□3□4□5□6□←┘则a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则数据6是多余的,这是允许的。

Readln则不同,在读完本Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。设有下列语句:read(a,b,c);read(d,e);readln;readln(f,g);其中,所有变量均为整型。再设输入的数据如下:

1□2←┘3□4□5□6□7□8←┘9□10←┘11←┘

3、输出语句write和writeln功能:把程序计算的结果,按适当的形式输出到屏幕或文件。(1)write语句格式:

write(表达式1,表达式2,……);如:write(x,5,a+b);write(‘MynameisLiping’);(2)writeln语句格式:writeln(表达式1,表达式2,……);或writeln;write语句与writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于:write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。例如以下两个程序段的输出分别为:write(1,2,3,4);write(5,6);输出为:123456writeln(1,2,3,4);write(5,6);输出为:1234564、实数的输出格式实数(real)以浮点型格式输出。例如805.67对应的浮点数为8.E+02。这种实数表达方式很不方便。我们可以通过下述形式强迫实数以定点型格式输出:实数表达式:域宽:小数位数例如,t的值设为63.123。下面三条输出语句分别有它们右边所示的输出格式:write(t);6.31230000000E+01write(t:6:2);63.12write(t:10:5);63.12300

write(t:0:2);63.12write(t:0:0);63二)选择结构1、if语句

IF语句是由一个布尔表达式和两个供选择的操作序列组成。运行时根据布尔表达式的求值结果,选取其中之一的操作序列执行。有两种形式的IF语句:格式二:

if<布尔表达式>then<语句1>else

<语句2>;格式一:

if<布尔表达式>then<语句>;注意:else前面没有分号.例1:输入一个整数a,判断是否为偶数。(是输出“yes”否则输出“no”)。vara:integer;beginreadln(a);if(amod2=0)thenwriteln(‘yes’)elsewriteln(‘no’);end.IF语句的嵌套在if语句中,如果then子句或else子句仍是一个if语句,则称为if语句的嵌套。例2计算下列函数

分析:根据输入的x值,先分成x>0与x≤0两种情况,然后对于情况x≤0,再区分x是小于0,还是等于0。varx:real;y:integer;beginreadln(x);ifx>0

theny:=1{x>0时,y的值为1}

else{x≤0时}

ifx=0

theny:=0elsey:=-1;writeln('x=',x:6:2,'y=',y);end.

1,x>0Y=0,x=0-1,x<02、case语句

case语句是由一个表达式和众多可选择的操作序列组成。运行时,根据表达式的求值结果,在众多的分支中选取一个分支执行。其形式为:

case表达式of

常量1:语句1;

常量2:语句2;

……

常量n:语句n;

else语句n+1

{可选项}

end;

例:根据学生的成绩给予相应的等级,对应关系如下:

90—100A

80—89B

60—79C

60以下Dvars:real;ch:char;

begin

readln(s);

casetrunc(s/10)of

10,9:ch:='A';

8:ch:='B';

7,6:ch:='C';

elsech:='D';

end;

writeln(ch);

end.Vars:real;ch:char;beginreadln(s);if(s>=90)and(s<=100)thench:='A';if(s>=80)and(s<=89)thench:='B';if(s>=60)and(s<=79)thench:='C';ifs<60thench:='D';writeln(ch);end.

三)循环结构

循环结构程序通常由三种的循环语句来实现。它们分别为for循环、当循环while、直到repeat循环。在编写程序时,若循环次数已知,通常采用for语句;若循环次数未知,则应选用while或repeat语句。在进行循环程序设计时,一定要搞清楚在循环前要做什么事(通常在循环前要做一些准备工作,如累加器、计数器清零,变量赋初始值等),在循环中需要做什么事,解决什么问题,在循环后又要做什么问题。通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。因此,重复语句是由循环体及重复终止条件两部分组成。例1、键入一个自然数N(<=10000),求这个自然数的所有约数(不包括1和本身)之和S。varn,i,s:integer;beginread(n);s:=0;fori:=2ton-1doifnmodi=0thens:=s+i;writeln('s=',s);end.for语句1、for语句的一般格式

for<控制变量>:=<表达式1>to<表达式2>do<语句>;for<控制变量>:=<表达式1>downto<表达式2>do<语句>;

其中for、to、downto和do是Pascal保留字。表达式1与表达式2的值也称为初值和终值。例2、从键盘上输入n个数,求出他们的最大数,最小数,平均数。

varn,i,max,min,x:longint;sum:real;beginread(n);read(x);max:=x;min:=x;sum:=x;

fori:=1ton-1dobeginread(x);sum:=sum+x;ifx>maxthenmax:=x;ifx<minthenmin:=x;end;writeln('max:',max);writeln('min:',min);writeln('aver:',sum/n:0:2);end.例3、求100以内的素数(质数):除了1和本身不再有别的约数。每行输出一个素数。varn,i,f:integer;{F:标志,1:是素数,0:不是素数}beginforn:=2to100dobeginf:=1;fori:=2totrunc(sqrt(n))doifnmodi=0thenbeginf:=0;break;{n不是素数,退出本层循环}end;iff=1thenwriteln(n);end;end.while循环(repeat循环)当循环次数未知,只能根据某一条件来决定是否进行循环时,用while语句(repeat语句)实现循环要更方便。格式:

while<布尔表达式>do<语句组>;其意义为:当布尔表达式的值为true时,执行do后面的语句。格式:

repeat<语句组>;

<语句组>;

…;until<布尔表达式>;其意义为:先执行循环语句,再判断条件,当布尔表达式的值为false时,继续执行循环,否则退出循环。3.多重循环:循环的嵌套【例1】:求100~999中的水仙花数。(若三位数abc,abc=a3+b3+c3,则称为水仙花数。如:153,13+53+33=1+125+27=153)算法设计:采用一重循环求解,用for循环。程序代码:programex;vara,b,c,x:integer;beginforx:=100to999dobegina:=xdiv100;b:=xmod100div10;c:=xmod10;ifa*a*a+b*b*b+c*c*c=xthenwrite(x,’’);writelnend.3.多重循环:循环的嵌套【例1】:求100~999中的水仙花数。(若三位数abc,abc=a3+b3+c3,则称为水仙花数。如:153,13+53+33=1+125+27=153)算法设计:采用三重循环求解,用for循环。程序代码:programex;vara,b,c:integer;beginfora:=1to9doforb:=0to9doforc:=0to9doifa*a*a+b*b*b+c*c*c=a*100+b*10+cthenwrite(a*100+b*10+c:6);writelnend.【例2】:用5元钱买100只纽扣,其中金属纽扣每只5角,有机玻璃纽扣每只一角,小按扣1分钱3个,编程求出各种纽扣各买了多少只?(23860)var

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论