课程导言
【用流程图描述算法,可以与用户更好地交流。如果需要算法在计算上运行,就需要把算法用编程语言编写为程序。本篇和同学们探讨如何将算法编写为程序。在内容安排上,先和同学们先写出计算长方形面积的算法,然后用伪代码来实现算法。】
如何求长方形的面积,同学们应该都了解了。
如果让计算机来计算长方形的面积,同学们就需要编写程序来实现,编写程序之前,需要先写出计算长方形面积的算法,弄清楚算法的输入、计算过程和输出结果,然后才能编写程序。

下面我们就来讨论计算长方形面积算法的输入、计算过程和输出结果。现在有一块长方形广告牌,同学们计算一下这个广告牌的面积是多少?

同学们很容易算出来长方形广告牌的面积是长乘以宽,列出算式就是:
12 * 5 = 60(平方分米)
现在我们希望编写程序让计算机来计算厂方形的面积,编写程序之前,需要先写出求长方形面积的算法。前面我们已经了解到算法有三个要素,分别是输入、计算过程和输出结果。

计算长方形面积算法的输入
我们还是以计算长方形广告牌的面积为例,来看计算长方形面积算法的输入。长方形面积的计算公式为长乘以宽,因此我们需要知道长方形的长和宽,才能求出长方形的面积。
广告牌的长是12分米,广告牌的宽是5分米,因此广告牌的面积是12乘以5,结果是60平方分米。
由此可以得出,计算长方形面积算法的输入是长方形的长和宽。

关于算法的输入,同学们可能会有一个疑问?

其实,在程序运行的过程中,程序会提示让用户输入算法需要的数据。如在计算长方形面积的算法中,会提示让用户分别输入长方形的长和宽,用户可以通过键盘将长方形的长和宽输入到程序中,程序根据用户的输入来计算长方形的面积。

计算长方形面积算法的计算过程
算法的计算过程就是算法解决问题的执行步骤,算法在执行计算过程之前,要确定已经输入了长方形的长度和宽度。
计算长方形面积算法的计算过程主要有三个步骤:
(1)计算过程的第一步:判断输入的长方形的长度和宽度是否大于0,如果都小于0,执行第二个步骤,否则执行第三个步骤,

(2)计算过程的第二步:提示用户输入的长度和宽度有错误,算法结束;

(3)计算过程的第三步:计算长度和宽度的乘积。

计算长方形面积算法的输出
算法的输出就是输出算法执行完成后的结果。
对计算长方形面积的算法来说,就是输出所求长方形的面积,长方形的长度和宽度在算法的输入中已经得到。

计算长方形面积算法的计算结果可以输出到电脑屏幕,也可以输出到打印机,通过打印机打印出计算结果。当然还有其它输出设备。
计算长方形面积算法的完整步骤包括算法的输入、计算过程和输出,共需要五个步骤:
第一步:输入长方形的长度和宽度;
第二步:判断输入长方形的长度和宽度是否小于等于0,如果长度和宽度小于等于0,执行第三个步骤,否则执行第四个步骤;
第三步:提示用户输入的长度和宽度有错误,算法结束;
第四步:计算长度和宽度的乘积;
第五步:输出长方形的面积。

长方形面积算法的伪代码实现
算法非常简单,五个步骤,如何让计算机执行这个算法呢?我们用伪代码来实现算法。伪代码不是真正的程序代码,但它已经接近程序代码,它是用人类能理解的语言来实现算法的一种语言。
Begin(算法开始)
声明 width、height;
输入 width、height;
IF (width <=0 || height <=0)
{
Print(“长度和宽度输入错误”);
退出程序
}
result = width * height ;
Print(result);
End (算法结束)
伪代码估计同学们都看不懂,我来解释一下。

每段伪代码都是从Begin开始,End结束。Begin和End都是英文单词,Begin在伪代码中表示算法开始的意思,End在伪代码中表示算法结束的意思。

在伪代码中,我们可以把每行的句子称为一条语句,这样算来,这段伪代码共有9条语句,括号占一行的不算。

代码的第2和第3条语句是算法的输入,是算法步骤的第一步。
代码的第4、5、6、7条语句是算法的计算过程,是算法步骤的第2、3、4步。
代码的第8条语句是算法的输出,是算法步骤的第5步。
我们先看算法的输入部分代码。

第2条语句中的width和height是英文单词,中文意思是宽度和高度。在编程语言中,类似于width和height这样的英文单词,称为标识符。
标识符是程序员在编程时使用的名称,每个名称在程序一般都是唯一的,不允许重复。
用于存储数据的标识符又称为变量,变量用于存储用户输入或程序内部产生的数据。如上面代码中的width变量,存储用户输入的长方形的宽度,代码中的height变量,存储用户输入的长方形的长度。关于变量在后面的课程会详细介绍。
代码中的第1条语句声明了两个变量width和height,用于存储长方形的宽度和长度,但此时变量还是空的,不过已经声明要用这两个变量了。
代码中的第3条语句将用户输入的长方形的宽度和长度分别存储到width变量和height变量。

第四行语句用到英文单词IF,IF在英文单词中是如果的意思。如果是假设的意思,既然是假设就要分两种情况了:第一种情况是满足假设的条件,在上面的伪代码中就是height小于0,或者width小于0,这里的“||”是或者的意思。因此只要有一个条件满足,或者height小于0,或者width小于0、或者height和width都小于0,就会执行IF后面大括号内的语句。如果不满足假设,也就是在height和width都大于0的情况下,就不执行IF后面大括号内的语句。

我们来分析伪代码的第五条语句,这条语句的内容是在Print单词后面跟着一对小括号,小括号里面的内容是用双引号括起来的字符串。字符串就是是由多个字符组成的词或句子。如果同学们不了解Print单词的意思,我们可以百度一下,Print最直接的意思就是打印。那么我们就明白这条语句的意思了,Print就是把小括号内的字符串打印到计算机屏幕上。

伪代码的第六条语句是退出程序,我们知道程序既然是算法的实现,算法结束后,程序自然就结束了。但是我们要注意,这个退出程序是不正常的退出,因为算法过程没有结束,只是出了问题,算法没法往下执行了,所以要退出。

伪代码的第七条语句是一个算式,同学们一定会说这是一个乘法算式。对,它确实是乘法算式,只是这个乘法算式中的乘数和被乘数不是数而是变量名称,前面我们已经说过了,可以把变量看成是可以表示数字的字母或字符串,这个字母或字符串就是变量的名称,每个变量都表示一个数。例如height表示数5,width表示数6,那么height*width的结果是30,30再赋值给result变量,这里的=就是赋值的意思,就是把数30和result变量关联起来,在这里result就是30,当然如果我们把50赋值给result,result表示的数就是50。


伪代码的第八条语句也是Print语句,这个Print语句是打印result表示的数到计算机屏幕,不是打印result这个字符串到计算机屏幕。

课程小结
因此要让计算机执行算法,就必须要把算法用编程语言编写出来,如Java语言。伪代码是一种算法描述语言,可以很容易地转换为编程语言,如Java、Python语言等。可见,程序是算法的实现,算法通过某一种编程语言实现后,就是程序。
思考与练习
如果要编写一个求两数和的算法,需要用到几个变量?算法步骤你该如何写呢?并绘制流程图。