对象是构成幻灯片的基本元素。③此时系统将自动启动Excel,让用户在工作表的单元格中直接输入数据,如图7.7所示,如果更改了工作表中的数据,PowerPoint的图表将自动更新。图7.7插入图表④输入数据后,可以单击Excel窗口右上角的“关闭”按钮,再单击PowerPoint窗口右上角的“最大化”按钮。在PowerPoint中插入表格的操作与Word类似,操作步骤如下:①单击内容占位符上的“插入表格”按钮,出现“插入表格”对话框。......
2023-11-16
算法所具有的确定性、可终止性和可执行性,奠定了用计算机执行算法的基础。但要做到让计算机理解算法,必须解决算法的表示问题。要解决算法的表示问题,第一步需要确定算法的基本元素。所谓算法的基本元素包含两个方面的含义,一个方面是描述算法的基本单词,另一个方面是每个基本单词的语义含义。这就像一种语言由单词和单词的语义两个方面构成一样。
分析算法,我们可以总结出所有算法的基本元素。算法的基本元素主要有以下五类。
1.变量
大多数算法描述的问题求解过程都是高度概括的,适合于求解同类型的各种具体问题的。例如,6.1节讨论的求解两个整数的最大公约数问题的算法,就可以求解任意整数M和整数N的最大公约数。当把该算法用于求解某个具体问题,如求整数48和整数36的最大公约数时,即是要用整数48代表M,用整数36代表N。因此,算法中符号M和符号N是某个具体数值的表示。不仅如此,在算法中,随着算法求解过程的进行,符号M和符号N所代表的数值还可以改变。例如,操作步骤“令M 等于N”后,符号M所代表的数值就发生了改变。我们把算法中代表某个具体数值,并可以改变其数值的符号称作变量。
变量可以用一个或若干个字符符号来表示。例如,在求解两个整数的最大公约数问题的算法中,符号M、N、R就是三个变量。又例如,可以定义符号age为一个表示某个人年龄数值的变量,还可以定义符号sum为表示若干个数值连加和的变量。
2. 赋值
在算法中,赋值是实现给变量赋值,或对变量中的数值进行修改的一种操作。我们用符号ASSIGN表示赋值,赋值语句格式为
ASSIGN name value
或 ASSIGN name valueExpression
前一个赋值语句表示把一个具体的数值value赋给符号名字为name的变量。后一个赋值语句表示把一个表达式valueExpression的运算结果(其值为一个确定的数值)赋给符号名字为name的变量。
例如,若定义age为一个变量,就可以用如下赋值语句把数值20存放在变量age中:
ASSIGN age 20
又如,当要表示某人的年龄要在原来年龄的基础上加一岁时,就可以用如下赋值语句实现:
ASSIGN age age+1
其中,age+1就是一个表达式,当变量age中原来存放的数值是20时,则该表达式的运算结果就是21。该赋值语句执行完后,变量age中的数值就不再是20,而变成了21。
3.分支
在算法描述中,经常要根据不同的情况进行不同的处理。例如,对于一个分段函数,当自变量x满足某种条件时,函数y=f(x)就取某个数学表达式;当自变量x满足另一种条件时,函数y=f(x)就取另一个数学表达式。算法中的这种结构称作分支结构。
设符号IF、THEN和ELSE是算法中表示分支结构的符号,分支语句的格式为:
IF(condition)THEN activityOne
ELSE activityTwo
或 IF(condition)THEN activity
其中,condition表示条件,activityOne表示一种处理方法,activityTwo表示另一种处理方法。前一种语句格式的含义是:当条件condition成立时,执行处理方法activityOne;否则(即条件condition不成立时),执行处理方法activityTwo。前一种语句的执行过程如图6-1(a)所示。后一种语句格式是分支语句的一种简单情况,其含义是:当条件condition成立时,执行处理方法activity;否则,不作任何处理。后一种语句的执行过程如图6-1(b)所示。在分支语句中,一种处理方法既可以是一条语句,也可以是一组语句。
图6-1 分支语句的执行过程
(a)分支类型1;(b)分支类型2
例如,下面例子就描述了x大于0和x小于或等于0两种情况时两个分支的不同处理:
IF(x>0)THEN ASIGN y x+3
ELSE ASIGN y x+5
又例如,下面例子描述了当x大于10时y等于y+1,而当x小于或等于10时不作任何处理的分支处理:
IF(x>10)THEN ASIGN y y+1
分支语句可以嵌套使用,嵌套形式的分支语句可以表示三种或三种以上的不同处理情况。例如,下面例子就描述了当x等于0、x小于0、x大于0三种情况时的分支处理:
IF(x==0)THEN ASIGN y x+3
ELSE
IF(x<0)ASIGN y x+5
ELSE ASIGN y x-5
4.循环
在算法描述中,经常要在满足某种条件的情况下,连续不断地执行某个相同的处理方法。例如,要完成1到100的累加运算,就可以令变量sum初始为数值0,令变量x初始为数值1,然后判断变量x是否小于或等于100,当x小于或等于100时,令变量sum等于sum+x,并且令变量x等于x+1;当x大于100时,结束这种处理过程。算法中的这种结构称作循环结构。
设符号WHILE和DO是算法中表示循环结构的符号,循环语句的格式为
WHILE(condition)DO activity
其中,condition表示条件,activity表示一种处理方法。循环语句的含义是:当条件condition成立时,执行处理方法activity。这里所说的处理方法既可以是一条语句,也可以是一组语句。为了使循环过程在有限步后结束,在处理方法activity中一定要对条件condition作某种改变,并要使这种改变每次都更逼近条件condition不成立。循环语句的执行过程如图6-2所示。
图6-2 循环语句的执行过程
例如,求1到100的累加和问题的算法就可以描述如下:
ASIGN sum 0
ASIGN x 1
WHILE(x<=100)DO
{
ASIGN sum sum+x
ASIGN x x+1
}
上述算法中语句ASIGN sum sum+x完成累加运算,语句ASIGN x x+1既完成变量数值增1,又完成对条件x<=100作某种改变,并使这种改变每次都更逼近条件x<=100不成立。由于上述循环结构的循环体部分有两条语句,所以在书写时要用一对花括号括起来。(www.chuimin.cn)
如果算法中没有对变量x的改变,或没有使这种改变每次都更逼近条件x<=100不成立(若语句为ASIGN x x-1,就不会更逼近条件x<=100不成立),则上述算法就永远不会结束。永远不会满足循环结束条件的循环结构称为死循环。我们知道,算法的定义限制算法必须具有有穷性,所以,算法设计要避免出现死循环。
循环语句也可以嵌套使用,由于嵌套结构的循环语句例子对初学者来说过于复杂,这里我们不做讨论。
5.过程
一个算法可以在许多地方使用,若要把一个算法表示成许多地方都能使用的形式,就需要规定一种固定格式,这就是过程。设符号PROCEDURE是算法中表示过程的符号,过程语句的格式为:
PROCEDURE Name(ParameterList)
{
过程体
}
其中,Name是过程名,一对花括号括起来的部分是过程体。过程体可以是任意语句序列。ParameterList是过程的参数表,一个过程通常有若干个参数,这若干个参数称为该过程的参数表。参数是一个数值未定的变量,这样就可以用一个带参数表的过程表示一个范围很宽的算法。
例如,求1~100的累加和问题的算法是一个使用范围较窄的算法,具体算法如前所述;而求1~n(n为任意的整数)的累加和问题的算法就是一个使用范围较宽的算法,可以把后一个问题表示成带一个参数的过程。求1~n的累加和问题的过程如下:
PROCEDURE Sum1(n)
{
ASIGN sum 0
ASIGN x 1
WHILE(x<=n)DO
{
ASIGN sum sum+x
ASIGN x x+1
}
}
其中,符号Sum1是过程名,n是该过程的参数。
一个过程可以有若干个参数。例如,求n1~n2的累加和问题就可以表示成如下过程:
PROCEDURE Sum2(n1,n2)
{
ASIGN sum 0
ASIGN x n1
WHILE(x<=n2)DO
{
ASIGN sum sum+x
ASIGN x x+1
}
}
其中,符号Sum2是过程名,n1和n2是该过程的两个参数,n1表示要累加的起始数值, n2表示要累加的结束数值。
一个过程也可以没有一个参数。例如,求1~100的累加和问题就可以表示成不带参数的如下过程:
PROCEDURE Sum3
{
ASIGN sum 0
ASIGN x 1
WHILE(x<=100)DO
{
ASIGN sum sum+x
ASIGN x x+1
}
}
其中,符号Sum3是过程名,该过程没有参数。
过程使我们可以把一个复杂问题的大算法表示成若干个简单问题的小的过程模块的合成,这就像我们可以把制造一个汽车的过程,分解成先分别制造发动机、轮胎、车灯等部件,然后再把这些部件组装起来一样。从这个意义上说,过程是构造复杂问题的大算法的小的单元,所以过程也称作单元。另外,过程还有其他名字,如函数、子程序、子例程等,这是不同的高级程序设计语言在实现过程时使用不同术语的缘故。
一个过程既可以调用另一个过程,也可以调用自身过程。我们把过程中存在调用自身过程的过程称为递归过程。我们将在6.4.2节讨论递归过程。
有关计算机导论的文章
对象是构成幻灯片的基本元素。③此时系统将自动启动Excel,让用户在工作表的单元格中直接输入数据,如图7.7所示,如果更改了工作表中的数据,PowerPoint的图表将自动更新。图7.7插入图表④输入数据后,可以单击Excel窗口右上角的“关闭”按钮,再单击PowerPoint窗口右上角的“最大化”按钮。在PowerPoint中插入表格的操作与Word类似,操作步骤如下:①单击内容占位符上的“插入表格”按钮,出现“插入表格”对话框。......
2023-11-16
质数有许多十分复杂的性质,有许多与它们相关的、人们十分耳熟的基本问题还尚未被解决。参考阅读//No. 14 自然数,第32页No. 18 孪生质数猜想,第40页No. 19 哥德巴赫猜想,第42页右图:数论学家们认为,所有整数都可由多个质数相乘得出。......
2023-11-22
while型循环结构是C语言中提供的直到型循环结构,控制结构的一般形式为:图4.2do…while循环控制结构的执行过程如图4.2所示。while循环结构的循环体内必须有能改变循环条件的语句存在。编写程序实现功能:从键盘上输入一个正整数,判断其是否是“回文数”。上面程序中,通过输入数据与其对应的“倒序数”进行比较来判断输入数据是否是“回文数”,在程序中要注意以下几点:①输入数据后需要拷贝一个备份,因为拆分数字会破坏原数。......
2023-11-20
例如,对一维结构体数组的初始化就类似于普通二维数组的初始化,初始化中的注意事项也与二维普通数组初始化时相同或类似。同样也不能将结构体数组元素作为一个整体直接进行输入输出,也需要通过输入输出数组元素的每一个成员分量达到输入输出结构体数组元素的目的。对结构体数组元素操作的唯一例外是可以将结构体数组元素作为一个整体赋给同类型数组的另外一个元素,或赋给一个同类型的结构体变量。结构体数组操作示例。......
2023-11-20
图9.16“代码”视图可单击视图切换工具栏中的按钮,点击右边的三角形按钮,选择设计,如图9.17 所示。图9.18“拆分”视图以下简单介绍常见页面元素操作:在文档的视图中,回车即可产生新的段落
。在面板中,提供一系列按钮,用于向网页中添加常见的页面元素,如图9.19所示。图9.21“Dreamweaver”对话框单击后,将会把图像复制到站点中图像,将插入到文档中,并位于之前光标所在插入点的位置,如图9.22 所示。图9.24“属性”面板......2023-10-19
循环程序是指在程序中有一段程序需要重复执行的一种程序结构。循环程序可以缩短程序,减少程序所占的内存空间。循环控制在程序中还需根据循环计数器的值或其他循环条件,来控制循环是否该结束。假设内循环用两条NOP指令以及一条DJNZ指令,需要4个机器周期。循环24次,需要96个机器周期。显然这是一个双重循环程序。4)多重循环的嵌套,应当注意嵌套的形式。......
2023-11-17
水循环具有下列特征:全球多年平均总蒸发量和全球多年平均总降水量相等。全球总水量为13.86亿km3,而参加水循环的水量只有52.0万km3,参加水循环的水量占全球水量的0.04%,若循环水量略增加一小部分,将使全球水资源利用量大为改观。海陆之间水交换的有效水量只占水循环量的极小部分。海洋输送到陆地上空的水汽只占海洋总蒸发量的8%,而92%的水汽以降水形式落回海洋。不同水体的循环速度相差甚大。大气圈中有52.0万km3水参加全年水循环。......
2023-06-30
若程序框图中同时存在优先级设为实时的VI和定时顺序,将导致无法预计的定时行为。名称是对定时循环的一个标志,一般被作为停止定时循环的输入参数,或者用来标识具有相同的启动时间的定时循环组。定时顺序结构由一个或多个任务子程序框图或帧组成,是根据外部或内部信号时间源定时后顺序执行的结构。定时顺序结构适于开发精确定时、执行反馈、定时特征等动态改变或有多层执行优先级的VI。图5-47 多帧定时循环图5-48 定时顺序结构......
2023-11-26
相关推荐