版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章
如何用计算机解决问题1.1
计算机解决问题的过程1.1
计算机解决问题的过程程序设计语言软件程序设计程序什么是程序
计算机的任何动作都是在执行人给它的指令。人们针对某一需要而为计算机编制的指令序列称为程序。解决问题或完成任务什么是程序设计
寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。程序设计语言用于书写计算机程序的语言称为程序设计语言。如vb、c、c++、pascal等程序设计语言的发展程序设计语言发展经历了机器语言、汇编语言和高级语言的过程。书本P11。机器语言是用“0”和“1”二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,执行速度快但是非常难于记忆和识别。它是第一代的计算机语言。机器语言对不同型号的计算机来说一般是不同的。程序设计语言的发展汇编语言(符号语言)是用一些简洁的英文字母、符号串来替代一个特定的指令中的二进制串。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序(例如可直接访问与硬件相关的存储器或I/O端口)。缺点:汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。程序设计语言的发展高级语言:机器语言和汇编语言是面向机器的语言,高级语言采用更接近自然语言的命令或语句。使用高级语言编程,一般不必了解计算机的指令系统和硬件结构,只需掌握解题方法和高级语言的语法规则,就可以编写程序。例如:c,c++,pascal,Java……高级语言
用高级语言编制的源程序计算机无法识别,必须通过转换为机器语言才能被计算机执行。转换方式有编译方式和解释方式两种。高级语言1.编译方式:源程序的执行分两步:编译和运行。即先通过一个存放在计算机内的编译程序,把源程序全部翻译成一段机器语言目标程序代码,然后计算机再运行此目标代码,以完成源程序要处理的运算任务并取得结果。2.解释方式:源程序输入到计算机后,解释程序将源程序逐句翻译,翻译一句执行一句,边翻译边执行,不产生目标程序。高级语言的优点1.高级语言接近自然语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;2.高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;3.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;4.由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。高级语言的优点小结程序设计语言的发展过程机器语言汇编语言高级语言人是如何解决问题的例子:
我国汉代有一位大将,名叫韩信。他每次集合部队,都要求部下报三次数,第一次按1~3报数,第二次按1~5报数,第三次按1~7报数,每次报数后都要求最后一个人报告他报的数是几,这样韩信就知道一共到了多少人。他的这种巧妙算法,人们称为“鬼谷算”、“隔墙算”、“秦王暗点兵”等。
中国有一本数学古书「孙子算经」也有类似的问题:「今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?」书本P4。分析问题求满足以下条件的最小正整数(在100以内查询)1、被3除余22、被5除余33、被7除余2人是如何解决问题的解决问题算法1:从1开始,取出一个自然数判断它被3、5、7整除后的余数是否为2、3、2,如果是,则这个数即是所求的数,求解结束。否则,用下一个数再试,直到找到这个数为止。人是如何解决问题的金庸先生曾在作品《射雕英雄传》引用过此段。[引文《射雕英雄传》第三十一回]
瑛姑待她写出最后一项答数,不由得叹道:“这中间果然机妙无穷。”顿了顿,说道:“这第三道题呢,说易是十分容易,说难却又难到了极处。‘今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几?’我知道这是二十三,不过那是硬凑出来的,要列一个每数皆可通用的算式,却是想破了脑袋也想不出。”黄蓉笑道:“这容易得紧。以三三数之,余数乘以七十;五五数之,余数乘以二十一;七七数之,余数乘十五。三者相加,如不大于一百零五,即为答数;否则须减去一百零五或其倍数。”瑛姑在心中盘算了一遍,果然丝毫不错,低声记诵道:“三三数之,余数乘以七十;五五数之……”黄蓉道:“也不用这般硬记,我念一首诗给你听,那就容易记了:三人同行七十稀,五树梅花廿一枝,七子团圆正半月,余百零五便得知。”这首诗的意思是:用3除所得的余数乘上70,加上用5除所得余数乘以21,再加上用7除所得的余数乘上15,结果大于105就减去105的倍数,这样就知道所求的数了。解决问题算法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.应用公式计算
70×2+21×3+15×2-105k即:当总数在100以内时为
70×2+21×3+15×2-105×2人解决问题的一般过程观察问题→分析问题→脑中收集信息→根据已有的知识、经验判断、推理→采用方法和步骤解决简单地概括⑴明确问题⑵提出假设⑶验证假设计算机解决问题的过程书本P3图1-2人类解决问题和计算机解决问题的区别?书本P3小结1、计算机如何解决问题。2、人类解决问题和计算机解决问题的异同点。
第一章
如何用计算机解决问题1.2算法描述与设计1.2算法描述与设计世界上最早的算法。书本P5什么是算法?算法是解决问题的方法和步骤。解决问题的过程就是实现算法的过程。1.2.1算法是“灵魂”著名的计算机科学家尼克劳斯•沃思指出
算法+数据结构=程序数据结构是一门专门的课程,主要研究数据之间的关系特点。数据结构的类型会影响算法的选择。算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。算法不能单独构成程序,它必须和数据结构合二为一。“韩信点兵问题”有不同的求解过程,就有不同的算法。1.2.1算法是“灵魂”算法不仅仅用来解决数字计算的问题,还存在于人们的生活当中……打电话的流程计算机在解决问题的过程中需要用到的算法,不但要解决数字计算的问题,还要对各种情况进行判断,对人机交互进行处理。拿起听筒拨号忙音通了把听筒放下通话结束把听筒放下等会儿再拨无人接听把听筒放下等会儿再拨1.2.1算法是“灵魂”算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。算法具有什么特征?1.2.1算法是“灵魂”例:计算1+2+3+……+100=?书本P6分析:这个算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性。计算此算法可以用纸笔、算盘、计算器和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行性、确定性。计算方法:⑴把这100个数按顺序相加。⑵用凑数法:1+99=100,2+98=100,3+97=100,……,49+51,最后只剩下50和100。⑶计算机计算法:迭代法。算法的另外两个特征:输入、输出。算法的特征一个算法应该具有以下五个重要的特征:书本P51、有穷性:一个算法必须保证执行有限步之后结束;2、确定性:算法的每一步骤必须有确切的定义;3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况;4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成1.2.2描述算法的方法1、自然语言:即用人们日常使用的语言和数学语言描述的算法。韩信点兵算法1从1开始,取出一个自然数判断它被3、5、7整除后的余数是否为2、3、2,如果是,则这个数即是所求的数,求解结束。否则,用下一个数再试,直到找到这个数为止。(假设人数i<100)自然语言描述1、将i的初始值赋为12、如果i<100并且i被3、5、7整除后余数为2、3、2,则输出i的值,转入第4步3、将i的值加1,转到第2步4、结束程序自然语言的特点:通俗易懂,但缺乏直观性和简洁性,容易产生歧义。书本P7。如:这个人连他都不认识。描述算法的方法2、流程图:即用一组标准的图形符号来描述算法。用流程图描述算法开始结束开始/结束符,表示算法的开始或结束;输入/输出框,用于指出数据的输入或输出;处理框,用于指出要处理的内容;判断框,用于指出分支情况,通常,上面的顶点表示入口,其它顶点表示出口流程线,表示流程控制方向。用流程图描述算法流程图描述开始i被3、5、7整除余数为2、3、2(i<100)i=i+1结束NY输出i值i=1流程图的特点:与自然语言相比,用流程图描述算法形象、直观,更容易理解。书本P7。描述算法的方法3、伪代码:伪代码是一种非正式代码,常用自然语言、数学语言和符号来描述算法的操作步骤。用伪代码描述算法Fori=1to100Ifi能被3、5、7整除余数为2、3、2Then
输出iExitForEndIfNexti用伪代码描述算法使用伪代码描述算法没有严格的语法限制,书写格式也比较自由,只要把意思表达清楚就可以了,它更侧重于对算法本身的描述。在伪代码描述中,表示关键词的语句一般用英文单词,其他语句可以用英文语句,也可以用汉语语句。阅读分析书本P8:判断一个四位数的年份是否为闰年。伪代码的特点:用伪代码描述的算法简洁、易懂,修改起来也比较容易,并且很容易转化为程序语言代码。缺点是不够直观,不容易排查逻辑错误。书本P9。小结1、什么是算法?解决问题的方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国多模头商业计划书
- 2024-2030年中国垃圾转运保洁车行业发展预测及投资战略分析报告版
- 2024-2030年中国咖啡机市场销售态势及竞争策略研究报告
- 眉山药科职业学院《商业展示空间设计》2023-2024学年第一学期期末试卷
- 2024年煤矸石运输权责协议
- 2024年标准汽车租赁协议范本版B版
- 2024年物流配送服务与管理体系合同
- 2024年校园秩序维护聘用合同
- 2024年度垃圾清理与环保监测服务协议3篇
- 2024年度水利工程安全生产责任书与事故处理合同3篇
- 金刚砂耐磨地面施工安全方案
- 期末测试(试题)-2024-2025学年六年级上册数学苏教版
- 期末测试卷(一)2024-2025学年 人教版PEP英语五年级上册(含答案含听力原文无听力音频)
- 2023-2024学年广东省深圳市南山区八年级(上)期末英语试卷
- 2024广西专业技术人员继续教育公需科目参考答案(100分)
- 2024年上海市中考语文备考之150个文言实词刷题表格及答案
- 2024年汉口银行股份有限公司招聘笔试冲刺题(带答案解析)
- 中医跨文化传播智慧树知到期末考试答案章节答案2024年浙江中医药大学
- 2024年日历表(空白)(一月一张-可编辑做工作日历)
- 广东省中山市2023-2024学年四年级上学期期末数学试卷
- 2022-2024年国际经济与贸易专业人才培养调研报告
评论
0/150
提交评论