版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第一章第一章 如何用计算机解决问题如何用计算机解决问题1.1 计算机解决问题的过程1.1 计算机解决问题的过程计算机解决问题的过程程序设计程序设计语言语言软件软件程序程序设计设计程序程序什么是程序程序 计算机的任何动作都是在执行人给它的指令指令。 人们针对某一需要而为计算机编制的指令序列称为程序程序。解决问题或完成任务什么是程序设计程序设计 寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。过程。程序设计语言程序设计语言 用于书写计算机程序的语言称为程序程序设计语言。设计语言。 如vb、c、c+、pascal等程序设计语言的发展程序设计语言的发展 程序设计语言发展经历了机器
2、语言机器语言、汇编语言汇编语言和高级语言高级语言的过程。书本P11。 机器语言机器语言是用“0”和“1”二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,执行速度快但是非常难于记忆和识别。它是第一代的计算机语言。机器语言对不同型号的计算机来说一般是不同的。程序设计语言的发展程序设计语言的发展 汇编语言汇编语言(符号语言) 是用一些简洁的英文字母、符号串来替代一个特定的指令中的二进制串。 汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序(例如可直接访问与硬件相关的存储器或I/O端口)。 缺点:汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识
3、。程序设计语言的发展程序设计语言的发展 高级语言高级语言: 机器语言和汇编语言是面向机器的语言,高级语言采用更接近自然语言的命令或语句。使用高级语言编程,一般不必了解计算机的指令系统和硬件结构,只需掌握解题方法和高级语言的语法规则,就可以编写程序。 例如:c,c+,pascal, Java 高级语言高级语言 用高级语言编制的源程序计算机无法识别,必须通过转换转换为机器语言才能被计算机执行。转换方式有编译方式和解释方式两种。高级语言高级语言1.编译方式:编译方式:源程序的执行分两步:编译和运行。即先通过一个存放在计算机内的编译程序,把源程序全部翻译成一段机器语言目标程序代码,然后计算机再运行此目
4、标代码,以完成源程序要处理的运算任务并取得结果。2.解释方式解释方式:源程序输入到计算机后,解释程序将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序。 高级语言的优点高级语言的优点 1.高级语言接近自然语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作; 2.高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高 ; 3.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高 ; 4.由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以
5、集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。高级语言的优点高级语言的优点小结小结 程序设计语言的发展过程 机器语言 汇编语言 高级语言人是如何解决问题的人是如何解决问题的 例子: 我国汉代有一位大将,名叫韩信。他每次集合部队,都要求部下报三次数,第一次按13报数,第二次按15报数,第三次按17报数,每次报数后都要求最后一个人报告他报的数是几,这样韩信就知道一共到了多少人 。他的这种巧妙算法,人们称为“鬼谷算”、 “隔墙算”、“秦王暗点兵”等。 中国有一本数学古书孙子算经也有类似的问题:今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?书本P
6、4。分析问题分析问题 求满足以下条件的最小正整数(在100以内查询) 1、被3除余2 2、被5除余3 3、被7除余2人是如何解决问题的人是如何解决问题的解决问题解决问题 算法算法1 1: 从1开始,取出一个自然数判断它被3、5、7整除后的余数是否为2、3、2,如果是,则这个数即是所求的数,求解结束。否则,用下一个数再试,直到找到这个数为止。人是如何解决问题的人是如何解决问题的 金庸先生曾在作品射雕英雄传引用过此段。 引文射雕英雄传第三十一回 瑛姑待她写出最后一项答数,不由得叹道:“这中间果然机妙无穷。”顿了顿,说道:“这第三道题呢,说易是十分容易,说难却又难到了极处。今有物不知其数,三三数之剩
7、二,五五数之剩三,七七数之剩二,问物几?我知道这是二十三,不过那是硬凑出来的,要列一个每数皆可通用的算式,却是想破了脑袋也想不出。” 黄蓉笑道:“这容易得紧。以三三数之,余数乘以七十;五五数之,余数乘以二十一;七七数之,余数乘十五。三者相加,如不大于一百零五,即为答数;否则须减去一百零五或其倍数。”瑛姑在心中盘算了一遍,果然丝毫不错,低声记诵道:“三三数之,余数乘以七十;五五数之”黄蓉道:“也不用这般硬记,我念一首诗给你听,那就容易记了:三人同行七十稀,五树梅花廿一枝,七子团圆正半月,余百零五便得知。” 这首诗的意思是:用这首诗的意思是:用3 3除所得的余数乘上除所得的余数乘上7070,加上用
8、加上用5 5除所得余数乘以除所得余数乘以2121,再加上用,再加上用7 7除所除所得的余数乘上得的余数乘上1515,结果大于,结果大于105105就减去就减去105105的的倍数,这样就知道所求的数了。倍数,这样就知道所求的数了。 解决问题解决问题 算法2: 1.先找出能被5和7整除而被3除余1的数70; 2.再找出能被3和7整除而被5除余1的数21; 3.最后找出能被3和5整除而被7除余1的数15; 4.求出3、5和7的最小公倍数是105; 5.应用公式计算 702+213+152 105k 即:当总数在100以内时为 702+213+1521052人解决问题的一般过程人解决问题的一般过程
9、观察问题分析问题脑中收集信息根据已有的知识、经验判断、推理采用方法和步骤解决 简单地概括简单地概括 明确问题 提出假设 验证假设计算机解决问题的过程计算机解决问题的过程 书本P3图1-2 人类解决问题和计算机解决问题的区别?书本P3小结小结 1、计算机如何解决问题。 2、人类解决问题和计算机解决问题的异同点。 第一章第一章 如何用计算机解决问题如何用计算机解决问题1.2 算法描述与设计1.2 算法描述与设计算法描述与设计 世界上最早的算法。书本P5 什么是算法? 算法是解决问题的方法和步骤算法是解决问题的方法和步骤。 解决问题的过程就是实现算法的过程。1.2.1 算法是算法是“灵魂灵魂” 著名
10、的计算机科学家尼克劳斯沃思指出 算法+数据结构=程序 数据结构是一门专门的课程,主要研究数据之间的关系特点。数据结构的类型会影响算法的选择。 算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。 算法不能单独构成程序,它必须和数据结构合二为一。 “韩信点兵问题”有不同的求解过程,就有不同的算法。1.2.1 算法是算法是“灵魂灵魂” 算法不仅仅用来解决数字计算的问题,还存在于人们的生活当中打电话的流程打电话的流程 计算机在解决问题的过程中需要用到的算法,不计算机在解决问题的过程中需要用到的算法,不但要解决数字计算的问题,还要对各种情况进行但要解决数字计算的问题,还要对各种情况
11、进行判断,对人机交互进行处理。判断,对人机交互进行处理。拿拿起起听听筒筒拨拨号号忙音忙音通了通了把听把听筒放筒放下下通通话话结结束束把听筒放把听筒放下下等会儿等会儿再拨再拨无人接无人接听听把听筒把听筒放下放下等会儿等会儿再拨再拨1.2.1 算法是算法是“灵魂灵魂” 算法是在有限步骤内求解某一问题所算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。使用的一组定义明确的规则。就是计就是计算机解题的过程算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。 算法具有什么特征?1.2.1 算法是算法是“灵魂灵魂” 例:计算
12、1+2+3+100=?书本P6 分析:这个算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性有穷性。计算此算法可以用纸笔、算盘、计算器和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行可行性、确定性性、确定性。 计算方法: 把这100个数按顺序相加。 用凑数法:1+99=100,2+98=100,3+97=100,49+51,最后只剩下50和100。 计算机计算法:迭代法。 算法的另外两个特征:输入、输出输入、输出。算法的特征算法的特征 一个算法应该具有以下五个重要的特征: 书本P5 1、有穷性: 一个算法必须保证执行有限步之后结束; 2、确定性: 算法的每一
13、步骤必须有确切的定义; 3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况; 4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成 1.2.2 描述算法的方法描述算法的方法 1、自然语言:即用人们日常使用的语言和数学语言描述的算法。韩信点兵算法韩信点兵算法1 从1开始,取出一个自然数判断它被3、5、7整除后的余数是否为2、3、2,如果是,则这个数即是所求的数,求解结束。否则,用下一个数再试,直到找到这个数为止。(假设人数i100)自然语言描述自然语言描述 1、将i
14、的初始值赋为1 2、如果i100并且i被3、5、7整除后余数为2、3、2,则输出i的值,转入第4步 3、将i的值加1,转到第2步 4、结束程序 自然语言的特点:通俗易懂,但缺乏自然语言的特点:通俗易懂,但缺乏直观性和简洁性,容易产生歧义。直观性和简洁性,容易产生歧义。书书本本P7。 如:这个人连他都不认识。如:这个人连他都不认识。描述算法的方法描述算法的方法 2、流程图:即用一组标准的图形符号来描述算法。 用流程图描述算法用流程图描述算法开始开始结束结束开始开始/结束符,表示算法的开始或结束;结束符,表示算法的开始或结束;输入输入/输出框输出框,用于指出数据的输入或输出用于指出数据的输入或输出
15、;处理框,用于指出要处理的内容;处理框,用于指出要处理的内容;判断框,用于指出分支情况,通常,判断框,用于指出分支情况,通常,上面的顶点表示入口,其它顶点表示出口上面的顶点表示入口,其它顶点表示出口流程线,表示流程控制方向。流程线,表示流程控制方向。用流程图描述算法用流程图描述算法流程图描述流程图描述开始开始i被被3、5、7整除整除余数为余数为2、3、2(i100)i=i+1结束结束NY输出输出i值值i=1i=1 流程图的特点:与自然语言相比,用流程图描述算法形象、直观,更容易理解。书本P7。描述算法的方法描述算法的方法 3 、伪代码:伪代码是一种非正式代码,常用自然语言、数学语言和符号来描述
16、算法的操作步骤。用伪代码描述算法用伪代码描述算法For i=1 to 100 If i能被3、5、7整除余数为2、3、2 Then 输出i Exit For End IfNext i用伪代码描述算法用伪代码描述算法 使用伪代码描述算法没有严格的语法限制,使用伪代码描述算法没有严格的语法限制,书写格式也比较自由,只要把意思表达清楚书写格式也比较自由,只要把意思表达清楚就可以了,它更侧重于对算法本身的描述。就可以了,它更侧重于对算法本身的描述。 在伪代码描述中,表示关键词的语句一般用在伪代码描述中,表示关键词的语句一般用英文单词,其他语句可以用英文语句,也可英文单词,其他语句可以用英文语句,也可以用汉语语句。以用汉语语句。 阅读分析书本阅读分析书本P8:判断一个四位数的年份是:判断一个四位数的年份是否为闰年。否为闰年。 伪代码的特点:用伪代码描述的算法简洁、易懂,修改起来也比较容易,并且很容易转化为程序语言代码。缺点是不够直观,不容易排查逻辑错误。书本P9。小结小结1 1、什么是算法?、什么是算法?解决问题的方法和步骤就是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学品安全事故教育课件
- 2026年护理管理者团队建设与高效协作策略
- 2026年产科妊娠期高血压疾病护理干预指南
- 《GB 4706.27-2008家用和类似用途电器的安全 第2部分:风扇的特殊要求》专题研究报告
- 2026年儿科先天性肾上腺转移瘤护理
- 健身房会籍转让协议(2026年转卡条款)
- 化妆班培训教学课件
- 2026雅培(中国)招聘面试题及答案
- 偏(均)三甲苯装置操作工节假日后复工安全考核试卷含答案
- 烧结球团原料工节假日后复工安全考核试卷含答案
- 退役军人之家管理制度
- 保安证考试应试宝典及试题答案
- 630KVA箱变安装工程施工设计方案
- 四川省绵阳市涪城区2024-2025学年九年级上学期1月期末历史试卷(含答案)
- 儿童故事绘本愚公移山课件模板
- IIT临床研究培训
- 空调机组售后服务承诺及人员培训计划
- GB/T 5169.13-2024电工电子产品着火危险试验第13部分:灼热丝/热丝基本试验方法材料的灼热丝起燃温度(GWIT)试验方法
- 中国驴肉行业竞争格局及发展前景预测研究报告(2024-2030)
- 财务负责人信息表
- crtd植入术护理查房
评论
0/150
提交评论