第三章分支语句和编程设计

在前面的章节中,我们编写了几个完整的MATLAB程序。但是这些程序都十分简单,包括一系列的MATLAB语句,这些语句按照固定的顺序一条接一条地执行。像这样的程序我们称之顺序结构程序。它首先读取输入,然后运算得到所需结果,打印出结果,并退出。至于要多次重复运算程序的某些部分是没有办法的,也不能根据输入的值,有选择地执行程序的某些部分。在下面的两章中,我们将向大家介绍大量的MATLAB语句,这些语句允许我们来控制语句的执行顺序。有两大类控制顺序结构:选择结构,用选择执行特定的语句;循环结构,用于重复执行特定部分的代码。选择结构将会本章讨论,循环结构我们将会在第四章讨论。随着选择和循环介绍,我们的程序也将变得复杂,对于解决问题来说,将会变得简单。为了帮助大家避免在编程过程中出现大量的错误,我们将向大家介绍正式的编程步骤,即自上而下的编程方法。我们也会向大家介绍一些普通的算法开发工具即伪代码。

3.1 自上而下的编程方法简介

假设你是在工厂工作的工程师,为了解决某些问题,你要编写一个程序。你如何开始呢?当遇到一个新问题时,我们的心里会自然而然地产生这样的想法:马上坐在计算机前,开始编程,而不用浪费大量的时间思考我们所要解决的问题是什么?用这种不切实际的想法来编一些非常小的程序可能会成功。但在现实中,问题可能会非常的大,程序员再用这种方法编程将会陷入困境。对于一个大的程序来说,在编写代码之前你要通盘地思考你所要面临的问题和解决的方法。在本节中,我们将向大家介绍正式的编程设计步骤,然后应用这个步骤来编写本书所有的大的应用程序。对于我们所遇到一些简单的例子来说,这个步骤好像有些画蛇添足。但是当我们解决的问题变得越来越大的时候,这个步骤将会变得异常重要。当我还没有毕业的时候,一个教授喜欢说:“编程很简单,因为我知道在编程的过程的困难”。当我们离开学校,在工厂从事于大规模软件工程编写时,我深深地理解了他所说的话。我发现在工作中我遇到的大多数困难都是对所要解决问题的理解。一旦你真正理解了问题,你就会把这个问题分解成许多小的问题,更加易于管理的小块,然后逐一解决某一个小块。自上而下的编程方法是我们正规编程设计的基础。我们现在向大家介绍这些在图3.1说明的步骤细节。步骤如下:

  1. 清晰地陈述你所要解决的问题

编写的程序大多数情况下要满足一些感觉上的需要,但这种需要不一定能够被人清晰地表达出来。用户需要一个解线性方程组的表达式。像这样的要求就不够清楚,程序员就很难编出一个使他满意的程序。他必须弄清楚要有多少问题需要解决?在这些方程式中有没有对称的形式使我们的开发变得简单?程序设计者必须和使用者讨论所需的程序,他们必须要对完成的任务有一个精确细致的描述。对问题清晰的描述可以防止误解,并且能够帮助程序员合理地组织他的思想。上面的例子对问题合适的陈述应为:设计一个用于解决联立线性方程组的程序,这些方程中未知数的系数为实数,最多有20个未知数。

  1. 定义程序所需的输入量和程序所产生的输出量

指定输入量和输出量,只有这样新的程序才能适应全过程计划。在这个例子中方程式的系数可能有其预先存在的顺序,我们的新程序必须能按照顺序读取它们。相似地,也需要产生出这个程序所要求的结果,即输出量,我们还要以一定的格式打印出来。

  1. 设计你的程序得以实现的算法

要深入了解MATLAB的选择结构,你可以参考MATLAB选择结构。同时,如果你对选择结构和循环结构的程序设计有兴趣,可以查看选择结构与循环结构程序设计。对于更详细的Java基础知识和应用,你可以访问Java基础之选择结构与循环结构

那么,我们在设计程序时,究竟应该如何选择和应用这些控制结构呢?每一种结构都有其独特的优点和应用场景,关键在于理解其核心原理并灵活运用。未来的章节中,我们将一步步揭示这些奥秘,助你在编程的世界中游刃有余!