顺序结构的程序(1)
一、赋值语句
PASCAL中有两个语句可以改变变量的值。
赋值语句是其中之一(另一个是读语句)。
赋值,顾名思义,就是把一个值赋予某个量。
可以这样理解:变量相当于装东西的容器,赋值的过程就是把东西放进容器的过程。
赋值语句格式如下:变量标识符:=表达式;
书写赋值语句时有以下几点要注意:
1、赋值号只能是“:=”,冒号和等号要连在一起,不能分开。
2、变量要先在程序的说明部分加以说明。
3、表达式必须要有确定的值。
4、一个赋值语句只能给一个变量赋值,同一个变量在程序中可以多次进行赋值。
5、被赋值的变量本身也可在赋值号右侧的表达式中出现,表示先用该变量原来的值代入右侧的表达式进行计算,再将结果重新赋予该变量。
6、赋值号两边的数据类型应相同或相容。
关于数据类型的相同、相容,如下所示:
var a;b:integer; c,d,e:real; f:booleam; g:char;
begin
a:=100; b:=a+5; f:=a>b; g:='L';
//以上是相同数据类型进行赋值
d:=100; c:=b; e:=ord(g);
//以上是相容数据类型进行赋值
b:=c; g:='hello';
//以上两个赋值语句都出现溢出,编译时出错
a:=a+10 //表示将变量a的值增加10
end.
二、输入语句(读语句)
输入语句(读语句)和赋值语句一样,能够改变变量的值。
与赋值语句不同,输入语句从键盘或文件接收数据赋予变量,而赋值语句则直接由程序语句获得数据。
输入语句的格式如下:
read(变量名表); {从键盘读入数据并依次赋值给变量名表中的变量}
readln(变量名表); {请看第5条}
readln; {请看第6条}
输入语句是编程中用得最多的语句之一。
在使用时应注意:
1、写在括号中的变量,都要在变量说明中先预以说明;变量与变量之间,以“,”分隔。
2、从键盘接收数据时,要注意各种不同数据类型数据的分隔符不同。
所谓分隔符就是两个完整的数值之间的标记。
可以这样理解:当计算机从键盘读入数据时,一旦碰到分隔符,就认为当前的数据读入已完成,可以把它赋给相应的变量了。
各种数据类型的分隔符如下:数值型(包括整型、实型)以空格或回车符
作为分隔符;字符型不需分隔符(因为字符型数据的长度固定,只有一个);字符串型以回车符作为分隔符。
3、程序运行到输入语句时,处于等待状态,等待用户输入相应的内容。
此时输入的数据数量不能少于输入语句中的变量数,但可以多于输入语句中的变量数。
4、程序运行时输入的数据必须与对应的变量的类型相同或相容(这个概念和赋值语句是一致的),否则就会出现错误。
5、注意read与readln的区别:
语句read只管接收数据,语句readln接收完数据后,还把同行的其它数据全部宣布作废。
如有如下的变量说明:var a,b,c,d:integer;
执行程序后,输入:
1 2 3 4 5
6 7 8
则对于程序段一:
read(a); //接收了第一个数据1并将它赋给变量a
readln(b,c); //接收了第一行数据中的2、3并分别赋给变量b和c,同时,把本行其它数据全部屏蔽
read(d); //接收了第二行数据中的6并将它赋给变量d
运行后a、b、c、d的值分别为1、2、3、6。
对于程序段二:
readln(a); //接收了第一个数据1并将它赋给变量a,同时,把本行其它数据全部屏蔽
read(b,c); //接收了第二行数据中的6、7并把它们分别赋给变量b和c
read(d); //接收了第二行数据中的8并将它赋给变量d
运行后a、b、c、d的值分别为1、6、7、8。
6、“readln;”语句从键盘接收一个回车符。
这个语句通常用在需要暂停的地方。
如输出时用来等待程序员看清结果。
三、输出语句(写语句)
输出语句(写语句)是PASCAL中唯一能将运算结果输出的语句。
输出语句的格式如下:
write(输出量表); {输出后不换行}
writeln(输出量表); {输出后换行}
writeln; {输出一个回车符}
使用写语句时有以下问题需要注意:
1、输出量可以是以下三种情况:
变量。
输出变量的值。
表达式。
输出的是表达式的值。
常量。
直接输出常量值。
2、输出量表中可以有多个需要输出的内容,之间用“,”分隔。
3、在每个需要输出的内容后面可以用冒号+数字表示这一项内容输出时所占的宽度,对于实数类型的数据,还可以控制其输出时小数的位数。
例1:输出n个空格。
write('':n);
意思是以n个字符宽度输出冒号前数据项,如果数据项长度不足n,则前面以空格补齐;如果数据项长度大于n,则以实际长度输出。
如上语句句输出n个空格。
例2:数据项间隔。
如输出最多四位的数据:write(x:5);
则数据间至少分隔一个空格。
例3:实型数据小数位数的确定。
实型数据不带格式限制时,以科学计数法的形式输出,和我们的一般书写习惯不同。
如果加上场宽的限制,则可以有不同的效果:
program shuchu(input,output);
var a:real;
begin
a:=15/8;
writeln(a); {输出1.8750000000E+00}
wiiteln(a:0:2); {整数部分按实际位数输出,小数部分保留两位小数,末位四舍五入,即输出1.88}
writeln(a:0:0) {只输出整数部分,小数部分四舍五入,即输出2}
end.
4、“writeln;”语句通常用于输出多组数据时在屏幕上输出空行来分隔数据组。
作业
1、看懂教材中的3.1节的7个例题,对照习题解答,看懂教材中习题3的第1、2题。
2、编写程序解决下列问题:
(1)整型变量a,b,c分别等于1、12、123,把它们分别按左对齐和右对齐的方式输出。
(2)输入一个四位整数,把它的各位数字倒序输出(如输入2385,输出5832)。
提示:用前面所学的mod和div运算完成。
(3)从键盘上读入小写的“pascal”,用CHR和ORD函数,输出大写的“PASCAL”。
(4)从键盘上读入一个实数x,利用ROUND和TRUNC函数,输出x、整数部分xz、小数部分xx、四舍五入后的值xs。
参考格式为:输入:57.83,输出:
x=57.83
xz=57
xx=0.83
xs=58。