C语言-算法与流程图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Friday, April 03, 2020
4
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
Friday, April 03, 2020
6
2、简单算法举例
从3个数A、B、C中找出最大的数。 算法1:
S1: 如果A>B,执行S2;否则执行S3 S2: 如果A>C,执行S4;否则执行S6 S3: 如果B>C,执行S5;否则执行S6 S4: 输出A S5: 输出B S6: 输出C
Friday, April 03, 2020
• 有输出 (Output):一个或多个输出。
• 有穷性 (Finiteness):对于任意一组合法的输 入值,在执行有穷步骤之后一定能结束。
• 可行性 (Effectiveness):所有操作都可通过已 经实现的基本操作运算有限次来实现。
• 确定性 (Definiteness):算法中每一步的描述 都无二义性,只要输入相同,初始状态相同, 无论执行多少遍,结果都应该相同。
• begin…end • if…else… • do…while • while… • =,== • input, print
Friday, April 03, 2020
21
例如:求和算法的伪代码
1+1/2+1/3+1/4+1/5+…+1 /10b0egin
sum=0 i=1 while (i ≤ 100) begin
7
2、简单算法举例
从3个数A、B、C中找出最大的数。 算法2:
S1: 初始化max=A S2: 如果A>B,执行S3;否则max=B,执行S3 S3: 如果max>C,执行S4;否则max=C,执行S4 S4: 输出max
3、算法的特性
算法的五个特点: Turing Award, 1974 • 有输入 (Input):零个或多个输入。
B

p

Friday, April 03, 2020
19
5.4 作业
(1)用流程图表示判断闰年的算法。
(2)用流程图表示判断一个正整数是否是素 数的算法。
Friday, April 03, 2020
20
5.5 用伪代码表示算法
• 用介于自然语言和计算机语言之间的文字和 符号表示算法
• 无固定严格的语法规则
16
5.3 三种基本结构对应流程图
(2)选择结构


p
A
B
Friday, April 03, 2020
17
5.3 三种基本结构对应流程图
(3)循环结构:当型 while (p) { B; }

p

B
Friday, April 03, 2020
18
5.3 三种基本结构对应流程图
(3)循环结构:直到型 do { B; } while (p);
Friday, April 03, 2020
5.2 流程图绘制例
• 输入50个学生的姓 名和成绩,输出不及 格学生的名单。
开始
i=1
输入ni, si i=i+1
否 i>50 是
13
i=1
是 si<60
否wenku.baidu.com
输出ni
i=i+1
否 i>50 是 结束
Friday, April 03, 2020
5.2 流程图绘制例
Friday, April 03, 2020
9
3、算法的特性
“好” 算法的特点:
• 正确性 (Correctness):满足问题的需求。 • 易读性(Readability):便于理解、测试和修改。 • 健壮性(Robustness):输入非法数据时,算法能
做出适当处理,不会产生难以预料的结果。 • 时空效率 (Efficiency):执行时间短,低存储。
… S99: 计算1/100=0.01,与5.177378相加得 5.187378。
Friday, April 03, 2020
5
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,算法结束
sum = sum + 1/i i = i+1 end print sum end
Friday, April 03, 2020
22
本章小结
• “好”算法的特点
• 算法的流程图表示
Friday, April 03, 2020
1
目录
第一章 绪论 第二章 算法与流程图 第三章 数据类型、运算符和表达式 第四章 程序的控制结构 第五章 函数 第六章 数组 第七章 指针 第八章 结构体 第九章 文件操作
Friday, April 03, 2020
2
第二章 算法与流程图
1、程序=数据结构+算法 2、简单算法举例 3、算法特性 4、算法的自然语言表示 5、算法的流程图表示 6、算法的伪代码表示
Friday, April 03, 2020
10
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
Friday, April 03, 2020
3
1、程序=数据结构+算法
Niklaus Wirth, designer of Pascal
Turing Award, 1984
程序:为计算机解题编制的 一组指令集 算法:处理问题的策略 数据结构:处理信息的表示
Wirth, Niklaus (1976) (in English). Algorithms + Data Structures = Program. Prentice Hall. 0130224189. ISBN 978-0130224187
Friday, April 03, 2020
11
5、算法的流程图表示
• 从3个数A、B、 C中找出最大 的数。
开始 输入A,B,C
A>B

否 是
C>B
A>C


输出B
输出C
是 输出A
结束
Friday, April 03, 2020
5.1 流程图基本单元
起止框
输入/输出框
12
处理框
判断框
连结点
流程线
• 输入50个学生的姓 名和成绩,输出不及 格学生的名单。
开始
i=1
输入ni, si
i=i+1 否 i>50
是1
14
1
i=1
是 si<60

输出ni
i=i+1
否 i>50 是 结束
Friday, April 03, 2020
15
5.3 三种基本结构对应流程图
(1)顺序结构
A
B
Friday, April 03, 2020
相关文档
最新文档