《C语言-算法与流程图.ppt》由会员分享,可在线阅读,更多相关《C语言-算法与流程图.ppt(22页珍藏版)》请在金锄头文库上搜索。
1、目录目录 第一章第一章 绪论绪论 第二章第二章 算法与流程图算法与流程图 第三章第三章 数据类型 运算符和表达式数据类型 运算符和表达式 第四章第四章 程序的控制结构程序的控制结构 第五章第五章 函数函数 第六章第六章 数组数组 第七章第七章 指针指针 第八章第八章 结构体结构体 第九章第九章 文件操作文件操作 第二章第二章 算法与流程图算法与流程图 1 1 程序 数据结构 算法 程序 数据结构 算法 2 2 简单算法举例 简单算法举例 3 3 算法特性 算法特性 4 4 算法的自然语言表示 算法的自然语言表示 5 5 算法的流程图表示 算法的流程图表示 6 6 算法的伪代码表示 算法的伪代码
2、表示 1 1 程序 数据结构 算 程序 数据结构 算法法 Niklaus Wirth Niklaus Wirth designer of Pascaldesigner of Pascal Wirth Niklaus 1976 in English Algorithms Data Structures Wirth Niklaus 1976 in English Algorithms Data Structures Program Prentice Hall 0130224189 ISBN 978 0130224187Program Prentice Hall 0130224189 ISBN 97
3、8 0130224187 程序 为计算机解题编制的程序 为计算机解题编制的 一组指令集一组指令集 算法 处理问题的策略算法 处理问题的策略 数据结构 处理信息的表示数据结构 处理信息的表示 Turing AwardTuring Award 1984 1984 2 2 简单算法举例 简单算法举例 求和 求和 1 1 2 1 3 1 4 1 5 1 1001 1 2 1 3 1 4 1 5 1 100 蛮力法 蛮力法 S1 S1 先计算先计算1 2 0 51 2 0 5 再与 再与1 1相加得相加得1 51 5 S2 S2 计算计算1 3 0 333331 3 0 33333 与 与1 51 5相
4、加得相加得1 833331 83333 S3 S3 计算计算1 4 0 251 4 0 25 与 与1 833331 83333相加得相加得2 083332 08333 S99 S99 计算计算1 100 0 011 100 0 01 与 与5 1773785 177378相加得相加得5 1873785 187378 2 2 简单算法举例 简单算法举例 求和 求和 1 1 2 1 3 1 4 1 5 1 1001 1 2 1 3 1 4 1 5 1 100 改进的算法 改进的算法 S1 S1 初始化初始化sum 0 i 1sum 0 i 1 S2 S2 如果如果i i 100100 执行 执行
5、S3S3 否则执行 否则执行S5S5 S3 sum sum 1 iS3 sum sum 1 i S4 i i 1S4 i i 1 跳转到 跳转到S2S2 S5 S5 输出输出sumsum 算法结束 算法结束 2 2 简单算法举例 简单算法举例 从从3 3个数个数A A B B C C中找出最大的数 中找出最大的数 算法算法1 1 S1 S1 如果如果A BA B 执行 执行S2S2 否则执行 否则执行S3S3 S2 S2 如果如果A CA C 执行 执行S4S4 否则执行 否则执行S6S6 S3 S3 如果如果B CB C 执行 执行S5S5 否则执行 否则执行S6S6 S4 S4 输出输出A
6、 A S5 S5 输出输出B B S6 S6 输出输出C C 2 2 简单算法举例 简单算法举例 从从3 3个数个数A A B B C C中找出最大的数 中找出最大的数 算法算法2 2 S1 S1 初始化初始化max Amax A S2 S2 如果如果A BA B 执行 执行S3S3 否则 否则max Bmax B 执行 执行S3S3 S3 S3 如果如果max Cmax C 执行 执行S4S4 否则 否则max Cmax C 执行 执行S4S4 S4 S4 输出输出maxmax 算法的五个特点 算法的五个特点 有输入有输入 Input Input 零个零个或多个输入 或多个输入 有输出有输出
7、 Output Output 一个一个或多个输出 或多个输出 有穷性有穷性 Finiteness Finiteness 对于任意一组合法的输入 对于任意一组合法的输入 值 在执行有穷步骤之后一定能结束 值 在执行有穷步骤之后一定能结束 可行性可行性 EffectivenessEffectiveness 所有操作都可通过已 所有操作都可通过已 经实现的经实现的基本操作基本操作运算有限次来实现 运算有限次来实现 确定性确定性 DefinitenessDefiniteness 算法中每一步的描述都 算法中每一步的描述都 无二义性无二义性 只要输入相同 初始状态相同 无 只要输入相同 初始状态相同 无
8、 论执行多少遍 结果都应该相同 论执行多少遍 结果都应该相同 Turing Award 1974 3 3 算法的特性 算法的特性 好好 算法的特点 算法的特点 正确性正确性 Correctness Correctness 满足问题的需求 满足问题的需求 易读性易读性 Readability Readability 便于理解 测试和修改 便于理解 测试和修改 健壮性健壮性 Robustness Robustness 输入非法数据时 算法能 输入非法数据时 算法能 做出适当处理 不会产生难以预料的结果 做出适当处理 不会产生难以预料的结果 时空效率时空效率 Efficiency Efficienc
9、y 执行时间短 低存储 执行时间短 低存储 3 3 算法的特性 算法的特性 4 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 5 算法的流程图表算法的流程图表示示 从从3 3个数个数A A B B C C中找出最中找出最 大的数 大的数 开始 结束 输入A B C A B
10、A CC B 输出B输出C输出A 是 是是 否 否 否 5 1 5 1 流程图基本单元流程图基本单元 起止框输入 输出框处理框 判断框连结点 流程线 5 2 5 2 流程图绘制例流程图绘制例 输入50个学生的姓名 和成绩 输出不及格 学生的名单 开始 结束 i 1 输入ni si i 50 是 i 1 si50 是 i i 1 否 是否 否 5 2 5 2 流程图绘制例流程图绘制例 输入50个学生的姓名 和成绩 输出不及格 学生的名单 开始 结束 i 1 输入ni si i 50 是 i 1 si50 是 i i 1 否 是否 否 1 1 5 3 5 3 三种基本结构对应流程图三种基本结构对应
11、流程图 1 1 顺序结构 顺序结构 A B 5 3 5 3 三种基本结构对应流程图三种基本结构对应流程图 2 2 选择结构 选择结构 AB p 是否 5 3 5 3 三种基本结构对应流程图三种基本结构对应流程图 3 3 循环结构 当型 循环结构 当型 while p B while p B B p 是 否 5 3 5 3 三种基本结构对应流程图三种基本结构对应流程图 3 3 循环结构 直到型 循环结构 直到型 do B while p do B while p B p 是 否 5 4 5 4 作业作业 1 1 用流程图表示判断闰年的算法 用流程图表示判断闰年的算法 2 2 用流程图表示判断一个
12、正整数是否是素 用流程图表示判断一个正整数是否是素 数的算法 数的算法 5 5 5 5 用伪代码表示算法用伪代码表示算法 用介于自然语言和计算机语言之间的文字和用介于自然语言和计算机语言之间的文字和 符号表示算法符号表示算法 无固定严格的语法规则无固定严格的语法规则 begin endbegin end if else if else do whiledo while while while input printinput print 例如 求和算法的伪代码例如 求和算法的伪代码 1 1 2 1 3 1 4 1 5 1 1001 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 本章小结本章小结 好好 算法的特点算法的特点 算法的流程图表示算法的流程图表示