2算法与流程图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 输入50个学生的姓名
i=1
和成绩,输出不及格 学生的名单。
开始
i=1 输入ni, si
是 输出ni
si<60
否
i=i+1
i=i+1 否
否 i>50 是
是 结束
i>50
5.2 流程图绘制例
• 输入50个学生的姓名
1
i=1
和成绩,输出不及格 学生的名单。
开始
i=1 输入ni, si
是 输出ni
si<60
2、简单算法举例
求和:1+1/2+1/3+1/4+1/5+…+1/100 改进的算法:
S1: 初始化sum=0, i=1
S2: 如果i ≤ 100,执行S3;否则执行S5
S3: sum = sum+1/i
S4: i=i+1,跳转到S2
S5: 输出sum,算法结束
2、简单算法举例
从3个数A、B、C中找出最大的数。 算法1:
否
i=i+1
i=i+1 否
否 i>50 是
是 1 结束
i>50
5.3 三种基本结构对应流程图
(1)顺序结构
A
B
5.3 三种基本结构对应流程图
(2)选择结构
是 否
p
A
B
5.3 三种基本结构对应流程图
(3)循环结构:当型 while (p) { B; }
否
p
是
B
5.3 三种基本结构对应流程图
(3)循环结构:直到型 do { B; } while (p);
• 可行性 (Effectiveness):所有操作都可通过已
经实现的基本操作运算有限次来实现。
• 确定性 (Definiteness):算法中每一步的描述
都无二义性,只要输入相同,初始状态相同, 无论执行多少遍,结果都应该相同。
3、算法的特性
“好” 算法的特点:
• 正确性 (Correctness):满足问题的需求。 • 易读性(Readability):便于理解、测试和修改。 • 健壮性(Robustness):输入非法数据时,算法能
S3: 如果max>C,执行S4;否则max=C,执行S4
S4: 输出max
3、算法的特性
算法的五个特点:
Turing Award, 1974
• 有输入 (Input):零个或多个输入。 • 有输出 (Output):一个或多个输出。
• 有穷性 (Finiteness):对于任意一组合法的输
入值,在执行有穷步骤之后一定能结束。
S1: 如果A>B,执行S2;否则执行S3
S2: 如果A>C,执行S4;否则执行S6
S3: 如果B>C,执行S5;否则执行S6
S4: 输出A
S5: 输出B S6: 输出C
2、简单算法举例
从3个数A、B、C中找出最大的数。 算法2:
S1: 初始化max=A
S2: 如果max>B,执行S3;否则max=B,执行S3
做出适当处理,不会产生难以预料的结果。
• 时空效率 (Efficiency):执行时间短,低存储。
4、算法的自然语言表示
• 优点
• 通俗易懂
从3个数A、B、C中找出最大的数。
S1: 如果A>B,执行S2;否则执行S3
S2: 如果A>C,执行S4;否则执行S6
• 缺点
• 文字冗长、不直
S3: 如果B>C,执行S5;否则执行S6
S4: 输出A S5: 输出B S6: 输出C
观
• 不适合描述分支
循环结构
5、算法的流程图表示
• 从3个数A、B、
开始 输入A,B,C A>B 否 C>B 否 输出B 是
C中找出最大 的数。
是
A>C
否
是
输出C
Leabharlann Baidu
输出A
结束
5.1 流程图基本单元
起止框 输入/输出框 处理框
判断框
连结点
流程线
5.2 流程图绘制例
2、简单算法举例
求和:1+1/2+1/3+1/4+1/5+…+1/100 蛮力法:
S1: 先计算1/2=0.5,再与1相加得1.5
S2: 计算1/3=0.33333,与1.5相加得1.83333
S3: 计算1/4=0.25,与1.83333相加得2.08333
…
S99: 计算1/100=0.01,与5.177378相加得5.187378。
B
否
p
是
5.4 作业
(1)用流程图表示判断闰年的算法。
(2)用流程图表示判断一个正整数是否是素数 的算法。
作业提交时间:2015.10.24日
学习委员以班级为单位,压缩为rar或者zip格式 发到我的QQ邮箱。
5.5 用伪代码表示算法
• 用介于自然语言和计算机语言之间的文字和
符号表示算法
• 无固定严格的语法规则
• begin…end • if…else…
• do…while
• while… • =,== • input, print
例如:求和算法的伪代码
1+1/2+1/3+1/4+1/5+…+1/100
begin sum=0 i=1 while (i ≤ 100) begin sum = sum + 1/i i = i+1 end print sum end
目录
第一章 绪论 第二章 算法与流程图 第三章 数据类型、运算符和表达式 第四章 程序的控制结构 第五章 函数 第六章 数组 第七章 指针 第八章 结构体 第九章 文件操作
第二章 算法与流程图
1、程序=数据结构+算法
2、简单算法举例 3、算法特性 4、算法的自然语言表示 5、算法的流程图表示 6、算法的伪代码表示
1、程序=数据结构+算法
Niklaus Wirth, designer of Pascal Turing Award, 1984
程序:为计算机解题编制的 一组指令集 算法:处理问题的策略 数据结构:处理信息的表示
Wirth, Niklaus (1976) (in English). Algorithms + Data Structures = Program. Prentice Hall. 0130224189. ISBN 978-0130224187
本章小结
• “好”算法的特点
• 算法的流程图表示
i=1
和成绩,输出不及格 学生的名单。
开始
i=1 输入ni, si
是 输出ni
si<60
否
i=i+1
i=i+1 否
否 i>50 是
是 结束
i>50
5.2 流程图绘制例
• 输入50个学生的姓名
1
i=1
和成绩,输出不及格 学生的名单。
开始
i=1 输入ni, si
是 输出ni
si<60
2、简单算法举例
求和:1+1/2+1/3+1/4+1/5+…+1/100 改进的算法:
S1: 初始化sum=0, i=1
S2: 如果i ≤ 100,执行S3;否则执行S5
S3: sum = sum+1/i
S4: i=i+1,跳转到S2
S5: 输出sum,算法结束
2、简单算法举例
从3个数A、B、C中找出最大的数。 算法1:
否
i=i+1
i=i+1 否
否 i>50 是
是 1 结束
i>50
5.3 三种基本结构对应流程图
(1)顺序结构
A
B
5.3 三种基本结构对应流程图
(2)选择结构
是 否
p
A
B
5.3 三种基本结构对应流程图
(3)循环结构:当型 while (p) { B; }
否
p
是
B
5.3 三种基本结构对应流程图
(3)循环结构:直到型 do { B; } while (p);
• 可行性 (Effectiveness):所有操作都可通过已
经实现的基本操作运算有限次来实现。
• 确定性 (Definiteness):算法中每一步的描述
都无二义性,只要输入相同,初始状态相同, 无论执行多少遍,结果都应该相同。
3、算法的特性
“好” 算法的特点:
• 正确性 (Correctness):满足问题的需求。 • 易读性(Readability):便于理解、测试和修改。 • 健壮性(Robustness):输入非法数据时,算法能
S3: 如果max>C,执行S4;否则max=C,执行S4
S4: 输出max
3、算法的特性
算法的五个特点:
Turing Award, 1974
• 有输入 (Input):零个或多个输入。 • 有输出 (Output):一个或多个输出。
• 有穷性 (Finiteness):对于任意一组合法的输
入值,在执行有穷步骤之后一定能结束。
S1: 如果A>B,执行S2;否则执行S3
S2: 如果A>C,执行S4;否则执行S6
S3: 如果B>C,执行S5;否则执行S6
S4: 输出A
S5: 输出B S6: 输出C
2、简单算法举例
从3个数A、B、C中找出最大的数。 算法2:
S1: 初始化max=A
S2: 如果max>B,执行S3;否则max=B,执行S3
做出适当处理,不会产生难以预料的结果。
• 时空效率 (Efficiency):执行时间短,低存储。
4、算法的自然语言表示
• 优点
• 通俗易懂
从3个数A、B、C中找出最大的数。
S1: 如果A>B,执行S2;否则执行S3
S2: 如果A>C,执行S4;否则执行S6
• 缺点
• 文字冗长、不直
S3: 如果B>C,执行S5;否则执行S6
S4: 输出A S5: 输出B S6: 输出C
观
• 不适合描述分支
循环结构
5、算法的流程图表示
• 从3个数A、B、
开始 输入A,B,C A>B 否 C>B 否 输出B 是
C中找出最大 的数。
是
A>C
否
是
输出C
Leabharlann Baidu
输出A
结束
5.1 流程图基本单元
起止框 输入/输出框 处理框
判断框
连结点
流程线
5.2 流程图绘制例
2、简单算法举例
求和:1+1/2+1/3+1/4+1/5+…+1/100 蛮力法:
S1: 先计算1/2=0.5,再与1相加得1.5
S2: 计算1/3=0.33333,与1.5相加得1.83333
S3: 计算1/4=0.25,与1.83333相加得2.08333
…
S99: 计算1/100=0.01,与5.177378相加得5.187378。
B
否
p
是
5.4 作业
(1)用流程图表示判断闰年的算法。
(2)用流程图表示判断一个正整数是否是素数 的算法。
作业提交时间:2015.10.24日
学习委员以班级为单位,压缩为rar或者zip格式 发到我的QQ邮箱。
5.5 用伪代码表示算法
• 用介于自然语言和计算机语言之间的文字和
符号表示算法
• 无固定严格的语法规则
• begin…end • if…else…
• do…while
• while… • =,== • input, print
例如:求和算法的伪代码
1+1/2+1/3+1/4+1/5+…+1/100
begin sum=0 i=1 while (i ≤ 100) begin sum = sum + 1/i i = i+1 end print sum end
目录
第一章 绪论 第二章 算法与流程图 第三章 数据类型、运算符和表达式 第四章 程序的控制结构 第五章 函数 第六章 数组 第七章 指针 第八章 结构体 第九章 文件操作
第二章 算法与流程图
1、程序=数据结构+算法
2、简单算法举例 3、算法特性 4、算法的自然语言表示 5、算法的流程图表示 6、算法的伪代码表示
1、程序=数据结构+算法
Niklaus Wirth, designer of Pascal Turing Award, 1984
程序:为计算机解题编制的 一组指令集 算法:处理问题的策略 数据结构:处理信息的表示
Wirth, Niklaus (1976) (in English). Algorithms + Data Structures = Program. Prentice Hall. 0130224189. ISBN 978-0130224187
本章小结
• “好”算法的特点
• 算法的流程图表示