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

pascal第七讲:输出(写)write 语句

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

〖语法分析〗

  写(write)语句是Pascal中唯一能将运算结果送出显示在显示器屏幕的语句。格式如下:
   write(输出量1,输出量2,……);{输出后不换行}
   writeln(输出量1,输出量2,……);{输出后换行}
   writeln;{输出一个回车符}
   使用写语句时也有一些小问题需要注意。 

   1、输出量可以是:
   变量。输出变量的值。输出多个变量时,变量间用“,”分隔。
   表达式。输出的是表达式的值。
   常量。直接输出常量值。 

例1:以下两个程序段的输出分别为:
  ① write(1,2,3,4);write(5,6);   ② writeln(1,2,3,4);write(5,6);
  输出为:            输出为:      

  123456  1234 
  56 

例2:有三个小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,两有13粒糖果。现在他们做一个游戏。从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。问最后甲、乙、丙三人各有多少粒糖果?
  分析:在游戏中每个小朋友拥有的的糖果数是在变化的,用a,b,c三个变量分别存放甲乙丙在某一时刻所拥有的糖果数。对于每人,分糖后,他的糖果数一定为原来的糖果数 div 3(用整除恰可以表示多余的糖自己吃掉)。而其他两人则增加与这个小朋友现在拥有的糖果数。

程序如下:
var A,B,C:integer;
begin
  A:=50; B:=43; C:=13;      {初始糖果数}
  A:=A div 3; B:=B+A; C:=C+A;   {甲分糖果后,每个人拥有的糖果数变化情况}
  B:=B div 3; A:=A+B; C:=C+B;   {乙分糖果后,每个人拥有的糖果数变化情况}
  C:=C div 3; A:=A+C; B:=B+C;   {丙分糖果后,每个人拥有的糖果数变化情况}
  writeln(’A=’,A,’ B=’,B,’ C=’,C);
end. 

   2、场宽的限制在输出不同格式的数值时的作用:
   例3:输出多个空格。
   write(’’:n);句子的意思是以n个字符宽度输出冒号前数据项,如果数据项长度不足n,则前面以空格补齐;如果数据项长度大于n,则以实际长度输出。如上语句句输出n个空格。 
   例4:数据项间隔。
   如输出最多四位的数据:write(x:5)。则数据间至少分隔一个空格。 
   例5:实型数据小数位数的确定。 
   实型数据不带格式限制时,以科学计数法的形式输出,和我们的一般书写习惯不同。如果加上场宽的限制,则可以有不同的效果:
var a:real;
begin
   a:=15/8;
   writeln(a);{输出 1.8750000000E+00}
   wiiteln(a:0:2);{输出 1.88 整数部分按实际位数输出,小数部分保留两位小数,末位四舍五入.}
   writeln(a:0:0):{输出 2 只输出整数部分,小数部分四舍五入}
end.


  例6、写出下列程序的运行结果: 

const s=’abcd’; 

var i:integer;  r:real; c:char; b:Boolean; 

begin 

   i:=1234; r:=123.456;  c:= ’*’; b:=true; 

   writeln(i,i:5,i:3); 

   writeln(r,r:8:4,i:8:2);   

   writeln(c,c:4); 

   writeln(s,s:8,s:3); 

   writeln(b,b:5,b:3) 

end. 

运行结果 

1234 12341234 

1.2345600000E+02123.4560  123.46 

*   * 

abcd    abcdabcd 

TRUE TRUETRUE    

   3、“writeln;”语句通常用于输出多组数据时在屏幕上输出空行来分隔数据组。

总结:

输出数据也根据定义的场宽向右靠齐。 
当组成输出数据的字符个数小于场宽时,在数据值的左边补足空格。 
当组成输出数据的字符个数大于场宽时,系统将自动向右边伸至恰好的大小位置,突破原来定义的场宽大小。