第一章如何用计算机解决问题1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工处理,因此,算法的执行过程中通常要有数据的0个
或多个(4输入)和至少一个数据的(5输出)步骤。
例题
1、①S=1 ②S的值加1
③重复步骤②
合 解答:该算法的步骤②将被重复执行无数次,不符 有穷性 的特征
2、①L=10
②输出L/自然数
解答:自然数未指明是哪个数,不符合算法的
的特征
确定性
3、 ①R=2 ②S=3.14*R*R ③输出面积S 说明:该算法中在执行时已包含计算机所需的初始数据, 不必另外提供数据 ,因此没有输入,即有 0个输入 4、 ①输入圆的半径R ②S=3.14*R*R ③输出面积S 说明:该算法中计算面积所需的初始数据半径R待定,需 要在算法执行时,从键盘 多个输入
机器语言
机器码
1000101100 ┄┄ ┄┄
汇编语言
汇编指令 Mov ax, bx ┄┄ ┄┄
高级语言
Basic、 C/C++
算法是“灵魂”
1、算法就是解决问题的方法和步骤,问题不仅仅是数字计算的问题,还存在于人们的生活
当中……
2、同一个问题有不同的求解过程,就有不同的算法。 3、 计算机科学家尼克劳斯.沃斯(N.Wirth)指出,算法是程序设计的灵魂 “算法+数据结构=程序”即(算法不能单独构成程序,它必须与数据结构合二为一)。
初试身手,体验编程
菜 工 单 具 栏 栏
工程管理器 窗体设计器 窗体布局窗口 工 具 箱 属性窗口
代码窗口
界面设计
标签(Label) 文本框(TextBox)
命令按钮(CommandButton)
认识代码窗口
选择对象 选择事件
输入代码
3、保存文件
保存窗体
保存工程
本节小结 : 1)什么是算法? 解决问题的方法和步骤就是算法
初试身手,体验编程
前面讲到的这三种方法(自然语言、流程图、伪代码)只是 能够描述算法,但计算机无法直接识别这些描述。
对于用计算机解决问题而言,描述不是目的,最终还是需要 编写程序代码,实现算法设计,将方法转换为计算机能够识 别的语言,这就需要编程 用于书写计算机程序的语言称为程序设计语言。如vb、c、 c++、pascal等
本节小结 :
2)算法描述的方法有三种。 用自然语言来描述 用流程图来描述
(熟记流程图符号并能够熟练绘制流程图)
用伪代码描述算法
1.下面关于算法的描述,正确的是( ) A.算法不可以用自然语言表示 C.一个算法必须保证它的执行步骤是有限的 2. 下列程序框图中表示处理、计算的是( )
C
B.算法只能用框图来表示 D.一个算法可以有0个或多个输入,0个或多个输出 用流程图表示条件“A>B”是否成立, 要用到以下哪个图形?( B ) A 平行四边形 B 菱形 C 圆角矩形 D 直角矩形
伪代码
优点:用伪代码描述的算法简洁、易懂,修改 起来也比较容易,并且很容易转化为程序语言 代码。 缺点是不够直观,不容易排查逻辑错误。
条件判断: If条件 Then 执行语句一 Else 执行语句二 End If
如何描述算法
例:韩信点兵p4
相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从1~3、1~5、1~7报 数,然后报告各次的余数,这样韩信就凭这些数,可以求得这队士兵的总人数。
什么是程序
计算机的任何动作都是在执行人给它的指令。
人们针对某一需要而为计算机编制的指令序列称为程序。
解决问题或完成任务
什么是程序设计
算法
寻求解决问题的方法,并将其实现步骤编写成计 算机可以执行的程序的过程。 什么是程序设计语言 • 用于书写计算机程序的语言称为程序设计语言。 • 如vb、c、c++、pascal等
第一章 如何用计算机解决问题
如何用计算机解决问题
计算机解决问题的过程
算法描述与设计
初试身手,体验编程
人解决问题的过程
1. 观察、分析问题
2. 收集必要的信息
3. 根据已有的知识、 经验进行判断和推理
4. 尝试按一定的方法和 步骤去解决问题
用计算机来解决问题
日常生活中利用电脑解决各种问题的例子
归纳起来,我们一般使用计算机做以下一些事情:
写一篇文件,我们可以选择多种文字处理软件,如wps、word、写字板、记事本 1、数值计算。嫦娥二号卫星的运行轨迹 等,但是它们有各自的优劣之处;
2、信息处理。搜索引擎的信息搜索 3、实时控制。购买火车票、飞机票 学校财务处要制作一份工资表,工资表中许多数据,我们可以用 4解决; 、辅助设计。汽车、人物模型等 Excel 5、智能模拟。机器人
2、流程图:用一组标准的图形符号来描述算法。
开始
结束
开始/结束符,表示算法的开始或结束;
输入/输出框,用于指出数据的输入或输出;
处理框,用于指出要处理的内容;
判断框,用于指出分支情况,通常, 上面的顶点表示入口,其它顶点表示出口
流程线,表示流程控制方向。
流程图的优点:与自然语言相比,用流程图描述算法形象、直观,更容易理解。
网络上的网页是使用网页制作工具完成的,记事本要输入代码, Frontpage和Dreamweaver可以直接使用可视化工具。
计算机解决问题的过程
1. 分析问题
2. 设计算法
3. 编写程序
4. 运行程序验证结果
用计算机来解决问题
自然语言是不能被计算机执行的
自然语言 程序设计 程序设计语言 思想 编写工具 计算机程序 计算机
算法的特征
算法要有一个清晰的起始步,表示处理问题的起点,且 每一个步骤只能有一个确定的后继步骤(1、算法的确定 性),从而组成一个步骤的有限序列;要有一个终止步 (序列的终止)表示问题得到解决或不能得到解决(2、算
法的有穷性) ;每条规则必须是确定的、可行的(3算法
的可行性)、不能存在二义性。算法总是对数据进行加
5、①输入圆的半径R
②S=3.14*R*R
③C=2*3.14*R ④输出面积S,周长C
算法可能有1个或多个输出 说明:通过前面两个例子可以知道:
6、①X=-2 ②计算X的平方根 说明:X是负数,没有平方根,该算法不可行,不符合算法的 可行性
如何描述算法
例:输入两个数a和b,输出较大的数 1、自然语言:用人们日常使用的语言和数学语言描述的算法。 自然语言描述 ①输入两个数分别赋予a和b②比较a和b的大小③a大,输出a; b大,输出b④结束程序 自然语言的特点:通俗易懂,但缺乏直观性和简洁性,容易产 生歧义。 如:这个人连他都不认识。
BHale Waihona Puke Baidu
A.① B.② C.③ D.④ 3. 当我们找到算法之后,可以使用以下方法来描述算法( ) A.自然语言、流程图、伪代码 B.自然语言、机器语言、伪代码 C.流程图、机器语言、高级语言 D.高级语言、机器语言、伪代码 4. 算法与程序的关系( ) A.算法是对程序的描述 B.算法决定程序,是算法设计的核心 C.算法与程序之间无关系 D.程序决定算法,是算法设计的核心 5. 下列说法错误的是( ) A.算法是程序设计的灵魂,由此可见算法的重要地位。 B.简单的说,算法就是解决问题的方法和步骤。 C.著名的计算机科学家尼克劳斯指出:“算法+数据结构=程序”。 D.一个问题的算法只能用一种程序设计语言实现。
A
B D
1、下列关于算法说法不正确的是( B ) A.算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现。 B.解决问题的过程就是实现算法的过程。 C.算法是程序设计的“灵魂”。 D.描述算法可以有多种表达方法。 2. 下面是关于“剥毛豆”的算法描述:①检查篮中是否有剩余毛豆;②若无,则算法结束;③若 有,将毛豆剥壳,豆粒放入碗中,壳放入垃圾箱;再回到①。该算法的表示方法是( A ) A.自然语言 B.伪代码 C.流程图 D.程序设计语言 3. 图形符号“ ”在算法流程图描述中表示( B )。 A.处理或运算 B.输入或输出 C.判断 D.开始或结束 4. 下列叙述中错误的是( C ) A.程序通常包括指令和数据两大部分 B.设计程序时需要考虑的问题是数据的存储和计算的过程 C.算法的描述不能用自然语言来表示 D.使用计算机解决问题一般要经历分析问题、设计算法、编写程序、调试程序等几个步骤。 5. 算法与程序的关系( B ) A.算法是对程序的描述 B.算法决定程序,是程序设计的核心 C.算法与程序之间无关系 D.程序决定算法,是算法设计的核心
N=1
N被3、5、7整除 余数为2、3、2(N<100)
N=N+1
N
Y
For i=1 to N if n能被3、5、7 整除余数为2、3、2 then 输出n exit for end if next
输出N值 结束
算法的三种模式
顺序、选择和循环三种基本模式 1.顺序模式就是按指令的先后顺序依次执行 2.分支模式就是根据分支条件,判断条件成立情况,选择某一条路径中的指令执行 3.循环模式就是首先判断条件是否成立,如果不成立则直接执行循环体外的第一条指令, 如果条件成立则执行循环体内的指令,然后再次判断条件是否成立,如果条件成立再次执 行循环体内的指令,直至条件不成立跳出循环体为止。
(数据结构是一门专门的课程,主要研究数据之间的关系特点。数据结构的类型会影响算法的选择。)
4、算法是在有限的步骤内求解某一问题所使用的一组定义明确的规则 5、算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。
打电话的流程
拿 起 听 筒 无人接 听 拨 号 通了 忙音 把听 筒放 下 通 话 把听筒 放下 等会儿 再拨 把听筒放 下 等会儿 再拨 结 束
例:输入两个数a和b,输出较大的数
用流程图描述算法 开始
输入a,b
a大于b吗? Y 输出b 结束 N 输出a
3、用伪代码描述算法
伪代码是一种非正式代码,常用自然语言、数学语言和符号来描述算 法的操作步骤。
使用伪代码描述算法没有严格的语法限制,书写格式也比较自由,只 要把意思表达清楚就可以了,它更侧重于对算法本身的描述。 在伪代码描述中,表示关键词的语句一般用英文单词,其他语句可以 用英文语句,也可以用汉语语句。
从1开始,取 出一个自然数判断 它被3、5、7整除后 的余数是否为2、3、 2,如果是,则这个 数即是所求的数, 求解结束。否则, 用下一个数再试, 直到找到这个数为 止。(假设人数 N<100)
开始
1.将N初始值赋为1 2.如果N被3、5、7整 除后的余数分别为2、 3、2,则输出N的值, 转入第4步 3.将N的值加1,转到 第 2步 4.结束程序