第一讲 算法与程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下一页
流程图中的符号的用途
图形符号
符号名称
说明
流线
起始、终止框 表示算法的开始或结束
开始框:一流出线 结束框:一流入线
输入、输出框 处理框 判断框
框中标明输入输出的内容
框中标明进行什么处理
框中标明判定条件并在框外标明判定 后的两种结果的流向
只有一流入线和一 流出线
只有一流入线和一 流出线
一流入线 两流出线(T和F)
2x+4y=b
解方程组得:x=2a-b/2
y=b/2-a
1、用自然语言描述算法
2)设计算法 ①输入a和b的值; ②求x=2a-b/2; ③求y=b/2-a; ④输出x和y的值; ⑤结束。
鸡兔同笼流程图
开始
输入a,b的值 求x=2a-b/2 求y=b/2-a 输出x,y的值
结束
3、用程序代码描述算法
① s=1 ② 将s的值增加1 ③ 重复步骤②
解答:该算法的步骤②将被重复执行无穷次,不符合 有穷性
返回
例2:判断下列算法是否符合算法的特征
① L=10 ② 输出L/自然数
解答:自然数没有具体指明是哪个数,不符合算法的 确定性
返回
例3:判断下列算法是否符合算法的特征
① x= -2 ② 计算x的平方根
开始 输入R S=3.14*R*R C=2*3.14*R 输出面积S、周长C 结束
例6:求从键盘输入的任意半径的圆的面 积和周长
解答: ① 输入圆的半径R ② S=3.14*R*R ③ C=2*3.14*R ④ 输出面积S,周长C
说明:通过前两个例子可以知道,算法可能有1个或多 个输出。
返回
参考算法一:
返回
二、算法的描述
1、用自然语言描述算法
例题:鸡兔同笼问题 一个笼子里有鸡和兔,现在只知道里面一
共有a个头,b个脚,鸡和兔各有多少只? 试设计一个求解的算法,并用自然语言描 述出来。
1、用自然语言描述算法
1)分析问题 设所求的鸡数是x,兔数是y,已知笼子里 的头数是a,脚数是b,依题意得到如下的方 程组: x+y=a
鸡兔同笼
①输入a和b的值; Input a,b
②求x=2a-b/2;
x=2a-b/2
③求y=b/2-a;
y=b/2-a
④输出x和y的值; print x,y
⑤结束。
二、算法的描述
算法描述语言有: 1、自然语言 2、流程图 3、伪代码
算法的表示方法优缺点:
1.自然语言 (通过文字来描述解决问题的过程)
第一讲 算法与程序设计
算法与程序设计
一、算法及其描述方法
第一节 算法与程序
计 硬件系统
算
机 系
软件系统
系统软件
统
应用软件
★软件的重要组成部分是:程序 想一想:什么是程序?
什么是程序
计算机的任何动作都是在执行人给它的指令。 人们针对某一需要而为计算机编制的指令序列称 为程序 。
程序指示计算机如何去解决问题或完成任务 的一组可执行的指令。
分析:1.已知竞赛将评出10名获奖者。 2.一等奖获得人数要少于二等奖人数,二等奖
人数要少于三等奖人数
设计算法: 1.X+y+z=10
X<y<z 2.10以内的整数,逐个拿来试一试。满足条件的n组数, 即结果
3.编写程序。 4.调试程序。
使用电脑解决问题的一般过程
1. 分析问题 2. 设计算法(设计出解决某一问题的有限个求解步骤 ) 3. 编写程序 4. 运行程序
算法的特征
1.有穷性:一个算法必须保证执行有限步骤之后结束。 2.确定性:算法的每一步骤必须有确切的含义。 3.可行性:算法的每一步骤都能有效地执行,并得到确定 的结果。 4.输入:有0个或多个输入。 5.输出:有1个或多个输出,没有输出的算法毫无意义。
下一页
例1:判断下列算法是否符合算法的特征
流线
表示从某一框到另一框的程序运行流 向
①将3毫升的量杯装满 ②将3毫升量杯中的水注入5毫升量杯 ③将3毫升的量杯装满 ④将3毫升量杯中的水注入5毫升量杯,注满后3毫升量杯中剩余1毫升水。
返回
参考算法二:
①将5毫升的量杯装满 ②将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余2毫升水 ③将3毫升量杯倒空 ④将5毫升量杯中剩余的2毫升注入3毫升量杯 ⑤将5毫升量杯装满 ⑥将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余4毫升水 ⑦将3毫升量杯倒空 ⑧将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余1毫升水
那么,什么是算法呢?
讨论:
用没有刻度的3毫升量杯和5毫升量杯如 何量出1毫升的水?请写出自己的解决步 骤。
参考算法一 参考算法二
算法是在有限步骤内求解某一问题所使 用的具有精确定义的一系列操作规则。 简而言之,算法是指解决问题的具体方 法和步骤。
说明:算法不是唯一的,针对同一问题的算 法可以有多种。
解答: ① 输入圆的半径R ② S=3.14*R*R ③ 输出面积S
说明:该算法中计算面积所需的初始数据半径R待 定,需要在算法执行时从键盘输入。
返回
请画出例6的流程图
例6:求从键盘输入的 任意半径的圆的面积 和周长
解答: ① 输入圆的半径R ② S=3.14*R*R ③ C=2*3.14*R ④ 输出面积S,周长C
一个完整的算法有三个部分:输入、处理、输出。
算法与程序的关系是什么呢?
算法是程序的灵魂,是解决问题的步骤。程序代 码只是实现的手段。
例题:
某学校要进行学生电脑编程竞赛,竞赛将评出10名获 奖者,分为一、二、三等奖。奖项设置一等奖获得人 数要少于二等奖人数,二等奖人数要少于三等奖人数。 问一二三等奖人数各为多少?
优点:容易理解。
缺点:书写烦琐,具有不确切性,容易引起歧义,造成误解;
对较复杂的问题,用自然语言难以表达准确;
计算机不能直接识别和执行。
2.流程图 (用图形符号来描述算法)
必须要有一组统一规定、含义确定的专用符号;
优点:用流程图表示算法比较直观、形象;
缺点:计算机不能识别和执行。
3.程序代码 使用程序设计语言描述算法。
解答:x是负数,没有平方根,该算法不可行,不符合 算法的可行性。
返回
Biblioteka Baidu
例4:写出算法:计算半径为2的圆的面积
解答: ① R=2 ② S=3.14*R*R ③ 输出面积S
说明:该算法中在执行时已包含计算所需的初始数据,不必另 外提供数据,因此没有输入,即有0个输入。
返回
例5:写出算法:从键盘输入圆的半径, 计算其面积