当前位置:文档之家› 第一讲 算法与程序设计

第一讲 算法与程序设计


一个完整的算法有三个部分:输入、处理、输出。
算法与程序的关系是什么呢? 算法是程序的灵魂,是解决问题的步骤。程序代 码只是实现的手段。
例题: 某学校要进行学生电脑编程竞赛,竞赛将评出10名获 奖者,分为一、二、三等奖。奖项设置一等奖获得人 数要少于二等奖人数,二等奖人数要少于三等奖人数。 问一二三等奖人数各为多少?
输入、输出框 处理框 判断框
框中标明输入输出的内容 框中标明进行什么处理 框中标明判定条件并在框外标明判定 后的两种结果的流向 表示从某一框到另一框的程序运行流 向
流线
返回
例7:请画出例5的流程图
例5:写出算法:从 键盘输入圆的半径, 计算其面积 解答: ① 输入圆的半径R
开始 输入R S=3.14*R*R 输出S 结束
算法与程序设计
一、算法及其描述方法
第一节 算法与程序
计 算 机 系 统
硬件系统
系统软件
软件系统
应用软件
★软件的重要组成部分是:程序 想一想:什么是程序?
什么是程序
计算机的任何动作都是在执行人给它的指令。 人们针对某一需要而为计算机编制的指令序列称 为程序 。 程序指示计算机如何去解决问题或完成任务 的一组可执行的指令。
返回
二、算法的描述
1、用自然语言描述算法
例题:鸡兔同笼问题 一个笼子里有鸡和兔,现在只知道里面一 共有a个头,b个脚,鸡和兔各有多少只? 试设计一个求解的算法,并用自然语言描 述出来。

1、用自然语言描述算法

1)分析问题 设所求的鸡数是x,兔数是y,已知笼子里 的头数是a,脚数是b,依题意得到如下的方 程组: x+y=a 2x+4y=b
那么,什么是算法呢?
讨论:
用没有刻度的3毫升量杯和5毫升量杯如 何量出1毫升的水?请写出自己的解决步 骤。
参考算法一
参考算法二

算法是在有限步骤内求解某一问题所使 用的具有精确定义的一系列操作规则。 简而言之,算法是指解决问题的具体方 法和步骤。
说明:算法不是唯一的,针对同一问题的算 法可以有多种。
x=2a-b/2 y=b/2-a print x,y
④输出x和y的值; ⑤结束。
二、算法的描述
算法描述语言有: 1、自然语言 2、流程图 3、伪代码
算法的表示方法优缺点:
1.自然语言 (通过文字来描述解决问题的过程)
优点:容易理解。 缺点:书写烦琐,具有不确切性,容易引起歧义,造成误解; 对较复杂的问题,用自然语言难以表达准确; 计算机不能直接识别和执行。


S=3.14*R*R
输出面积S
课堂练习1:
物理老师想编写一个描述小球做平抛的运动轨迹程序 (小球运动时间限定在(1-100秒),你能否帮助先 用流程图描述一下解体的方法?
描课堂练习2:
描述S=1+2*2+3*3+……直到呢S>10000算法
课堂练习3: 4、分别用自然语言和流程图表示算法:求边 长为a的正方形及其内切圆所夹阴影部分的面 积
a
课堂练习1:
开始 i=1,n=0 i<1000 是 否
i=i*i
N=n+i i=i+1 结束
1. 2.
3.
4.
算法的特征
1.有穷性:一个算法必须保证执行有限步骤之后结束。 2.确定性:算法的每一步骤必须有确切的含义。
3.可行性:算法的每一步骤都能有效地执行,并得到确定
的结果。
4.输入:有0个或多个输入。
5.输出:有1个或多个输出,没有输出的算法毫无意义。
下一页
例1:判断下列算法是否符合算法的特征
解答:


输入圆的半径R
S=3.14*R*R

输出面积S
说明:该算法中计算面积所需的初始数据半径R待 定,需要在算法执行时从键盘输入。
返回
请画出例6的流程图
例6:求从键盘输入的 任意半径的圆的面积 和周长 解答: ① 输入圆的半径R
开始 输入R S=3.14*R*R C=2*3.14*R 输出面积S、周长C 结束
解答:x是负数,没有平方根,该算法不可行,不符合 算法的可行性。
返回
例4:写出算法:计算半径为2的圆的面积
解答:
① ② ③ R=2 S=3.14*R*R 输出面积S
说明:该算法中在执行时已包含计算所需的初始数据,不必另 外提供数据,因此没有输入,即有0个输入。 返回
例5:写出算法:从键盘输入圆的半径, 计算其面积
解方程组得: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、用程序代码描述算法 鸡兔同笼 Input a,b ①输入a和b的值; ②求x=2a-b/2; ③求y=b/2-a;
返回
参考算法二:
①将5毫升的量杯装满 ②将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余2毫升水 ③将3毫升量杯倒空 ④将5毫升量杯中剩余的2毫升注入3毫升量杯 ⑤将5毫升量杯装满 ⑥将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余4毫升水 ⑦将3毫升量杯倒空 ⑧将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余1毫升水
分析:1.已知竞赛将评出10名获奖者。
2.一等奖获得人数要少于二等奖人数,二等奖 人数要少于三等奖人数
设计算法: 1.X+y+z=10 X<y<z 2.10以内的整数,逐个拿来试一试。满足条件的n组数, 即结果
3.编写程序。
4.调试程序。

使用电脑解决问题的一般过程
分析问题 设计算法(设计出解决某一问题的有限个求解步骤 ) 编写程序 运行程序


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个或多 个输出。
返回
Байду номын сангаас
参考算法一:
①将3毫升的量杯装满 ②将3毫升量杯中的水注入5毫升量杯 ③将3毫升的量杯装满 ④将3毫升量杯中的水注入5毫升量杯,注满后3毫升量杯中剩余1毫升水。
① s=1 ② 将s的值增加1
③ 重复步骤②
解答:该算法的步骤②将被重复执行无穷次,不符合 有穷性
返回
例2:判断下列算法是否符合算法的特征
① ② L=10 输出L/自然数
解答:自然数没有具体指明是哪个数,不符合算法的 确定性
返回
例3:判断下列算法是否符合算法的特征
① ② x= -2 计算x的平方根
2.流程图
(用图形符号来描述算法)
必须要有一组统一规定、含义确定的专用符号; 优点:用流程图表示算法比较直观、形象; 缺点:计算机不能识别和执行。 3.程序代码 使用程序设计语言描述算法。 下一页
流程图中的符号的用途
图形符号 符号名称 起始、终止框 说明 表示算法的开始或结束 流线 开始框:一流出线 结束框:一流入线 只有一流入线和一 流出线 只有一流入线和一 流出线 一流入线 两流出线(T和F)
相关主题