第一章 如何用计算机解决问题
如何用计算机解决问题
计算机解决问题的过程
算法描述与设计
初试身手,体验编程
人解决问题的过程
1. 观察、分析问题
2. 收集必要的信息
3. 根据已有的知识、经验进行判断和推理
4. 尝试按一定的方法和步骤去解决问题
用计算机来解决问题
日常生活中利用电脑解决各种问题的例子
写一篇文件,我们可以选择多种文字处理软件,如wps、word、写字板、记事本等,但是它们有各自的优劣之处;
学校财务处要制作一份工资表,工资表中许多数据,我们可以用
Excel解决;
网络上的网页是使用网页制作工具完成的,记事本要输入代码,
Frontpage和Dreamweaver可以直接使用可视化工具。
那我们为什么还要学习编程来解决问题呢?
归纳起来,我们一般使用计算机做以下一些事情:
1、数值计算。嫦娥二号卫星的运行轨迹
2、信息处理。搜索引擎的信息搜索
3、实时控制。购买火车票、飞机票
4、辅助设计。汽车、人物模型等
5、智能模拟。机器人
用计算机来解决问题
自然语言是不能被计算机执行的
自然语言 计算机程序 计算机
程序设计 思想
程序设计语言 编写工具
机器语言
机器码
1000101100
┄┄
┄┄
汇编语言
汇编指令
Mov ax, bx
┄┄
┄┄
高级语言
Basic、C/C++
计算机解决问题的过程
1. 分析问题
2. 设计算法
3. 编写程序
4. 运行程序验证结果
程序设计(program Design)就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序。
算法是“灵魂”
1、算法存在于人们的生活中,如:上街购物、顾客付款、营业员找银等
2、同一个问题有不同的求解过程,就有不同的算法。
3、算法——解决问题的方法和步骤
——算法是尼克劳斯.沃斯(N.Wirth)提出的,他指出
“算法+数据结构=程序”
即(算法不能单独构成程序,它必须与数据结构合二为一)。
4、算法是在有限的步骤内求解某一问题所使用的一组定义明确的规则
算法的特征
算法要有一个清晰的起始步,表示处理问题的起点,且每一个步骤只能有一个确定的后继步骤(1、算法的确定性),从而组成一个步骤的有限序列(2、算法的有穷性);要有一个终止步(序列的终止)表示问题得到解决或不能得到解决;每条规则必须是确定的、可行的(3算法的可行性)、不能存在二义性。算法总是对数据进行加工处理,因此,算法的执行过程中通常要有数据的0个或多个(4输入)和至少一个数据的(5输出)步骤。
例题
1、①S=1
②S的值加1
③重复步骤②
解答:该算法的步骤②将被重复执行无数次,不符合 的特征
2、 ①L=10
②输出L/自然数
解答:自然数未指明是哪个数,不符合算法的 的特征
有穷性
确定性
3、 ①R=2
②S=3.14*R*R
③输出面积S
说明:该算法中在执行时已包含计算机所需的初始数据,不必另外提供数据 ,因此没有输入,即有
4、 ①输入圆的半径R
②S=3.14*R*R
③输出面积S
说明:该算法中计算面积所需的初始数据半径R待定,需要在算法执行时,从键盘
0个输入
多个输入
5、①输入圆的半径R
②S=3.14*R*R
③C=2*3.14*R
④输出面积S,周长C
说明:通过前面两个例子可以知道:
6、①X=-2
②计算X的平方根
说明:X是负数,没有平方根,该算法不可行,不符合算法的
算法可能有1个或多个输出
可行性
如何描述算法
例:输入两个数a和b,输出较大的数
1、自然语言:用人们日常使用的语言和数学语言描述的算法。
自然语言描述
①输入两个数分别赋予a和b②比较a和b的大小③a大,输出a;b大,输出b④结束程序
自然语言的特点:通俗易懂,但缺乏直观性和简洁性,容易产生歧义。
如:这个人连他都不认识。
2、流程图:用一组标准的图形符号来描述算法。
开始
结束
开始/结束符,表示算法的开始或结束;
输入/输出框,用于指出数据的输入或输出;
处理框,用于指出要处理的内容