信息学竞赛Pascal语言顺序结构程序设计(二) 标签:信息学
<p><strong>优学合肥奥数网</strong>:青少年信息学竞赛辅导资料Pascal语言:第二章 顺序结构程序设计</p><p><strong>第二章 顺序结构程序设计</strong></p><p>赋值语句</p><p>PASCAL有两个语句可以改变变量的值。赋值语句是其中之一(另一个是读语句)。赋值,顾名思义,就是把一个值赋予某个量。可以这理解:变量相当于装东西的容器,赋值的过程就是把东西放进容器的过程。赋值语句格式如下:</p><p>变量:=表达式;</p><p>写赋值语句有以下几点要注意:</p><p>1、赋值号“:=”</p><p>赋值号由两个字符构成,是一个运算符。如果把这两个字符拆开,那么这两个字符就是别的意思了:“:”是分隔符而“=”是关系运算符,判定两个对象是否相等。刚刚写程序的同学要特别注意这一点。</p><p>例:a,b:integer;——是一个说明语句。“:”是变量表和变量类型的分隔符</p><p>a=b——是一个表达式。它的值是一个布尔类型的量:TRUE或FALSE</p><p>a:=3;——是一个语句。把整型常量值3赋给整型变量a</p><p>2、变量要先说明</p><p>在赋值号左边出现的变量,要在程序头的说明部先加以说明,否则编译时出错。</p><p>3、表达式必须要有确定的值</p><p>赋值号右边出现的表达式,必须是可以求值的。也就是说,经过运算之后,能得出一个具体的、确定的值出来。大家想一想,如果连表达式自己都不知道自己的值是多少,怎么还能把值“赋予”别人呢?</p><p>4、赋值号两边的数据类型必须相同或相容</p><p>我们知道,PASCAL中的量不管是变量还是常量都有一个属性称为“数据类型”。数据类型相同的或相容的才可以相互赋值。</p><p>怎么来理解这句话呢?打个比方,我们沏功夫茶用的是小茶杯,装饭时用饭碗。如果用饭碗来泡功夫茶,用小茶杯来装饭,那情形一定很滑稽而且是不可行的。回到PASCAL中来,赋值号左边变量如果是整型,右边表达式的值的类型也要是整型;赋值号左边变量如果是字符型,右边表达式的值的类型也要是字符型……否则的话,也要出错了。这是数据类型相同的情况。</p><p>对于数据类型相容的,我们也可以用一个例子来帮助理解。我们都喝过功夫茶,也喝过大杯茶。把功夫茶倒在大茶杯里,一般不会出什么问题;但如果把大杯里的茶倒在功夫茶杯里呢?可能小茶杯装不下大茶杯里的茶,茶“溢出”了。在PASCAL中也会出现这种情况。当一种数据类型的取值范围包含着另一种数据类型的取值范围时,就可能出现类型相容的情况。如实型与整型,整型、字符型与它们各自的子界类型……如果把整型值赋给实型变量,把整型子界值赋给整型变量,不会出错;但如果反过来,就会出现“溢出”,出错了。</p><p>因些,我们在写赋值语句时,要注意两边的类型是否匹配。</p><p>例:有程序如下:</p><p>vara,b:integer;c:real;d:0..100;</p><p>begin</p><p>a:=100;</p><p>b:=a;</p><p>{-------------以上是相同数据类型进行赋值}</p><p>d:=100;</p><p>b:=d;</p><p>c:=b;</p><p>{-------------以上是相容数据类型进行赋值}</p><p>d:=b;</p><p>a:=c;</p><p>{-------------以上两个赋值语句都出现溢出,编译时出错}</p><p>end.</p><p><strong>下一页阅读</strong>:<strong>读语句</strong></p><p><strong>读语句</strong></p><p>读语句(read语句)和赋值语句一样,能够改变变量的值。与赋值语句不同,读语句从键盘或文件接收值赋予变量,而赋值语句则直接由程序语句获得。读语句格式如下:</p><p>read(变量名表);</p><p>readln(变量名表);</p><p>readln;</p><p>读语句是编程中用得最多的语句之一。在使用时有几点要注意:</p><p>1、变量名表。写在括号中的变量,都要在变量说明中先预以说明;变量与变量之间,以“,”分隔;</p><p>例:</p><p>vara,b:integer;</p><p>read(a,b);</p><p>2、从键盘接收数据时,要注意各种不同数据类型数据的分隔符不同。所谓分隔符就是两个完整的数值之间的标记,也可以这样理解,当计算机从键盘读入数据时,一旦碰到分隔符,就认为当前的数据读入已完成,可以把它赋给相应的变量了。各种数据类型的分隔符如下:</p><p>数值型(包括整型、实型以及它们的子界类型)以空格或回车符作为分隔符;</p><p>字符型不需分隔符(因为字符型数据的长度固定,只有一个);</p><p>字符串以回车符作为分隔符。</p><p>3、注意read与readln的区别</p><p>例:有两段程序有相同的变量说明如下,不同的读语句,我们可以通过比较它们执行结果的异同来理解read与readln的区别。</p><p>在程序段一执行时,“read(a);”语句接收了第一个数据1并将它赋给变量a;接着执行第二个语句“readln(b,c);”,接收了第一行数据中的2、3并把它们分别赋给变量b,c,同时,把本行其它数据全部屏蔽掉,也就是宣布它们全部作废。程序段二的执行情况也是如此。</p><p>因此,我们可以得出结论:语句read只管接收数据,语句readln接收完数据后,还把同行的其它数据全部宣布作废。</p><p>4、“readln;”语句从键盘接收一个回车符。这个语句通常用在需要暂停的地方。如输出时用来等待程序员看清结果。</p><p><strong>下一页阅读</strong>:<strong>写语句</strong></p><p><strong>写语句</strong></p><p>写(write)语句是Pascal中唯一能将运算结果送出显示在显示器屏幕的语句。格式如下:</p><p>write(输出量表);{输出后不换行}</p><p>writeln(输出量表);{输出后换行}</p><p>writeln;{输出一个回车符}</p><p>使用写语句时也有一些小问题需要注意。</p><p>1、输出量可以是:</p><p>变量。输出变量的值。输出多个变量时,变量间用“,”分隔。</p><p>表达式。输出的是表达式的值。</p><p>常量。直接输出常量值。</p><p>2、场宽的限制在输出不同格式的数值时的作用:</p><p>例1:输出多个空格。</p><p>write('':n);句子的意思是以n个字符宽度输出冒号前数据项,如果数据项长度不足n,则前面以空格补齐;如果数据项长度大于n,则以实际长度输出。如上语句句输出n个空格。</p><p>例2:数据项间隔。</p><p>如输出最多四位的数据:write(x:5)。则数据间至少分隔一个空格。</p><p>例3:实型数据小数位数的确定。</p><p>实型数据不带格式限制时,以科学计数法的形式输出,和我们的一般书写习惯不同。如果加上场宽的限制,则可以有不同的效果:</p><p>vara:real;</p><p>begin</p><p>a:=15/8;</p><p>writeln(a);{输出1.2023202300E+00}</p><p>wiiteln(a:0:2);{输出1.88整数部分按实际位数输出,小数部分保留两位小数,末位四舍五入.}</p><p>writeln(a:0:0):{输出2只输出整数部分,小数部分四舍五入}</p><p>end.</p><p>3、“writeln;”语句通常用于输出多组数据时在屏幕上输出空行来分隔数据组。</p><p><strong>下一页阅读</strong>:<strong>思考与练习</strong></p><p>思考与练习:</p><p>1、用字符输出一个猪锦佳的头像。</p><p>2、a,b,c分别等于1、12、123,把它们按向左对齐、向右对齐的方式打印出来。</p><p>3、输入一个四位整数,把它的各位数字倒序输出。(提示:用MOD和DIV运算完成)</p><p>4、从键盘上读入小写的"pascal",利用CHR()和ORD()函数,输出大写的"PASCAL"。</p><p>5、从键盘上读入一个实数,利用ROUND()和TRUNC()函数,输出该实数本身、整数部分、小数部分、四舍五入后的值。</p><p>要求:分三行输出;输出实数本身时,格式与读入时相同;整数部分、小数部分在同一行输出;其它各占一行。</p><p>6、从键盘上读入长方形的边长a,b,计算它的面积和周长,输出。</p><p>7、输入一个时、分、秒,把它转换为一个秒数。</p><p><strong></strong>:信息学竞赛辅导资料Pascal语言基础知识(一)</p><p>更多内容,请参加优学合肥奥数网“<strong>杯赛竞赛</strong>”频道。</p><p>》》“<strong>信息学竞赛</strong>”延伸阅读</p><p> 青少年信息学竞赛语言教程一:简单程序 </p><p>信息学编程语言教程二:顺序结构程序与基本数据类型</p><p>信息学奥赛语言教程PASCAL函数表</p><p>安徽省合肥市青少年信息学竞赛注意事项</p>
页:
[1]