您现在的位置:小学生自学网>> 信息>> pascal语言>> 基础教程

pascal第六讲:输入(读)read 语句

作者: 来源: 发布时间:2009年05月12日 点击数:
 

输入(读)read 语句


〖语法分析〗

  读语句(read语句)和赋值语句一样,能够改变变量的值。与赋值语句不同,读语句从键盘或文件接收值赋予变量,而赋值语句则直接由程序语句获得。读语句格式如下:
   read(变量名表);
   readln(变量名表);
   readln;
   读语句是编程中用得最多的语句之一。在使用时有几点要注意:

   1、变量名表。写在括号中的变量,都要在变量说明中先预以说明;变量与变量之间,以“,”分隔;
例:
var a,b:integer;
read(a,b);

   2、从键盘接收数据时,要注意各种不同数据类型数据的分隔符不同。所谓分隔符就是两个完整的数值之间的标记,也可以这样理解,当计算机从键盘读入数据时,一旦碰到分隔符,就认为当前的数据读入已完成,可以把它赋给相应的变量了。各种数据类型的分隔符如下:
   数值型(包括整型、实型以及它们的子界类型)以空格或回车符作为分隔符;
   字符型不需分隔符(因为字符型数据的长度固定,只有一个);
   字符串以回车符作为分隔符。

   3、注意read与readln的区别
  假设READ或READLN要求输入X个数据,而我们输入时也输入了X个数据,这时READ与READLN的功能是完全一样的。
   但是,如果要求输入X个数据,而我们输入了多于X个数据时(如X+N个),这时READ与READLN都是把前X个数据赋给X个变量,而剩下的多输入的N个数据就有如下情况:如果是READ,则这N个数据被保存下来,到下一个READ/READLN语句时再赋给剩下的变量;而用的是READLN的话,这些数据将被放弃,不会留至下一个READ/READLN。 
   例:有两段程序有相同的变量说明如下,不同的读语句,我们可以通过比较它们执行结果的异同来理解read与readln的区别。

变量说明 var a,b,c,d:integer;  执行结果 
a b c d 
输入数据 1 2 3 4 5
6 7 8          
程序段一 read(a);
readln(b,c);
read(d);
 1 2 3 6 
程序段二 readln(a);
read(b,c);
read(d) 1 6 7 8 
   
  在程序段一执行时,“read(a);”语句接收了第一个数据1并将它赋给变量a;接着执行第二个语句“readln(b,c);”,接收了第一行数据中的2、3并把它们分别赋给变量b,c,同时,把本行其它数据全部屏蔽掉,也就是宣布它们全部作废。程序段二的执行情况也是如此。
   因此,我们可以得出结论:语句read只管接收数据,语句readln接收完数据后,还把同行的其它数据全部宣布作废。 

  4、“readln;”语句从键盘接收一个回车符。这个语句通常用在需要暂停的地方。如输出时用来等待程序员看清结果。 

总结:

变量类型与输入的数据类型必须一致。 
输入顺序与变量顺序要一致。 
注意数据个数与变量个数的关系。