内容正文:
2.1 解决问题的一般过程
和用计算机解决问题
学习目标
经历用计算机解决问题的基本过程,并能应用于实际问题的解决。
体验编程解决问题的基本方法,提高学习算法与程序的兴趣,发展计算思维。
体验探索
思考:
如何解一元二次方程x2+4x+4=0?
体验探索
两种不同的解题方式
公式法
十字相乘法
通过比较可以看出,两种方式虽然都可以成功求解,但我们采用不同的方式,我们的效率是有区别的。
生活中人们经常会面对各种各样的“问题”,诸如探索自然、了解社会、认识自我等。在解决这些问题的过程中,人们逐渐把握规律,认识真理。解决问题就是要在已知条件和可能的结果之间寻求具体的途径与方法,并应用它们实现目标。通常,解决问题的过程需要经历一系列的思维和实践活动。
人们解决问题的过程通常包括分析问题、寻找解决问题的途径与方法,以及解决问题并验证结果等阶段,如图所示。
分析问题
寻找解决问题的
途径与方法
解决问题并
验证结果
1.解决问题的一般过程
调查、收集与问题相关的资料,明确问题的目标、条件和所涉及的相关知识与规则等,找出已知与未知之间的联系
将待解决的问题与已知条件或已有的规则相关联,设计问题求解的方案,包括具体的途径和方法
要依据确定的求解方法进行问题解决,考查所得到的解答,通过检验答案和评估效果
用计算机解决问题即让计算机按照程序执行指令。人们可以使用已有的程序,也可以根据需要自己编写程序。
2.用计算机解决问题的过程
提
出
问
题
分
析
问
题
设
计
方
案
编
程
调
试
解
决
问
题
2.用计算机解决问题的过程
分析问题
用计算机编程解决问题时,需要对问题进行分析,明确问题的目标和条件等,需要把问题进行抽象,通过建模的方式,界定和描述问题。问题描述的方式并不唯一,有的问题可用数学模型描述,有的问题可用文字、表格或图形等形式描述。
2.用计算机解决问题的过程
设计方案
计算机编程解决问题的设计方案一般包括以下两个环节:
根据需求分析,将问题按照求解过程分解为若干相对独立的功能,每个功能完成一个特定的任务。
针对分解的各个特定功能分别进行详细的操作步骤设计,给出问题求解的具体过程和方法,即进行算法设计。
2.2 算法的概念
2.用计算机解决问题的过程
编程调试
(1)编写程序
编写程序就是利用计算机程序设计语言描述算法,实现问题求解的过程。
(2)调试程序
编写完成的程序,需要进行调试运行。一般,调试程序不仅要发现错误,分析其产生的原因,并进行改正;还要对运行的结果进行分析和验证,判断其是否正确和完整。
机器语言、汇编语言和高级语言
2.计算机程序设计语言
程序设计语言 特点
机器语言 是用二进制数表示的机器码集合,可以被计算机直接执行。
汇编语言 是面向机器的程序设计语言,用"助记符"来代替机器码进行编程。
高级语言 是独立于机器的面向过程或对象的程序设计语言,语法结构接近人类自然语言,便于编写和理解,其表达方式接近于被描述的问题,通用性和可移植性好。
Python、C语言、C++、C#、Java、
visual basic(VB)等
用计算机解一元二次方程
进入下一节的学习
2.2算法的概念及描述
学习目标
描述算法的特征,理解算法在问题解决中的作用。
选用恰当的描述方法和控制结构表示简单算法,增强用算法解决问题的意识。
1.认识算法
算法是为解决一类特定问题而采取的确定的、有限的步骤。它描述出某类问题求解的方法和过程,在整个问题解决过程中起着重要的作用。
1.认识算法
2.描述算法
描述算法
描述算法就是将解决问题的步骤,用一种可理解
的形式表示出来。常用的描述算法的方法有自然语言、
流程图和伪代码等。
2.描述算法
用自然语言描述算法
自然语言指人们日常所用的语言。用自然语言描述算法就是使用人们能读懂的简短语句对算法的步骤进行描述。
2.描述算法
用自然语言描述算法
如何解一元二次方程ax2+bx+c=0?
第一步:确认a,b,c的值;
第二步:计算delta=b2-4ac,判断delta是否大于等于0,是则跳转到第三步;否则跳转到第五步
第三步:判断delta是否等于0,是计算并输出x=-b/2a,否则跳到第四步
第四步:计算x1=(-b+(delta)0.5)/2a,
x2=(-b-(delta)0.5)/2a;
输出x1,x2
第五步:输出“此题无解”
2.描述算法
用流程图描述算法
流程图是一种常用的表示算法的图形化工具。用流程图描述的算法直观易读,问题解决的步骤清晰简洁,算法结构表达明确,很适合初学算法的人员使用。
2.描述算法
流程图常用符号及其功能
流程图符号 名称 功能
开始/结束框 表示算法的开始或结束
输入/输出框 表示输入或输出数据
处理框 框中指出要处理的内容,此框有1个入口和1个出口
判断框 用于表示条件判断及产生分支的情况,判断框有4个顶点,通常上面的顶点表示入口,视需要用另外3个顶点来表示出口
流程线 用于控制流程方向
连接点 用于连接因页面写不下而断开的流程线
2.描述算法
如何解一元二次方程ax2+bx+c=0?
第一步:确认a,b,c的值;
第二步:计算delta=b2-4ac,判断delta是否大于等于0,是则跳转到第三步;否则跳转到第五步
第三步:判断delta是否等于0,是计算并输出x=-b/2a,否则跳到第四步
第四步:计算x1=(-b+(delta)0.5)/2a,
x2=(-b-(delta)0.5)/2a;
输出x1,x2
第五步:输出“此题无解”
2.描述算法
算法结构
算法有顺序结构、选择结构和循环结构三种基本控制结构。
A
B
顺序结构
A
B
条件
True
False
选择结构
条件
A
True
False
循环结构
2.描述算法
顺序结构
每一个步骤按先后次序被执行,即执行处理A,然后执行处理B,如图所示。
A
B
顺序结构
2.描述算法
选择结构
选择结构又称分支结构。根据条件的成立与否,选择执行不同的分支处理,如图所示。当条件成立时(用True表示),执行处理A;当条件不成立时(用False表示),执行处理B.
A
B
条件
True
False
选择结构
2.描述算法
循环结构
当条件成立时,反复执行处理A,一旦条件不成立就立即结束循环,如图所示。
条件
A
True
False
循环结构
2.描述算法
在实际问题解决中,经常会综合使用这三种结构。例如,“如何解一元二次方程ax2+bx+c=0?”的算法可用如图所示的流程图描述。
选择结构
2.描述算法
用伪代码描述算法
用伪代码描述算法就是采用一种类似于程序设计语言的代码来表示算法。伪代码没有固定的、严格的语法规则,只要定义合理,没有矛盾即可。例如“如何解一元二次方程ax2+bx+c=0?”的算法用伪代码可以描述为:
input a,b,c
delta=b*b-4*a*c
if delta≥0
if delta=0
output x=-b/2a
else
x1=(-b+(delta)0.5/2a,
x2=(-b-(delta)0.5/2a
output x1,x2
else
output 无解
2.描述算法
算法描述了问题求解的具体步骤,决定着问题解决的过程。解决同一问题可能会有不同的算法,不同算法求解的过程或有不同。
Thanks!
$$