主题一与算法零距离任务一初识算法算法(Algorithm):就是解决问题的方法和步骤算法初体验案例:华罗庚先生在《统筹方法》一文中曾经描述了这样的场景:想泡壶茶喝,却发现没有开水,水壶要洗,茶壶、茶杯要洗,不过火已经生了,茶叶也有了。分析:已有条件:未洗的水壶、茶壶、茶杯已生火,有茶叶目的:泡茶喝思考:如何设计工作次序才能尽快喝到茶呢?请你试一试。洗水壶烧水洗茶杯拿茶叶洗茶壶泡茶拖动文本框从上到下排列拖动文本框从上到下排列猜数字甲同学在纸条上书写一个1000以内的整数,要求乙同学猜出具体数字。(猜对数字用了多少次?)猜数字算法一、按顺序猜二、随机+记忆猜三、最佳算法为“二分查找法”:猜想数据范围的中间数。任务二算法的表示P6自然语言法流程图表示法伪代码表示法方法一:自然语言法用人们日常使用的语言来描术算法。在学习程序设计的初期或交流算法思想的时候经常使用。用自然语言表示法对“猜数字”游戏中的算法描述如下:(1)根据题意,约定数据区域为[1,1000],先计算区域的中间值,将中间值500作为第一次猜的数字。(2)如果提示信息为“低了”,说明正确解肯定大于猜想值,将数据区域修正为[501,1000];如果提示信息为“高了”,说明正确解肯定小于猜想值,将数据区域修正为[1,499]。(3)计算区域的中间值,将中间值作为一下次猜的数字。(4)应用前面(2)(3)的方法重复进行,直到猜出结果方法二:流程图表示法处理条件判断(流程的控制方向)二分查找法猜数字流程图方法三:为代码表示法伪代码是介于自然语言和计算机程序设计语言之间的种算法描述。猜数字:最小值——1,最大值——1000Repeat(重复)中间值——(最小值+最大值)整除2猜数为中间值获取提示IF“高了”,最大值——中间值-1IF“低了”,最小值——中间值+1IF“正确”,问题求解成功,程序结束案例2一个人带了一只狼、一只羊和一棵白菜想要过河。河上有一条独木船,每次除了人以外,只能带一样东西。另外,如果人不在旁时,狼就要吃羊,羊就要吃白菜。问应该怎样安排渡河,才能做到既把所有东西都带过河,在河上来回的次数又最少?河算法一先带羊到对岸——再空船返回——再带狼到对岸——带羊返回——留羊,带白菜到对岸——空船返回——最后带羊到对岸用计算机实现算法的过程用计算机实现算法能够大大提高解决问题的效率和准确性。用计算机实现算法的过程调试程序程序设计语言的发展电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。程序设计语言的发展计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。VisualCC#高级语言程序设计语言的发展机器语言计算机所能识别的语言只有机器语言,即由0和1构成的代码(二进制代码)。机器语言十进制数二进制数000101210311410051016110711181000程序设计语言的发展汇编语言:汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。汇编语言示例START:INAL,20HMOVBL,ALINAL,30HMOVCL,ALMOVAX,0ADLOP:ADDAL,BLADCAH,0DECCLJNZADLOPHLT程序设计语言的发展高级语言:高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,大大简化了程序中的指令,编程者也就不需要有太多的专业知识。程序设计语言的发展高级语言包括了很多编程语言,如:Basic语言VisualBasicPascal语言DelphiC语言C#VisualC++C++BuilderSQL语言JSPASPPHPJava高级语言示例programGxp3;vard1,d2,x,min:real;beginmin:=10000;x:=3;whilex<15dobegind1:=sqrt(9+(x+3)*(x-3));d2:=sqrt(36+(15-x)*(15-x))if(d1+d2)