第一章如何用计算机解决问题一、课题引入:解方程试题6x2+5x-50=01.1计算机解决问题的过程二、人解决问题的一般过程。观察、分析问题收集必要的信息解决问题判断、推理根据已有的知识、经验按照一定的方法和步骤问:请同学们思考,你打算利用计算机如何来完成这个任务呢?利用计算机求解方程:6x2+5x-50=0三、计算机解决问题6x2+5x-50=0解决步骤第一步:分析问题观察各项系数之间的关系,确定用公式法求解第二步:用自然语言描述计算方法step1、令a为6,b为5,c为-50。Step2、令d为b2-4acstep3、如果d大于或等于0则输出X1,x1为,X2,x2为,转到step4。否则输出方程无解,转到step4。step4、结束程序。算法:简单地说,算法就是解决问题的方法和步骤。242bbaca242bbaca第三步:将算法编写成计算机程序原因:计算机读不懂算法,必须翻译成计算机的语言,这就是程序设计语言。一元二次方程求解程序:step1、令a为6,b为5,c为-50。Step2、令d为b2-4acstep3、如果d大于或等于0则输出X1,x1为,X2,x2为,转到step4。否则输出方程无解,转到step4。step4、结束程序。242bbaca242bbacaa=6b=5c=-50d=b^2-4*a*cIfd=0thenx1=(-b+sqr(d))/(2*a)Elseprint“方程无解”Endifx2=(-b-sqr(d))/(2*a)Printx1,x2DimaAsSingle,bAsSingle,cAsSingle,dAsSingle,X1AsSingle,X2AsSinglea=6,b=5,c=-50d=b^2-4*a*cIfd=0ThenX1=(-b+Sqr(d))/(2*a)X2=(-b-Sqr(d))/(2*a)PrintX1,X2ElsePrint方程无解EndIf第四步:运行、调试程序,检验结果。第五步:问题得到解决总结:计算机解决问题流程图人机“问题解决”对比相同点不同点人类解决问题用计算机解决问题计算速度精确度自动化分析问题、设计算法、得出结果等计算速度比较慢计算速度比较快精确度不高,易出错编写程序、调试程序、运算速度快具有一定的自动化不具有自动化解决问题1.2算法描述与设计算法的概念算法就是解决问题的方法和步骤。算法的重要性同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。算法在程序设计中的地位算法+数据结构=程序(尼克劳斯.沃思)算法是程序设计的“灵魂”。算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。•算法的特征1.有穷性:一个算法必须保证执行有限步骤之后结束。2.确定性:算法的每一步骤必须有确切的含义。3.可行性:算法的每一步骤都能有效地执行,并得到确定的结果。4.输入:有0个或多个输入。5.输出:有1个或多个输出,没有输出的算法毫无意义。•算法的描述1、用自然语言来描述。2、用流程图来描述。3、用伪代码描述算法。1、用自然语言来描述。什么是自然语言?人们日常生活中使用的语言第一步:运羊过河,回来第二步:运菜过河,并运羊回来第三步:运狼过河,回来第四步:运羊过河通俗易懂,但缺乏直观性,不简洁,且易产生歧义。2、用流程图来描述也称程序框图,它是算法的一种图形化表示方法。什么是流程图?直观易懂、逻辑关系清晰,不容易产生歧义。起止框表示一个算法的开始或结束算法的流程图表示输入、输出框框内标明输入、输出的内容算法的流程图表示处理框框内标明所进行的处理算法的流程图表示判别框框内标明条件,并在框外标明判定后的两种结果的流向。算法的流程图表示流程线表示从某一框到另一框的流向算法的流程图表示连接点表示算法流向出口或入口连接点同一出口入口点的连接圈内,必须标以相同的符号。算法的流程图表示流程图中的符号的用途图形符号符号名称说明流线起始、终止框表示算法的开始或结束开始框:一流出线结束框:一流入线输入、输出框框中标明输入输出的内容只有一流入线和一流出线处理框框中标明进行什么处理只有一流入线和一流出线判断框框中标明判定条件并在框外标明判定后的两种结果的流向一流入线两流出线(T和F)流线表示从某一框到另一框的程序运行流向连接点表示算法流向出口或入口连接点一条流线3、用伪代码来描述伪代码是介于自然语言和计算机语言之间的一种算法描述,在伪代码描述中,关键词一般用英文单词.什么是伪代码?简单、易懂,容易修改,且容易转化为程序语言代码。1.3初试身手体验编程对于用计算机解决问题而言,设计算法、描述算法不是最终目的,最终目的是编写程序代码,实现算法设计。下面就让我们用visualbasic程序开发工具尝试编写一段小程序,实现“桌面小时钟问题”的算法,然后请同学们通过自主学习,认识一下有关程序设计方面的知识。VisualBasic介绍vb是VisualBasic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。工具箱工程资源管理器属性窗口窗体布局对象窗口代码窗口•程序设计语言1.发展过程机器语言:由一串“0”和“1”构成二进制代码。汇编语言:是一种符号化(英文助记符)的机器语言。高级语言:如Basic、C/C++、Fortran、Pascal、Cobol、Java等。2.分类(按转换方式不同分类)编译型语言和解释型语言1)编辑程序包含内容:一是将源程序逐个字符输入到计算机内存,二是修改源程序,三将修改好的源程序保存在磁盘文件中。2)编译程序:将已编辑好的源程序(已存储在磁盘文件中)翻译成二进制的目标代码。3)连接:将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有有绝对地址的可执行文件,它是计算机直接执行的文件。