我们通过以前的学习,了解了C语言的特点,看到了简单的C语言程序。现在咱们开始从程序的内容方面进行学习,也就一个程序中应该包含什么信息。或者说,为了实现解题的要求,程序应该向计算机发送什么信息。 一个程序主要包括以两方面的信息: (1)对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式。这就一个新的名词:数据结构(在以后得学习中我们会接触到)。 (2)对数据的描述。即要求计算机进行操作的步骤也就是算法。 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。举个例子: 厨师做菜,需要有菜谱,菜谱上一般会说明①所需要的配料,即指出为了做出指定的菜,应该使用说明原料②操作步骤,即说明了用这些原料,应该按照什么样的顺序进行加工,才能做出想要的菜。 巧妇难为无米之炊,没有原料是无法加工出想要的菜的,而对同样的原料进行不同顺序的加工,就能得到不同味道的菜。做程序也是一样,要想让计算机跟着自己的思路走,完成想要的功能,就得认真考虑和设计数据结构和操作步骤(也就是算法)。 一.什么是算法 引用官方的解释就是 “算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。”。 比较通俗的解释就是:一件事件的预先规划好的步骤。 二.算法的特性 (1)有穷性 (2)确定性 (3)有零个或是多个输入 (4)有一个或是多个输出 (5)有效性 三.怎样表示一个算法 (1)用自然语言表示算法 所谓自然语言,就是人们日常使用的语言,可以是韩语、英语或是其他语言。用自然语言表示的算法,通俗易懂,但是由于是文字表示,内容会冗长,而且会出现歧义。含义也不太严格。因此,除了那些简单的问题以外,一般不用自然语言表示算法。 (2)用流程图进行表示 流程图就是用一些图框来表示各种操作。优点是直观形象,易于理解。如下图: 这就是一个简单的流程图,显示了取钱的时候的基本步骤。看起来就十分的清晰明了。 下图就是在流程图中常用到的符号: 文章末尾,分享一则锻炼推理能力的思考题吧: 【思考题】 史密斯夫妇邀请另外四对夫妇就餐,已知他们每个人都不和自己握手,不和自己的配偶握手,且不 和同一个人握手一次以上。在大家见面握手寒暄后,史密斯问大家握手了几次,每个人的答案都不一样。 问:史密斯太太握手几次? 有思路的大神可以把自己的思路分享出来。或许会碰撞出思维的火花呢? 【答案见下期】 |
|
来自: thchen0103 > 《04.01-04.30》