77范文网 - 专业文章范例文档资料分享平台

PASCAL语言基础总成含题目(3)

来源:网络收集 时间:2019-06-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

PASCAL语言基础及基础训练 第 11 页 共 48页

值(BOOLEAN型),所有布尔运算也是表达式,可以赋给一个变量,也可以直接用输出语句输出。打印输出时,屏幕上就显示“false”或“true”。

第二节、条件语句

条件语句是用一个布尔表达式的值来决定程序的走向。即程序提供一个分支,由布尔表达式的值来决定程序究竞运行哪个分支。即程序已经不是顺序结构了,而是提供了一个分支结构。每次只可能运行其中的一个分支。如下图所示:

条件语句有两种格式:

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

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

格式1的作用是:如果布尔表达式值为TRUE(即该条件满足),则运行语句,否则不运行任何语句。

格式2的作用是:如果布尔表达式值为TRUE(即该条件满足),由运行语句1,否则(即布尔值为FALSE,亦即条件不满足)就运行语句2。注意:只有条件语句结束时才有分号。

注意:如果条件语句中的分支语句不止一句,可用“begin……end;”来框住,加以区别。如:以下两个程序都为从键盘输入1个整数,打印出它的算术平方根。[例4、2]: Program q421; Var a:integer; Begin Readln(a); If (a<0) then Begin Writeln(?WRONG!?); End else Begin Writeln(a); Writeln(sqrt(a):8:2); End; End. Program q421; Var a:integer; Begin Readln(a); If (a<0) then Writeln(?WRONG!?) else Writeln(sqrt(a):8:2); End. FALSE 布尔表达式 TRUE 语句序列1 语句序列2 条件语句的嵌套:条件语句是可以嵌套的,例如: if a>0 then if a>1 then …… else …… else ….;

上述语句看起来无法理解,但如果我们把它改写为以下形式时,就一目了然了: if a>0 then begin if a>1 then begin …… end

else begin ……

11

PASCAL语言基础及基础训练 第 12 页 共 48页

end else begin …… end;

也就是说,第二个IF语句只是第一个IF语句中的一部分,即嵌入的一个IF语句。

例:输入一个年份,判断它是否闰年。我们知道,每四年中有一年是闰年,即有366天,而其余三年是平年,只有365天,而按照规定:1、如果哪一年的年份能被4整除,则该年一般为闰年;2、这样,每100年又会少一天,所以又规定如果该年能被4整除,又能被100整除,则认为该年不是闰年,而是平年;3、这样,每400年又会多出一天,所以又规定,如果哪一年能被400整除,则该年又是闰年。

由上可知:1980,1996,1984年均为闰年,1900年为平年,而2000年为闰年。 程序如下:[例4、3] Program q43; Var y:integer; Begin Readln(y); if (y mod 4=0) then begin if (y mod 100=0) then begin if (y mod 400=0) then begin writeln('run'); end else begin writeln('ping'); end; end else begin writeln('run'); end; end else begin writeln('ping'); end; end.

第三节、多分支语句

IF语句只能使程序有两个分支,当遇到需要有两个以上分支时,IF语句就很不适用了,这时我们可以用CASE语句,它能使程序有很多个分支。其效果如下图: 其格式为:

case 表达式 语句序列1 语句序列2 语句序列N ?? CASE 表达式 OF 常量1:语句序列1;

12

PASCAL语言基础及基础训练 第 13 页 共 48页

常量2:语句序列2; ??

常量N:语句序列N; else 语句序列N+1; END;

其中语句序列如果只有一句,可直接写在常量后的冒号后;如果语句序列有很多句,则应该用BEGIN??END加以框住。

CASE语句的作用是,根据表达式,表达式可以有多个值,分别对应于常量1、2等值时,就运行该常量后所对应的语句。

例:输入1到7之间的某个整数,打印出其对应的星期的英语名:[例4、4]: program q44; var n:integer; begin write(?n=?); readln(n); case n of 1:writeln(?Monday?); 2:writeln(?Tuesday?); 3:writeln(?Wednseday?); 4:writeln(?Thursday?); 5:writeln(?Friday?); 6:writeln(?Saturday?); 7:writeln(?Sunday?); else writeln(?WORNG!?); end; end.

例:输入一个学生的数值化成绩,把它转化为等级化成绩。即100-90是A,89-80是B,79-70是C,69-60是D,59-0是E。[例4、5]; Program q44; Var s:integer; G:char; Begin Write(?Input the score:?); Readln(s); Case s div 10 of 用S DIV 10这个表达式作条件; 10,9:g:=?A?; 当 S DIV 10等于10或9时,表示S是90至于100之 8:g:=?B?; 间的值 7:g:=?C?; 6:g:=?D?; else g:=?E?; end; writeln(s,? ?,g); end.

第四节、标号说明及转移语句

此节不用掌握

在几乎所有语言中,都有GOTO(转移)语句,其作用是当程序运行到该句时,自动转移到其指定的标号(行号)语句去执行。

说明语法:LABEL 标号; 如:LABEL 10,20;

13

PASCAL语言基础及基础训练 第 14 页 共 48页

转移语句用法:GOTO 标号; 例:[例4、5]: program q45; label 10; begin 10:

write(?*?); goto 10; end.

运行上述程序时,程序将在屏幕不停地打印出“*”,而不会停止,必须由用户按下CTRL+BREAK才能中断。

练习

1、 设X,Y,Z的值分别是FALSE,TRUE,FLASE。写出下列逻辑表达式的值:

not x and not y; true and x or y;

(x and z) or (z and y); x or z and y;

2、 编写一个程序,功能是从键盘输入一个整数,判断它是否二位数,如果是,就打印它,然

后结束程序,否则继续要求输入数。

3、 编写一个程序,功能是从键盘输入三个整数,打印出其中最大的一个值。

4、 编写一个程序,功能是从键盘输入1—12中的某一个数字,由电脑打印出其对应的月份的

英语名称。

5、 以下程序的功能是从键盘输入一个式子,它只有三个字符,第一个及第三个都是数字,中

间那个是运算符,程序能把它的结果打印出来。试在程序空中填上相应的语句。

注意:计算机是不懂得把输入的字符串进行计算的,我们必须自己动手把其中的数字转化成数值型的数据,这其中我们使用了VAL函数,如程序中的:Val(s[1],a,c),是把S字符串中的第一个字符转换为数值A,同时输出了一个错误代码C(其实对我们是没有用的)。 Var a,b,d:real; C:word; S:string[3]; 把S定义成三个字符的字符串; Begin Readln(s); Val(s[1],a,c); 把S串中的第一个字符转换为数值; ; 把S串中的第三个字符转换为数值; Case s[2] of 用S串中的第二个字符作为条件表达式; ?+?:d:=a+b; ?-?:d:=a-b; ?*?: ; ?/?:d:=a/b; end; writeln(s,?=?, ); end.

第六章、重复结构

重复结构就是循环结构,是指某些语句需要重复执行而设定的程序结构。在PASCAL语言中,共有三种重复结构语句,功能各有不同。

14

PASCAL语言基础及基础训练 第 15 页 共 48页

第一节、直到语句

直到循环语句的语法格式是: repeat

语句序列;(循环体) until 布尔表达式;

其作用是:重复执行语句序列(循环体),直到布尔表达式的值为TRUE为止。即,当执行完一次语句序列后,布尔表达式的值已经为TRUE了,这时循环将不会再被执行,而转向执行UNTIL语句以下的语句。

例:计算M=1+2+3+4+??,直到M的值大于5050为止。[例:5、1] var m,I:integer; begin m:=0; I:=0; Repeat I:=I+1; M:=m+I; Until m>5050; Writeln(I,? ?,m); End.

在上述程序中,我们使用了PASCAL中的两个作用强大的概念:累加和循环。

累加:我们在上述程序中没定了两个累加器:I,M。累加器初值我们在第一句中设定了为0,之后每次运行一次I:=I+1后,I的值就比原来大1。每运行一次M:=M+I后,M的值就被M+I所替代。

循环:这里我们使用的是直到循环,即重复执行循环体中的两个语句,直到M>5050这个条件满足为止(即这个布尔表达式的值为TRUE为止)。

上述程序运行后,会在输出屏幕上显示两个值:101 5151。即当I的值为101时,这时所算得的M的值为5151。亦即,1+2+3+??101=5151。

象上述这种X=1+2+3+??这种加法,我们就把它叫累加,这里的X就是累加器,一般初值为0。 而N=1*2*3*4*5*6*??这种乘法我们把它叫累乘,这里N就是累乘器,一般初值为1(为什么?)。 一般的:1*2*3*??N,我们把这个式子的结果叫做N的阶乘(N!)。如:4!=1*2*3*4。 例:计算12![例5、2] var I:integer; x:longint; begin I:=0; X:=1; Repeat I:=I+1; X:=x*I; Until I=12; Writeln(x); End.

当程序开始时,I的初值被定为0,X的初值被定为1(累乘器)。然而开始进入循环,每次I的值比原来增加1,然后再乘进X中去,直到I等于12时,最后一次把I乘进X后,这时I=12这个条件已经满足(I=12的值已经为TRUE),所以循环就被退出,而程序转向执行UNTIL以后的语句:WRITELN(X);。

请大家想一想,为什么X要定义为LONGINT型。

第二节、当语句

当语句的语法格式是:

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库PASCAL语言基础总成含题目(3)在线全文阅读。

PASCAL语言基础总成含题目(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/650945.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: