内容正文:
编程解决问题
1
目 录
CONTENTS
1
2
3
了解算法
描述算法
编程实现算法
2
某些问题,现有的工具软件无法处理,有时可以通过编写程序来解决。程序实际上就是一个详细的指令清单,告诉计算机该如何做,按什么步骤做。没有程序,计算机什么也做不了。文字处理软件、图像处理软件甚至Windows操作系统,实际上都是由一个个程序构成的。
了解算法
算法在日常生活中也是普遍存在的,做任何事情实际上都有事先设想好的步骤和方法。例如,一个菜谱就是一个算法。炒菜前,厨师必须先设计好做这道菜的“算法”,炒菜的过程就是实现这个“算法”。
大观园
案例1 大扫除问题:学校周末要进行班级卫生评比,老师要求放学后对教室进行大扫除。假定这次大扫除包括准备工具、擦玻璃、擦桌子、扫地、拖地和处理垃圾等工作环节,那么工序该如何安排呢?
图3.5.1大扫除的安排
案例2 渡河问题:2个大人和2个小孩一起渡河,渡口只有一只小船,一次只能渡过1个大人或2个小孩,他们4人都会划船,但都不会游泳,他们该怎样渡河?
图3.5.2渡河问题
案例3 交换问题:有3个你于A,B和C,A,B分别装有雪碧和纯净水,C是一个空杯子。如果要将A,B杯子中的液体进行互换,可以用什么方法呢?步骤是怎样的呢?
图3.5.3交换问题
知识库
1.什么是算法
算法就是解决问题的方法、步骤及策略,设计算法的目的是为了解决问题,算法是程序设计的核心,从“大观园”,的3个案例可以看出,算法在日常生活中普遍存在,做任何事情都需要事先设想好步骤和方法。
当人们去完成许多简单的事情时,似乎不需要任何思考就可以完成,往往感觉不到算法的存在。实际上,在日常生活中做每一件事情都是有算法的,只是有些事情的算法早已经“标准化”了,所以才感觉不到它们的存在。
2.算法的特性
算法是有一定特性的,不满足这些特性的算法往往是没有意义的。
有穷性 一个算法必须保证执行有限步之后结束。不能结束的算法是没有意义的。
确切性 算法中的每一步骤都是确定的、可执行的。
数据输入 一个算法可以有一个或多个输入,也可以没有输入。
信息输出 一个算法有一个或多个输出,以反映对输入做据加工后的结果。没有输出的算法是毫无意义的。
可行性 算法在原则上能够精确运行,人们只需要做有限次运算后即可完成。
描