1、2.1 计算机解决问题的过程 计算机解决问题的过程 计算机解决问题的过程计算机解决问题的过程 算法描述与设计算法描述与设计 初试身手,体验编程初试身手,体验编程 人解决问题的过程 一个人带一只羊、一只狼和一篮菜过河,只有一只小船, 一次只能带一个物品。如果羊和狼在一起,狼吃羊;如果 羊和菜在一起,羊吃菜。怎样才能安全渡河? 人解决问题的过程: 1.农夫带羊到右岸,独自返回左岸; 2.农夫带狼到右岸,返回时白羊带回左岸; 3.农夫把菜带到右岸,独自返回左岸; 4.农夫把羊带到右岸,完成过河。 人解决问题的过程 计算机解决问题的过程 算法描述与设计算法描述与设计 算法:解决问题的方法与步骤 算法是
2、尼克劳斯.沃斯(N.Writh)提出的,他指出: 程序=算法+数据结构(DATA STRUCTURE) (即算法不能单独构成程序,它必须和数据结构合二为一) 算法是在有限步骤内求解某一问题所使用的一组定义明确的 规则。通俗点说,就是计算机解题的过程就是计算机解题的过程。 什么是算法(algorithm)? 算法的特征 1. 1. 有穷性有穷性 执行有限步之后结束,且每一步都执行时间都是有限的。 算法描述与设计算法描述与设计 2. 2. 确定性确定性 算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两 可的。 3. 3. 输入输入 有零个或多个输入; 5. 5. 可行性可行性 原则上能精
3、确运行,用纸和笔做有限运算后可以完成。 4. 4. 输出输出 至少产生一个输出 流程框图标准 美国国家标准化协会 (American National (American National Standard Institute,Standard Institute,简称简称 ANSI)ANSI) 算法描述与设计算法描述与设计 起止框起止框 输入/输出 判断框 处理框 连接符 流程线 试一试 试着画出交换两个大小相同的杯子中的液 体(A:水、B:酒)的流程图。 三种基本结构的流程图三种基本结构的流程图 结构化程序设计是一种进行程序设计的原则 和方法,按照这种原则和方法可以设计出结 构清晰、容易理
4、解和修改的程序。 任何算法都可以由顺序结构、分支结构和顺序结构、分支结构和 循环结构循环结构这三种基本结构组合而成。 顺序结构 顺序结构是一种最简单的结构,按照自上而下的 先后顺序依次执行程序语句。如图所示,在顺序 结构图中,先执行处理框语句块1,再执行处理 框语句块2。 分支结构 分支结构也称为选择结构,是一种根据给写的 条件进行判断的结构。如图所示,在分支结 构中必定包含一个判断框,若满足条件则执行 语句块1,若不满足条件则执行处理框B。 循环结构 循环结构是一种重复某一部分操作的结构。如图所示的循 环结构中,若满足条件时则执行循环体(处理框),若 满足条件则跳出循环,执行循环结构后面的代
5、码。 做一做 下面是某同学设计的流程图,请你识读一下, 写出输出结果。 结构内的每一部分都有机 会被执行到,也就是说, 对每一个框来说,都应当 有一条从入口到出口的路 径通过它,并且结构内部 没有死循环。 分析结果分析结果: :求求1-1001-100的数的和的数的和 结论: 任何大的程序都是由这三种结构组成的 。用它们作为构成程序的基本单元,一 个大的程序开发应当采取“自上而下, 逐步细化”的方法,即将一个大的任务 分成若干个小任务组成,每一个小任务 还可以再分解为若干个子任务,如此逐 级分解,直至三种基本结构。 Python语言的开发环境 程序设计语言的发展: 机器语言:由二进制的0、1代
6、码指令构成,能被计算机直接 识别。但理解和记忆机器语言非常困难,并且容易出错,编 程效率低。 汇编语言:是符号化的机器语言,采用英文助记符代替机器 指令,容易记忆和识别,提高了程序的可读性,但它是面向 机器的语言,是为特定的计算机系统设计的,它要求软件工 程师对相应的机器硬件非常熟悉,所以仍是低级语言。 高级语言:更接近自然语言,并不特指某一语言,也不依赖 于特定的计算机系统,因而更容易掌握和使用,通用性也好 。程序的可读性好,也便于修改、维护,Python就是这种 语言。 PythonPython语言的开发环境语言的开发环境 Python是一种程序开发工具。界面简单,易于初学者学 习使用。
7、Python语言的开发环境 体验程序: import random import time import os print(你好,现在你有10秒钟的时间记忆下列物品及其编号) things=苹果,香蕉,橙子,梨子,猕猴桃,柚子, 猴魁,铁观音,彩蛋,复活节 for i in range(10): print(i,:,thingsi)#在屏幕上显示编号及物品 time.sleep(10) #延时10秒 os.system(cls) #清屏幕,隐去编号及物品 n=0 #记录答对的题数,初值为0 t2=random.sample(things,5)#随机抽出5个物品 for i in t2: #出5
8、题 ans=int(input(i + 的编号是:)#输入编号答题 if i=thingsans: n=n+1 #如果回答正确,答对的题数加1 print(n你一共答对了,n,次)#屏幕显示答对的题数 input(n按回车键结束程序) 最强大脑游戏程序。程序代码如下: 练习: 请利用所学的知识,尝试写出到请利用所学的知识,尝试写出到100100的奇数的奇数 和的流程图,并与同学分享和的流程图,并与同学分享。 思路点拨:思路点拨:因为I=1,S=0为起始变量,而所求的是连 续50个奇数的和,则I是循环变量,增加量为2,而S由0 再加I即为和的值。 练习 1.下列关于算法的特征描述不正确的是( )
9、 A、有穷性:算法必须在有限步之内结束 B、确定性:算法的每一步必须有确切的含义 C、输入:算法至少有一个输入 D、输出:算法至少有一个输出 2.以下不属于算法基本特征的是( ) A、可执行性 B、确定性 C、有穷性 D、无限性 3.下面说法正确的是( ) A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 4.右侧图形符号“在算法描述流程图中表示() A、算法的开始或结束 B、输入输出操作 C、处理或运算的功能 D、用来判断条件是否满足需求 5.在使用流程图描述算法中,表示变量的计算与赋值的符号框为( ) A、矩形框 B、菱形框 C、平行四边形框 D、椭圆
10、形框 6.下列关于算法说法不正确的是( ) A、算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现 B、解决问题的过程就是实现算法的过程 C、算法是程序设计的灵魂 D、算法可以通过编程来实现 练习 1.下列关于算法的特征描述不正确的是(C ) A、有穷性:算法必须在有限步之内结束 B、确定性:算法的每一步必须有确切的含义 C、输入:算法至少有一个输入 D、输出:算法至少有一个输出 2.以下不属于算法基本特征的是( ) A、可执行性 B、确定性 C、有穷性 D、无限性 3.下面说法正确的是( ) A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 4.图形符号“在算法描述流程图中表示() A、算法的开始或结束 B、输入输出操作 C、处理或运算的功能 D、用来判断条件是否满足需求 5.在使用流程图描述算法中,表示变量的计算与赋值的符号框为( ) A、矩形框 B、菱形框 C、平行四边形框 D、椭圆形框 6.下列关于算法说法不正确的是( ) A、算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现 B、解决问题的过程就是实现算法的过程 C、算法是程序设计的灵魂 D、算法可以通过编程来实现 谢谢!
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。