顺序结构讲义
一、顺序结构程序设计至少由三部分组成。
二、顺序问题解决方案:顺序结构算法设计——使用输入、赋值、输出语句实现算法程序设计——执行程序得到正确结果。
三、变量与常量。(一)变量。1、定义:在程序运行过程中,其值可以改变的量称为变量。2、要素:变量名、变量类型、变量值。3、标识符:变量名也称变量标识符。Pascal语言对标识符有如下规定:(1)定义:标识符是以字母开头的字母、数字序列,可以用来标识常量、变量、程序、函数和过程等;(2)标识符分为标准标识符(Pascal已定义的,具有特殊含义的)和用户自定义标识符(定义时不能与标准标识符相同,最好用英语单词或汉
语拼音)。4、数据:是程序处理的对象,数据的一个非常重要的特征就是它的类型。数据类型不仅确定了该类型数据项的表示形式和取值范围,而且还确定了对它所进行的各种运算。5、Pascal常用的标准数据类型:(1)实型(real):2.9×10-39~1.7×1038;(2)整型(integer):-32768~32767;长整型(longint):-231~231-1;(3)字符型(char):单个字符用一对单引号括起来的数据;字符串(string):一个或一串用一对单引号括起来的数据;(4)布尔型(boolean):值只有true和false。6、变量定义格式:Var <变量标识符>[,<变量标识符>]:<类型>
(二)常量。1、定义:在程序运行过程中,其值不能改变的量称为常量。2、定义格式:const <常量标识符>=<常量>{注意区别}。3、常量说明部分既定义了常量名及其值,还隐含定义了常量类型。
四、赋值语句。1、格式:变量名:=表达式(函数名:=表达式);2、功能:计算表达式的值,并赋值给变量。3、几点说明:(1)赋值语句严格遵从式子左边为变量名,右边为表达式的格式,其意义是先计算表达式的值,然后赋值给变量。(2)“:=”称为赋值号,与数学中的“=”意义不同,赋值语句兼有计算和赋值双重功能。(3)任何一个变量必须首
先赋初值,然后才能使用,否则变量的值将不确定。(4)赋值号“:=”右边表达式值的类型必须与左边的变量类型相同或相兼容。
五、Pascal常用函数库。
Pascal把常用的一些运算定义为系统标准函数,只要在程序中写出某一函数名以及此函数所需的参数,系统就会自动运算得到结果。在使用标准函数时,需要注意如下几点。(1)正确书写标准函数名和提供正确的调用参数。(2)每一个标准函数对自变量的数据类型都有一定的要求(例如要求使用整形,不能使用实型)。(3)函数值的类型也是一定的。
(一)算术运算函数
函数名 | 标识符 | 说明 | 示例 |
绝对值函数 | abs(x) | 取x的绝对值 | abs(-5)=5 |
平方值函数 | sqr(x) | 求x的平方 | sqr(-5)=25 |
平方根值函数 | sqrt(x) | 求x的平方根 | sqrt(25)=5 |
正弦函数 | sin(x) | x为弧度值 | sin(1)=0.845 |
余弦函数 | cos(x) | x为弧度值 | cos(1)=0.540 |
反正切函数 | arctan(x) | 返回值为弧度数 | arctan(1)=0.784 |
自然指数函数 | exp(x) | 求x的自然指数 | Exp(1)=2.718282 |
自然对数函数 | ln(x) | 求x的自然对数 | ln(1)=0 |
随机函数 | random(x) | 随机函数:无自变量时,函数值取(0,1)间的随机小数;x为整型时,取(0,x)之间的随机整数;在调用随机函数之前,应使用randomize过程进行初始化,生成一个随机序列。 | |
(二)算术运算过程
过程名 | 标识符 | 说明 |
加1 | inc(i) | 使i:=i+1 |
加b | inc(i,b) | 使i:=i+b |
减1 | dec(i) | 使i:=i-1 |
减b | dec(i,b) | 使i:=i-b |
(三)转换函数
函数名 | 标识符 | 说明 | 示例 |
取整函数 | int(x) | 返回x的整数部分,结果为实型 | int(123.56)=123 |
取小数函数 | frac(x) | 返回x的小数部分 | frac(123.56)=0.56 |
截尾函数 | trunk(x) | 截取x的整数部分,结果为长整型 | trunk(123.56)=123 |
舍入函数 | b总001round(x) | 对x进行四舍五入,结果为长整型 | round(123.56)=124 |
奇偶函数 | odd(x) | x为奇数时,函数值为true,否则为false | odd(-101)=true odd(256)=false |
序数函数 | ord(x) | 函数值为自变量对应的序号 | ord(‘a’)=97 |
字符函数 | chr(x) | x表示ASCII码值,即字符序号,函数值为对应的字符 | chr(97)= ‘a’ |
大写字母 函数 | upcase(x) | 使小写英文字母x变为大写 | upcase(‘a’)= ‘A’ |
(四)顺序函数
函数名 | 标识符 | 说明 | 示例 |
前趋函数 | pred(x) | 求x的前趋,也就是前一个 | pred(‘y’)=’x’ |
后继函数 | succ(x) | 求x的后继,也就是后一个 | succ(‘y’)=’z’ |
六、表达式。1、定义:是由符合Pascal语法规定的运算符、圆括号和运算对象组成的式子,运算对象包括常量、变量、函数、集合等。根据表达式计算值的类型,表达式又可分为算数表达式、逻辑表达式、字符表达式和集合表达式。
2、算数运算符:加(+)、减(-)、乘(*)、实数除(/)、整数除(div)和取模(mod)等6种。说明:(1)对于+、-、*三种运算,若参加运算的两操作数均为整型,则结果亦为整型;若两操作数中任何一个为实型,则运算结果为实型。(2)实数除(/)无论参加运算的数是整型还是实型,其结果均为实型。(3)整数除(div)求两整数相除的
商的整数部分,要求参加运算的操作数为整型。(4)取模(mod)求两整数相除的余数,要求参加运算的操作数为整型。(5)优先级:圆括号——函数——*、/、div、mod——+、-
3、逻辑运算符:逻辑非(not)、逻辑与(and)、逻辑或(or)、逻辑异或(xor)等4种。
七、输出语句。Pascal的输出语句有两种形式:
write(<输出项表>);
writeln(<输出项表>);或writeln;
说明:(1)<输出项表>是一串用逗号分隔的常量、变量、函数名、表达式或字符串。如果是变量、函数名、表达式,则将其计算结果输出;如果是常量,则直接输出其值;如果是字符串(字符串书写要用单引号括起来),输出单引号内的字符串。(2)write和writeln的区别:write语句是输出项输出后,不换行,光标停留在最后一项后,如果再遇到write语句,则紧跟其后输出;writeln语句按项输出后,自动换行,光标则停留在下一行的开始位
置,如果再遇到write语句,则另起一行输出。(3)writeln语句允许不含有输出项,表示换行。(4)输出格式:writeln(x)或writeln(x:n)或writeln(x:n:m)n表示输出域宽,有域宽按右对齐方式输出,m表示四舍五入后的小数位数,m=0则原数据四舍五入后不输出小数部分和小数点。
八、输入语句。Pascal输入功能由读语句(read和readln)来完成。一般格式为:read(<变量名表>);
readln(<变量名表>);或readln;
说明:(1)变量名表由一个或几个逗号隔开的变量标识符组成,它们必须在程序说明部分预先说明,可以是整型、实型和字符型,布尔型不可以直接读入。(2)在程序运行后执行输入语句时,将从标准输入文件input(键盘、外部文件)中依次读入若干数据,并将输入的数据依次赋给<变量名表>中相应的变量。在没有指明情况下,读入语句默认从键盘读入数据。(3)输入语句输入的数据类型必须和变量一一对应,即类型一致或相容。如果输入的是一串整数或实数,数据间用空格或回车分隔;若输入的是一串字符(对应变量类型为char),则不用分隔。(4)从语法角度讲,输入数据的个数不得少于<变量名表>中变量个
数;从问题的正确性角度讲,输入数据的个数与<变量名表>中变量个数要相一致。(5)readln语句中可以不包含变量名表。当标准输入为键盘时,readln语句常用于暂停程序的运行,并滞留显示结果屏,直到输入一个回车继续程序运行,方便查看程序运行结果。(6)readln语句和read语句不同之处在于读入数据到各变量之后,readln自动换行,从下一行开始再读入数据,一个read语句执行完后,数据行中未读数据可以被下一个读入语句读入,而一个readln语句执行完后,数据行中未读数据就没有用了。
为了避免可能出现的错误,需要注意以下几点:(1)如果没有特殊需要,在一个程序中尽量避免混合使用read语句和readln语句。(2)一个数据行最好对应一个输入语句,数据行的数据个数与输入语句的变量个数及类型相一致。(3)编程时在read或readln语句前适当结合write语句进行提示输入。
九、顺序结构程序设计实例
(一)数字分离。问题描述:小明刚学会1位数字的加法运算,小明妈妈想考核小明的运算能力,于是每次给一个四位整数,让小明求各位数字之和。小明妈妈让你帮她写一个程序,能随机产生一个四位整数,同时给出各位数字之和。这样她能一边做自己的事,一边
考核小明。
输入:随机产生一个四位整数。
输出:产生的整数和各位数字和。
问题分析:(1)random(9000)产生(0,9000)间的随机整数;(2)number:=1000+ random(9000);(3)在调用随机函数之前,应使用randomize过程进行初始化,生成一个随机序列。(4)利用div和mod拆分数位:a:= number mod 10;b:= number div 10 mod 10;c:= number div 100 mod 10;d:= number div 1000;
注:产生区间[A,B]间的随机整数,表达式为:A+ random(B-A+1)
参考程序:
program ×××;
var number,a,b,c,d,s:integer;
begin
randomize;
number:=1000+ random(9000);
a:= number mod 10;
b:= number div 10 mod 10;
c:= number div 100 mod 10;
d:= number div 1000;
s:= a+b+c+d;
writeln(number);
writeln(’s=’,s);
readln;
end.
发布评论