算法与程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二部分算法与程序设计(选修)
主题1算法与程序设计
1.1算法
1.1.1计算机解决问题的过程
知识点1:人是如何解决问题的
【知识链接】
本考点要求学生达到“了解”水平。
解决问题的过程可以总结为:观察、分析问题,收集必要的信息,尝试按照一定的方法和步骤解决问题。一般来说,同一个问题可以有多种解决方法,但不同的方法有优劣之分。评价一种方法的优劣要与具体情况相结合。
要理解本考点的内容除了用教科书中“韩信点兵”的例子外,还可以举出其他一些例子,例如:最小公倍数问题、班级活动的设计等。
【技能扫描】
培养将生活中的实例整理成条理化步骤的好习惯,提高自己的逻辑思维和语言叙述能力。
体会逻辑关联词“如果……那么……”、“或者”、“并且”、“否则”的含义,能把这些逻辑关联词翻译成数学“语言”。
【典型题析】
1. 分析“这个人谁都不认识”的含义,体会同一种叙述在不同语境中可以表达不同的意思。
分析:第一种解释是在场的所有人都不认识这个人(这个人是被认识的对象);第二种解释是这个人不认识在场的所有人。
2.张三有一杯咖啡,李四有一杯牛奶,在不交换杯子的前提下如何交换两人的饮料。
分析:设张三的杯子为X,李四的杯子为Y,找一个空杯子T。将X杯中的咖啡倒入T杯中,将Y杯中的牛奶倒入X杯中,再将T杯中的咖啡倒入Y杯中即可。可以写成X→T,Y→X,T→Y。
【模拟练习】
1.把从早晨起床到学校的过程整理成算法(解决问题的方法和步骤)并表述出来。
2.一个侦探逮捕了5个嫌疑犯b因为这5个人供出的作案地点各有出入,进一步审讯后,他们分别提出了如下的申明。
A:5个人当中有1个人说了谎。
B:5个人当中有2个人说了谎。
C:5个人当中有3个人说了谎。
D:5个人当中有4个人说了谎。
E:5个人全说了谎。
然而只能释放说真话的人,请问该释放谁呢?
3.小明有一盒刘德华的歌曲磁带,小云有一盒梁咏琪的歌曲磁带,在不交换磁带的基础上,怎样将两盒磁带上的歌曲对录到对方的磁带上。
参考答案:
1.略
2.提示:
假如E说的是真的,即五个人都说了谎,则A、B、C、D、E都说了谎,自相矛盾,排除;
假如D说的是真的,即有四个人说了谎,则A、B、C、它都说了谎,刚好是四个人说了谎,正确;
假如C说的是真的,即有三个人说了谎,则A、B、D、E都说了谎,四个人说了谎,故C为假;
假如B说的是真的,即有二个人说了谎,则A、C、D、E都说了谎,B为假;
假如A说的是真的,即只有一个人说了谎,则B、C、D、E都说了谎,矛盾,故也为假。故只能放D。
3.提示:
典型题析2中交换两种饮料和本题中的磁带对录问题,都与计算机算法中将要解决的“交换两个变量的值”的问题类似,理解这种解决问题的方法,才能写出解决问题的步骤。
知识点2:计算机解决问题的过程
【知识链接】
本考点要求学生达到“了解”水平。
计算机程序(Computer Program)是指示计算机如何去解决问题或完成任务的一组可执行的指令。
程序设计(Program Design)是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。
程序设计语言(Program Language)泛指一切用于书写计算机程序的语言。
注意:程序设计语言和计算机语言(Computer Language)是两个不同的概念,程序设计语言是一种重要的计算机语言。
计算机解决问题和人解决问题有着本质的区别:计算机解决问题要经历分析问题、确定算法、
编程求解等基本过程。计算机解决问题的流程如下:
开始结束
编写程序日寸,首先要对问题进行详细的分析,明确已知条件下的初始状态及要达到的目标,找出求解问题的方法和过程,并抽取出一个数学模型,形成算法;然后将这个数学模型连同它要处理的数据,用计算机能识别的方式描述出来,使之成为计算机能处理的对象;最后用程序设计语言设计出具体的问题求解过程,形成计算机程序。
IBM公司的“深蓝”能够战胜国际象棋大师卡斯帕罗夫,原因是人们将国际顶尖象棋大师在过去100年问开局和终局的数十亿范例存入计算机数据库,针对卡斯帕罗夫每一步的对弈,计算机都从数据库中查找能够取胜的应对步骤。所以不是“深蓝”战胜了卡斯帕罗夫,而是缜密的计算机程序战胜了卡斯帕罗夫。
【技能扫描】
利用类比的方法体会计算机解决问题和人解决问题的异同,锻炼类比、推理的能力。
【典型题析】
与人解决问题相比,计算机解决问题的优势有哪些?劣势是什么?
分析:计算机具有存储量大、运算速度快、精确度高、可重复执行命令等优点,这些优势是人无法比拟的,但计算机也有自身的劣势,那就是它无法完成随意性强、无逻辑性的随机问题,计算机只是一个高级工具。到目前为止,还没有一台真正具有人类智能的计算机。
【模拟练习】
1.IBM公司的“深蓝”能够战胜国际象棋大师卡斯帕罗夫是因为()。
A.计算机具有很高的智商
B.计算机具有很快的运算速度
C.计算机事先装载了很多棋局
D.计算机能根据装载的棋局,经过程序判断作出对弈选择
2.利用计算机解决问题的过程描述中,以下说法正确的是()
A.编写程序→调试程序→分析问题→设计算法
B.分析问题→编写程序→调试程序→设计算法
C.分析问题→设计算法→编写程序→调试程序
D.分析问题→设计算法→调试程序→编写程序
3.名词解释:计算机程序程序设计程序设计语言
参考答案:1. D 2. C 3. 略
1.1.2算法的描述方法
知识点1:算法
【知识链接】
本考点要求学生达到“了解"水平。