带格式的输出语句及输入语句
- 格式:pdf
- 大小:125.81 KB
- 文档页数:5
第一课初识Pascal语言第二课赋值语句、输出语句第三课带格式的输出语句及输入语句第四课简单的分支结构程序设计第五课if嵌套与case语句第六课for循环语句第七课WHILE循环与REPEAT第八课一维数组第九课多维数组第十课字符与字符串处理第十一课枚举、子界、集合及记录类型第十二课过程与函数第十三章动态数据类型第十四课文件第一课初识Pascal语言一、Pascal 语言概述二、Pascal 语言的特点三、Pascal语言程序的基本结构四、Turbo Pascal语言系统的使用信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力。
选手首先应针对竞赛中题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试通过。
程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第一步必须掌握一门高级语言及其程序设计方法。
一、Pascal 语言概述PASCAL语言也是一种算法语言,它是瑞士苏黎世联邦工业大学的N.沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表。
1975年,对PASCAL语言进行了修改,作为"标准PASCAL语言"。
PASCAL语言是在ALGOL 60的基础上发展而成的。
它是一种结构化的程序设计语言,可以用来编写应用程序。
它又是一种系统程序设计语言,可以用来编写顺序型的系统软件(如编译程序)。
它的功能强、编译程序简单,是70年代影响最大一种算法语言。
二、Pascal 语言的特点从使用者的角度来看,PASCAL语言有以下几个主要的特点:⒈它是结构化的语言。
PASCAL语言提供了直接实现三种基本结构的语句以及定义"过程"和"函数"(子程序)的功能。
可以方便地书写出结构化程序。
在编写程序时可以完全不使用GOTO语句和标号。
这就易于保证程序的正确性和易读性。
1.2 基本算法语句1.2.1 输入语句、输出语句和赋值语句【知识提炼】输入语句、输出语句和赋值语句的格式与功能名称输入语句输出语句赋值语句格式INPUT“提示内容”;___________“提示内容”;_______变量=_______变量PRINT表达式表达式名称输入语句输出语句赋值语句功能把程序执行时新输入的值赋给_____在计算机屏幕上输出_____、_____的值和_____信息将表达式所代表的值赋给变量.一般先计算“=”___________的值,然后把这个值赋给“=”_____的变量举例INPUT xINPUT“a=”;aPRINT yPRINT“y=”;ypi=3.14i=i+1变量常量变量系统右边表达式左边【即时小测】1.思考下列问题:(1)输入语句和赋值语句都可以给变量赋值,二者有何不同?提示:输入语句可使初始值与程序分开,利用输入语句改变初始数据时,程序不变,而赋值语句是程序的一部分,输入语句可对多个变量赋值,赋值语句只能给一个变量赋值.(2)程序中如果连续多次对变量赋值,那么这个变量的值最后是多少?提示:变量的值总是最后一次赋给它的值,例如:x=2,x=x+1,x=5执行完每个语句时,x的值依次为2,3,5,而执行完整个程序后,x 的值为5.2.下列输入语句正确的是 ( )A.INPUT XB.INPUT X+3C.INPUT “学生身高”D.INPUT X=3【解析】选A.“提示内容”及后面的分号可省略,直接输入;B错,X+3是代数式,不是变量;C错,只有“提示内容”而没有变量;D错,X=3是等式而不是变量.3.下列给出的输入语句中,①INPUT a;b;c②INPUT x=3③INPUT a,b,c④INPUT“a=,b=”,a,b⑤INPUT“a=,b=”a,b.正确的选项是 ( )A.①②⑤B.③C.②③D.③④⑤【解析】选B.判断一个输入语句正确与否,关键是要理解输入语句的格式:INPUT“提示内容”;变量,另外,还要注意一些细节部分.故选③.4.下列给出的输出语句正确的是 .①PRINT A=4 ②PRINT“你的姓名”XM ③PRINT a,b,c④PRINT 20,3﹡2 ⑤PRINT S【解析】结合输出语句格式,对照说明内容,比较可得结论.可知①中有赋值号“=”是不正确的,②中双引号与XM间要加分号“;”.答案:③④⑤5.下列给出的赋值语句正确的是 .①3=B ②x+y=0 ③A=B=-2 ④T=T﹡T【解析】根据赋值语句的格式可知,赋值号左侧为单个变量,右侧为表达式(赋值语句有运算功能),故填④.答案:④【知识探究】知识点1 输入语句与输出语句观察如图所示内容,回答下列问题:问题1:输入语句的作用是什么?问题2:输入语句、输出语句应注意哪些问题?【总结提升】1.对输入语句的两点说明(1)INPUT语句又称“键盘输入语句”,当计算机执行到该语句时,暂停并等候用户输入程序运行需要的数据.此时,用户只需把数据由键盘输入,然后回车,程序将继续运行.(2)“提示内容”的作用是在程序执行时提示用户将要输入的是什么样的数据.如:INPUT“语文,数学,外语成绩=”;a,b,c.“提示内容”及后面的“;”可省略,直接输入,如:INPUT a,b,c.2.对输出语句的三点说明(1)PRINT语句又称“打印语句”,将结果在屏幕上显示出来.(2)“提示内容”提示用户输出的是什么样的信息.如:PRINT“该学生的总分=”;S(3)具有计算功能.可以输出常量、变量的值和系统信息.如:PRINT 12/3PRINT APRINT 5PRINT “I am a student!”3.输入语句、输出语句应注意的问题(1)输入语句:①“提示内容”必须加双引号,提示内容原样在计算机屏幕上显示,提示内容与变量之间用“;”隔开;②一个输入语句可以含有多个变量,中间用“,”隔开.(2)输出语句:①“提示内容”必须加双引号,提示内容原样输出;②输出语句可以一次完成输出多个表达式的功能,不同表达式之间用“,”隔开;③计算机计算表达式的值再输出,即输出语句有计算功能.④用来分隔提示内容及表达式的引号、分号等不会输出.知识点2 赋值语句观察如图所示内容,回答下列问题:问题1:赋值语句中的“=”与“等号”意思一样吗?问题2:赋值语句常用哪些形式?【总结提升】1.对赋值语句的五点说明(1)在代数中A=B与B=A是等效的两个等式,而在赋值语句中则是两个不同的赋值过程,如A=B是将B的值赋给变量A,而B=A是将A的值赋给变量B.(2)“=”右边可以是常量、变量或算式,如X=6,A=B,当表达式为一算式时,如C=X+Y,是指先计算X+Y的值,再把该值赋给C,所以赋值语句具有计算功能.(3)“=”左边必须是变量,而不能是表达式、常量.如:15=a,x+y=c 都是错误的.(4)一个语句只能给一个变量赋值,不能对几个变量连续赋值,但可以辗转赋值,如A=B=10是不正确的,但可以写成:A=10,B=A,赋值后,A的值是10,B的值也是10.(5)可给一个变量多次赋值,但只保留最后一次所赋的值.如:A=5,B=3,A=A+B,执行后A的值为8.2.赋值语句的三种常用形式(1)赋给变量常数值,如i=1,这个式子表示的是将“1”这个值赋给“i”.(2)赋给变量其他变量或表达式的值,如a=b这个式子表示的是将“b”的值赋给“a”.(3)将含有变量自身的表达式赋给变量,如i=i+1,这个式子表示的是将“i+1”的数值赋给“i”,即表示“i”的值自身加1.【知识拓展】利用赋值语句交换两个变量的值在算法中经常需要将两个变量的值互换,这时可通过赋值语句实现,但要引进第三个变量.例如,要将变量a与b的值互换,可通过以下三个赋值语句实现:c=bb=aa=c【题型探究】类型一 输入语句和输出语句【典例】1.下列给出的输入、输出语句正确的是 ( )①输入语句INPUT a;b;c;②输入语句INPUT x=3;③输出语句PRINT A=4;④输出语句PRINT 20,3﹡2.A.①②B.②③C.③④D.④2.(2015·包头高一检测)下列程序若输出的结果为3,则输入的x值可能是 ( )INPUT“x=”;xy=x﹡x+2﹡xPRINT yENDA.1B.-3C.-1D.1或-33.(2015·太原高一检测)利用输入语句可以给多个变量赋值,下面能实现这一功能的语句是 ( )A.INPUT“A,B,C”a,b,cB.INPUT“A,B,C”;a,b,cC.INPUT a,b,c;“A,B,C”D. PRINT“A,B,C”;a,b,c【解题探究】1.典例1中输入语句有怎样的格式?“提示内容”与变量之间用什么符号隔开?提示:输入语句的格式是:INPUT“提示内容”;变量.其作用是输入信息,提示内容与变量之间用“;”隔开.2.典例2中由输出的结果为3,可得到怎样的等式?提示:因为输出的结果为3,由此可得x2+2x=3.3.对于输入语句,提示内容与输入内容之间要用什么符号连接?两者有何顺序?提示:提示内容与输入内容之间要用“;”隔开,提示内容在前,输入内容在后.【解析】1.选D.①错,INPUT语句可以给多个变量赋值,变量之间用“,”隔开;②错,INPUT语句中不能是表达式;③错,PRINT语句中不用赋值号“=”;④对,PRINT语句可以输出常量、表达式的值.2.选D.根据条件可知,x2+2x=3,解得x=1或-3,所以答案为D.3.选B.提示内容与输入内容之间要用“;”隔开,故A错;提示内容在前,输入内容在后,故C错;输入语句用“INPUT”而非“PRINT”,故D错.【方法技巧】解决输入语句和输出语句要明确的三个问题(1)输入语句要求输入的值只能是具体的常数,不能是变量或表达式(输入语句无计算功能),若输入多个数,各数之间用“,”隔开. (2)计算机执行到输入语句时,暂停,等候用户输入“提示内容”所提示的数据,输入后回车,则程序继续进行,“提示内容”及其后的“;”可省略.(3)输出语句可以输出常数,变量或表达式的值(输出语句有计算功能)或字符,程序中引号内的部分将原始呈现.【变式训练】下列输出语句书写不正确的是 ( )A.PRINT SB.PRINT S=4C.PRINT “S=”;SD.PRINT (a+b+c)/3【解析】选B.由输出语句的格式及功能知A,C,D正确,不能直接输出S=4,故B不正确.类型二 赋值语句及相关问题【典例】1.下列赋值语句正确的是 ( )A.a+b+c=1B.2=0C.2a=b=1D.n=n+12.(2015·淄博高一检测)下列算法:①z=x;②x=y;③y=z;④输出x,y,关于算法的作用,叙述正确的是 ( )A.交换了原来的x,yB.让x与y相等C.变量z与x,y相等D.x,y仍是原来的值3.(2015·邢台高一检测)阅读下列程序,并指出当a=3,b=-5时的计算结果:a= ,b= .INPUT“a,b=”;a,ba=a+bb=a-ba=(a+b)/2b=(a-b)/2PRINT“a,b=”;a,bEND【解题探究】1.赋值语句中的“=”与数学中的“=”意义相同吗?提示:意义不同.赋值语句中的“=”的右边可以是常量、变量或算式,而“=”的左边必须是变量,而不是表达式.2.典例2中利用赋值语句如何交换两个变量?提示:通过三个赋值语句和一个中间变量来实现.3.典例3中应特别注意什么问题?提示:要注意“=”是赋值号,而非原来的等号,其作用是将它右边的确定值赋给左边的变量,变量的取值只与最后一次赋值有关.【解析】1.选D.对于A,赋值号左边不能为表达式;对于B,赋值号左边只能是变量;对于C,不能给多个变量同时赋值.2.选A.本算法利用了中间变量z,使x,y的值进行了互换,故选A.3.因为a=3,b=-5,所以a=a+b=3-5=-2,b=a-b=-2-(-5)=3,a=(-2+3)/2=答案: 【延伸探究】1.(改变问法)若本题3条件不变,将程序变为INPUT“a,b=”;a,ba=a-bb=a+ba=(a+b)/2b=(a-b)/2PRINT“a,b=”;a,bEND则a= ,b= .【解析】因为a=3,b=-5,所以a=a-b=3-(-5)=8,b=a+b=8+(-5)=3,答案: 2.(改变条件)若本题3的程序不变,将“a=3,b=-5”变为“a=-5,b=3”,又如何求解?【解析】因为a=-5,b=3,所以a=a+b=-5+3=-2,b=a-b=-2-3=-5,a=(-2-5)/2=答案:【方法技巧】赋值语句的几种常见形式(1)赋予变量常数值,如a=1.(2)赋予变量其他变量或表达式的值,如b=a,b=2a+1.(3)变量自身的值在原值上加常数或变量,如i=i+1,i=i+S.【拓展延伸】数学符号与程序符号的比较功能数学符号程序符号或函数乘法运算符×﹡除法运算符÷/指数运算a x a^x不大于≤<=不小于≥>=功能数学符号程序符号或函数不等号≠<>绝对值|x|ABS(x)算术平方根SQR(x)逻辑“且”运算AND逻辑“或”运算OR【补偿训练】已知如图所示的程序.INPUT “A,B,C=”;A,B,CA=A+BB=B-AC=C/A﹡BPRINT“C=”;CEND若输入A=3,B=2,C=5,则输出的结果为 .【解析】阅读程序,由A=3,B=2,C=5,A=A+B,可得A=5,又根据语句B=B-A,可得B=-3,又C=C/A﹡B,所以输出结果为C=-3.答案:C=-3【延伸探究】1.(改变问法)若本题条件不变,将程序变为INPUT “A,B,C=”;A,B,CA=A-BB=B+AC=C/A﹡BPRINT “C=”;CEND则输出的结果为 .【解析】阅读程序,由A=3,B=2,C=5,A=A-B,可得A=3-2=1,又根据语句B=B+A=2+1=3,又C=C/AB,则C=5/13=15,所以输出结果为C=15.答案:C=152.(改变条件)若本题的程序不变,将“A=3,B=2,C=5”改为“A=5,B=3,C=2”,结果又如何呢?【解析】阅读程序,由A=5,B=3,C=2,A=A+B可得A=5+3=8,又根据语句B=B-A=3-8=-5,又C=C/AB,则C=2/8(-5)= 所以输出结果为C=类型三 程序框图与程序设计语言的相互转化【典例】1.(2015·抚顺高一检测)如图是一个用基本算法语句编写的程序,根据程序画出其相应的程序框图.INPUT “x,y=”;x,y x=x/3y=2﹡y^2PRINT x,yx=2﹡x-yy=y-1PRINT x,yEND2.给出如图所示程序框图,写出相应的算法语句.【解题探究】1.典例1中由程序画程序框图需要注意什么问题?提示:由程序画程序框图需要注意:(1)赋值语句可以用来计算;(2)程序框图中要有起止框,反之由程序框图写程序时,不要忘记最后的“END”.2.典例2中程序框图的处理框对应其程序中的什么语句?提示:程序框图的处理框对应其程序中的赋值语句.【解析】1.程序框图为:2.程序如下:INPUT “x,y=”;x,y x=x/2y=3﹡yPRINT x,yx=x-yy=y-1PRINT x,yEND。
带格式的输出语句及输入语句一、输入语句(读语句)在程序中可以用赋值语句给变量获得一个确定的值,但是变量的值经常变化,尤其初始化时,则必须使用输入语句──读语句,将更为方便。
读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式:1.读语句的一般格式:read(<变量名表>);readln[(<变量名表>)];其中变量名表是用逗号隔开的若干个变量名组成的。
功能:从标准输入(即INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。
说明:①read和readln是标准过程名,它们是标准标识符。
②执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。
如执行read(a)语句,a是整型变量,则输入的字符为数字字符时是合法的,合法的情况下将输入的整数赋给变量a。
③在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,一定要输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,读语句执行结束,程序继续运行。
例3.设a、b、c为整型变量,需将它们的值分别赋以10,20,30,写出对应下列语句的所有可能输入格式。
Read(a,b,c);解根据③,即可列出所有可能输入格式(a)10□20□30←┘(b)10□20←┘30←┘(c)10←┘20□30←┘(d)10←┘20←┘30←┘其中"←┘"表示回车键。
④read语句与readln语句的第一个区别是: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是多余的,这是允许的。
1.2 基本算法语句1.2.1 输入语句、输出语句和赋值语句学习目标核心素养1.理解输入语句、输出语句、赋值语句的格式与作用.(重点、易混点)2.能够将程序框图转化为“算法”语句.(难点) 1.通过算法语句的学习,培养数学抽象素养.2.借助程序语句的编写,提升逻辑推理素养.1.输入、输出语句(1)输入、输出语句输入语句、输出语句分别与程序框图中的输入、输出框对应,用来输入和输出信息.(2)输入、输出语句的格式及功能名称格式功能输入语句INPUT “提示内容”;变量,其中“提示内容”一般是提示用户输入什么样的信息把程序中新输入的值赋给变量输出语句PRINT“提示内容”;表达式在计算机的屏幕上输出常量、变量的值和系统信息2.赋值语句(1)赋值语句和程序框图中表示赋值的处理框对应,用来给变量赋值.(2)赋值语句的格式及功能赋值语句变量=表达式将表达式所代表的值赋给变量,一般先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量思考:赋值号与等号有何区别?[提示](1)赋值号与等号意义不同,若把“=”看作等号,则N=N+1不成立,看成赋值号则成立.(2)赋值号两边的内容不能对调.(3)虽然赋值语句具有计算与赋值的作用,但不能利用它进行代数式的演算.1.下列关于赋值语句的说法错误的是( )A.赋值语句先计算出赋值号右边的表达式的值B.赋值语句是把左边变量的值赋给赋值号右边的表达式C.赋值语句是把右边表达式的值赋给赋值号左边的变量D.赋值语句中的“=”和数学中的“=”不一样B[赋值语句的作用是把右边表达式的值赋给赋值号左边的变量.]2.在INPUT语句中,如果同时输入多个变量,变量之间的分隔符是( )A.逗号B.分号C.空格D.引号A[在算法语句中,同时输入多个变量,变量之间用逗号隔开.]3.下列给出的输入、输出语句正确的是( )①输入语句:INPUT a,b,c,d,e;②输入语句:INPUT X=1;③输出语句:PRINT A=4;④输出语句:PRINT 10,3*2,2/3.A.①②B.②③C.③④D.①④D[①④正确,②③中对变量赋值是错误的.]4.下面一段程序执行后的结果是________.10[先把2赋给A,然后把A*2赋给A,即A变为4,再把A+6赋给A,故A为10.]输入、输出语句①INPUT2,3,4②INP UT x=2③INPUT x④INPUT x,y,z⑤INPUT“a=”;a⑥INPUT“a=”;5*5⑦INPUT a,b,c,(2)当x的值为5时,“PRINT“x=”;x”在屏幕上的输出结果为( )A.5=5 B.5C.5=x D.x=5(1)③④⑤(2)D [(1)序号正误理由①×输入语句不能直接输入常量②×输入语句不能输入表达式③√这是最常见的输入方式,一般在某一程序之前,用来输入下面的程序运行所需要的变量值④√这是一个输入多个变量的表达方式,即对三个变量进行赋值,每个变量之间用“,”隔开⑤√程序上机运行后,若输入5,则屏幕显示a=5⑥×输入语句没有运算功能,输入语句要求输入的值只能是一个常数,不能是一个表达式⑦×输入语句末尾不带任何符号(2)PRINT语句可将用双引号引起来的字符串显示在屏幕上,从而应输出x=5.]输入、输出语句中的注意点1输入语句没有计算功能,只能输入常量;而输出语句有计算功能,可以输出常量、变量或表达式的值以及字符2“提示内容”和变量之间用分号隔开,若输入出多个数,各数之间应用逗号隔开,“提示内容”可以省略.3程序中运算符号要规范,输出语句不能输出一个等式,这是易错点.[跟进训练]1.有以下程序:程序执行后的结果是( )A.5 5 B.3 3C.A=5 B=5 D.A=3 B=3C[该程序运行过程中A,B的值变化如下:A=3,B=5;A=5,B=5;所以程序执行后的结果是A=5,B =5.]赋值语句【例2】(1)下列赋值语句正确的是( )A.M=a+1 B.a+1=MC.M-1=a D.M-a=1(2)读如下两个程序,完成下列问题.程序a:程序b:①程序a的运行结果为________.②若程序a,b运行结果相同,则程序b输入的值为________.(1)A (2)①6②0[(1)a+1=M中,赋值号的左边是表达式,故B错误;M-1=a中,赋值号的左边是表达式,故C错误;M-a=1中,赋值号的左边是表达式,故D错误.只有A:M=a+1是正确的赋值语句.(2)赋值语句给变量赋值时,变量的值总是最后一次所赋的值,故程序a中x的值最后为6.要使程序b 中y的值为6,即x2+6=6,故x=0.即输入的x的值为0.]赋值语句的几种常见形式1赋予变量常数值,如a=1.2赋予变量其他变量或表达式的值,如b=a,b=2a+1.3变量自身的值在原值上加常数或变量,如i=i+1,i=i+S.[跟进训练]2.设A=10,B=20,则可以实现A,B的值互换的程序是( )C[A中程序执行后A=B=10,B中程序执行后A=B=10,C中程序执行后A=20,B=10,D中程序执行后A=B=10.]程序框图与程序语言的转化【例3】读下面的程序,根据程序画出程序框图.思路点拨:根据语句的意义及结构特点画程序框图[解] 程序框图如图所示:编写程序的步骤1根据问题要求构思算法分析.2把算法分析转化为程序框图,即画出程序框图.3把程序框图转化为程序.,要注意转化过程中基本结构与相应语句的对应.熟练后可直接写出程序.[跟进训练]3.根据下列程序框图写出其相应的程序.[解] 程序如下:1.需输入信息时用INPUT语句,需输出信息时用 PRINT语句,当变量需要的数据较少或给变量赋予算式时,用赋值语句,当变量需要输入多组数据且程序重复使用时,使用输入语句较好.2.赋值语句是一个程序必不可少的重要组成部分,使用赋值语句,一定要注意其格式要求,不能利用赋值语句进行代数式计算等.1.判断下列结论的正误(正确的打“√”,错误的打“×”)(1)语句INPUT只能给一个变量赋值.( )(2)输出语句可以输出数值计算的结果.( )(3)赋值语句中的“=”和数学中的“=”作用一样.( )[答案](1)×(2)√(3)×2.赋值语句N=N+1的意义是( )A.N等于N+1B.N+1等于NC.将N的值赋给N+1D.将N的原值加1再赋给N,即N的值增加1D[赋值语句N=N+1的意义是:将N的原值加1后再赋给N,即N的值增加1.]3.下面程序运行后,输出的结果为________.4 1[运行程序得,a=1+3=4,b=4-3=1.]4.把如图的程序框图转化为算法语句.[解]。
带格式的输出语句及输入语句
一、输入语句(读语句)
在程序中可以用赋值语句给变量获得一个确定的值,但是变量的值经常变化,尤其初始化时,则必须使用输入语句──读语句,将更为方便。
读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式:
1.读语句的一般格式:
read(<变量名表>);
readln[(<变量名表>)];
其中变量名表是用逗号隔开的若干个变量名组成的。
功能:从标准输入(即INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。
说明:
①read和readln是标准过程名,它们是标准标识符。
②执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。
如执行read(a)语句,a是整型变量,则输入的字符为数字字符时是合法的,合法的情况下将输入的整数赋给变量a。
③在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,一定要输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,读语句执行结束,程序继续运行。
例3.
设a、b、c为整型变量,需将它们的值分别赋以10,20,30,写出对应下列语句的所有可能输入格式。
Read(a,b,c);
解
根据③,即可列出所有可能输入格式
(a)10□20□30←┘
(b)10□20←┘
30←┘
(c)10←┘
20□30←┘
(d)10←┘
20←┘
30←┘
其中"←┘"表示回车键。
④read语句与readln语句的第一个区别是:
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语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。
例4
设要达到例1同样的目的,但语句改为:
readln(a,b);readln(c)
则例3中的4种输入格式只有(b)(d)是有效的.
⑤readln语句与read语句的第二个区别是:read后一定要有参数表,而readln 可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。
经常用于暂停程序的运行,直到输入一个回车。
例5
设有下列语句:
read(a,b,c);
readln(d,e);
readln;
readln(f,g);
其中,所有变量均为整型。
再设输入的数据如下:
1□2←┘
3□4□5□6□7□8←┘
9□10←┘
11←┘
12□13←┘
列表给出每个变量的值.
分析:
可以假想有一"数据位置指针",每读一个数据后,指针后移到该数据之后,每执行一个readln语句后,指针移到下一个数据行的开头。
各变量的值如下表所示。
━━━━━━━━━━━━━━━━━━━━━━━━━━
变量名a b c d e f g
──────────────────────────
值123451112
──────────────────────────
⑥为了避免可能出现的错误,建议在程序中按下列原则使用读语句:
(A)如果没有特殊需要,在一个程序中尽量避免混合使用read语句和readln语
句;
(B)尽量用readln语句来输入数据,一个数据行对应一个readln语句;
(C)由于执行read或readln语句时,系统不会提供任何提示信息,因此,编程时
最好在输入语句之前加以适当提示,例如:
write('Input a,b,c:');
readln(a,b,c);
在执行时,屏幕上显示:
Input a,b,c:_
其中,"_"为光标。
执行readln语句后,系统处于待待输入状态,只有输入了所需数据后才继续往下执行。
在读入字符型数据时要注意:
(A)字符之间不应打入空格。
例如ch1、ch2、ch3是字符型数据,输入abc ←┘结果ch1=’a’,ch2=’b’,ch3=’c’
(B)字符串数据必须一个数据回车后再输第二个数据,以此类推。
二、写语句的输出格式
在pascal语言中输出数据时是可以按照一定格式的,对整数隐含的输出形式为按十进制数形式。
对实数的输出,隐含的形式是科学记数法形式(如果不想用科学记数法输出而用小数形式输出,要自己另行定义)。
⒈隐含的输出格式
pascal语言为整型量、实型量、布尔型量和字符串(用一对单引号括起来的字符序列)规定了每种数据所占的宽度(即一个数据占几列),一个数据所占的宽度称为"场宽"或"字段宽"。
系统给出的隐含场宽称为标准场宽。
每一种pascal版
本给定的标准场宽不尽相同。
下表给出标准场宽。
integer12实际长度
real17
布尔型4或5
字符串串长
如:
writeln(sqrt(75));
则输出□8.6602540379E+00。
而writeln(sqrt(81));
则输出□9.0000000000E+00。
有时,在程序中往往根据实际情况,需要自己定义场宽。
⒉指定场宽
在写语句中输出项含有格式符号时,就是为了指定场宽。
⑴指定单场宽.
格式:write(表达式:N)或writeln(表达式:N),其中N为自然数,指定单场宽后,所有数据不再按标准场宽输出,而按指定场宽输出。
若数据实际长度小于指定场宽时,则一律"向右靠齐,左留空格"。
如write(1234:8);write('abcdef':12)
输出结果:
□□□□1234□□□□□□abcdef
对于标准实型数据指定单场宽时,如果场宽大于标准场宽时,右靠齐按标准场宽格式输出17位,左留空格。
若场宽小于标准场宽时,以原样输出。
⑵指定双场宽
如果输出项是实数时,如果希望输出的实数不用科学记数法输出,而用小数形式输出,可以用指定双场宽方法输出。
双场宽输出格式为:write(实型表达式:m:n),其中m和n都是自然数,m 用以指定整个数据所占的宽度,n指定输出实数的小数位数。
如:write(sqrt(75):9:4);
输出:□□□8.6602
如果双场宽不能满足输出数据的最低要求,系统自动突破指定的场宽限制,按实际长度输出。
如:write(sqrt(75):5:4);要使小数点后有4位数字,而总场宽为5是不可能的(因为还有一个小数点,小数点前面还有一个数字)。
它最低限度要有6列,即输出为: 8.6602
例1
写出下列程序在turbo pascal下的输出结果.
program ex;
const s='abcdefg';
var
i:integer;
r:real;
c:char;b:boolean;
begin
i:=1234;r:=1234.5678;
c:='#';b:=true;
writeln(i,i:6,i:3);
writeln(r,r:12:5,r:8:5);
writeln(c,c:5);
writeln(s,s:10,s:5);
writeln(b,b:5,b:3);
end.
运行结果如下:
1234□□12341234
□1.2345678000E+03□□1234.567801234.56780
#□□□□#
abcdefg□□□abcdefgabcdefg
TRUE□TRUETRUE。