




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用计算机求解问题的一般过程 1 问题分析阶段 2 数据结构设计阶段 3 算法设计阶段计算机解题的步骤 4 编码与调试阶段用某种程序设计语言描述的解题算法 计算机程序 第3章计算机算法初步 3 1算法的概念 正确 易读 高效 通用 算法描述 例 求n 即1 2 3 n 设两个变量 p存放乘积 i存放乘数 S1 输入nS2 使p 1S3 使i 2S4 使p i 乘积仍放在变量p中 可表示为p i pS5 使i的值加1 即i 1 iS6 判断i n否 是 输出p 不是 返回S4执行步骤S4以及其后的步骤 P65例1 自学 求解一元二次方程 问题分析假设一元二次方程可以书写成ax2 bx c 0 可以看出 任何一个一元二次方程都由三个系数a b c惟一确定 所以 首先需要用户输入三个系数 然后再根据一元二次方程的求解规则计算最终的结果 并将结果显示输出 算法描述 include includemain inta b c t printf Inputa b c scanf d d d 程序代码 3 2穷举法 概述列举出每一个可能性 逐个进行排查 P67例2 判断给定整数是否是素数 所谓素数是指仅能被1和自身整除 且大于等于2的数值 问题分析为了检查一个整数是不是素数 可以采用穷举法 假设给定的整数用x表示 则判断过程就是确认x不能整除以2 x 1之间的任何整数 这就需要一一列举出2 x 1之间的每个整数进行排查 算法描述 includemain intx t printf Enteraninteger scanf d 程序代码 P69例3 百钱买百鸡 问题分析假设 公鸡x只 母鸡y只 小鸡z只 5x 3y z 3 100 x y z 100公鸡数量在0 100 5母鸡数量在0 100 3小鸡数量在0 100 或 100 x y 有钱百枚 希望买一百只鸡 公鸡5枚钱一只 母鸡3枚钱一只 而小鸡3只1枚钱 试问 如果用百枚钱买百只鸡 可以包含几只公鸡 几只母鸡和几只小鸡 算法描述 include includemain intx y z for x 0 x 100 5 x for y 0 y 100 3 y z 100 x y if 15 x 9 y z 300 printf x d y d z d n x y z 程序代码 递推法与迭代法是基于分步递增方式进行求解的解题方法 递推法的基本方法 其基本策略是将复杂的运算划分为可以重复操作的若干个简单的运算 将解决问题的过程分为若干个步骤 每个步骤都产生一个子解 每个子解都是由前面若干个子解生成的 它们均与问题规模相关 且是相关问题规模的完整解 3 3递推与迭代法 采用递推法进行问题求解的关键在于找出递推公式和边界条件 如 求阶乘的递推公式 n n n 1 边界条件 0 1 迭代法的基本方法 迭代法与递推法类似 也是递增求解 但递推法每步得到的解都是对应问题规模的完整解 而迭代法中间步骤得到的解一般只是 近似解 而不代表子问题的解 例如 计算 问题分析等比数列的递推公式为 itemi itemi 1 ratio后项等于前项乘以比例值sumi sumi 1 itemi前i项之和等于前i 1项之和加当前项由于在重复上述递推计算之前 需要将第1项的值累加到sum中 所以 需要先将item存入sum中 P71例4 等比数列求和 所谓等比数列是指在一组数据中 后项和前项之间存在着一个固定的比例关系 本题要求给定等比序列的首项和比例 计算这个数列的前10项之和 算法描述 includemain longitem ratio sum i printf nEnterthefirstitemandratio scanf ld ld 程序代码 P73例5 求圆周率 可以通过迭代 逐个计算出每一个数据项 再将它们累加起来 为了满足要求的精度 可以通过检查数据项的大小来控制循环的终止 问题分析圆周率 的计算公式为 4 4 3 4 5 4 7 4 9 4 11 在这个数列中 每个数据项的取值与该项的序号存在着一定的关系 算法描述 include includemain intsign 1 longi 1 doublePI 0 0 item do item sign 4 0 2 i 1 sign sign PI item while fabs item 1e 4 数据项精度控制循环 printf PI lf n PI 程序代码 P74例6 按位分解整数 问题分析可以利用程序设计语言提供的整除和求余运算实现将整数分解的目的 例如 对于整数7326 用7326 1000就得到了最高位7 而7326 1000得到了其余的位数326 但是 这种方法要求首先获得整数最高位的权 因此 算法应该先求整数最高位的权 然后从高向低逐个分离出每位数字 要求从键盘输入一个整数 然后将它的每一位分解成独立的数字字符并输出之 算法描述 includemain longx y n printf Enteraninteger scanf ld 程序代码 break语句 break的功能是结束当前语句结构的继续执行 将控制转移到当前语句结构的下一条语句处 应用在循环结构中 可以实现提前结束循环的目的 includemain inti sum for i 1 sum 0 i 1000 break sum i printf n d sum d i sum break与continue语句的应用 continue语句 continue语句只能用在循环结构中 其功能是提前终止本次循环体的执行 转去执行下一次循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《航空电气设备维修》试卷1及答案
- 初二数学月考试卷及答案
- 包头东河中考试卷及答案
- 新质生产力的核心资源有哪些
- 新质生产力公考解读
- 构建和谐医患关系论文
- 媒体视角的新质生产力解读
- 有关元旦晚会活动策划方案模板
- 学校老师个人年度教学工作方案怎么写
- 2025年医学信息学技术应用能力检测答案及解析
- ISO 15609-1 金属材料焊接工艺规程及评定-焊接工艺规范中文版
- 人居环境科学市公开课一等奖省赛课微课金奖课件
- 2023译林版新教材高中英语选择性必修第一册同步练习-Unit 1 Food matters
- 脑膜瘤的护理诊断与护理措施
- T-ZJFS 010-2024 银行业金融机构转型贷款实施规范
- 高职应用语文教程(第二版)课件 1《老子》三章
- 施工升降机安装拆卸安全教育
- 安全生产管理中的安全设备与技术应用
- 仓库出租合同范文
- 安全教育教程(高职)全套教学课件
- 《3D打印产品后处理》 课件 项目3-5 3D 打印产品的上色、3D 打印产品的喷砂处理、3D 打印产品的丝网印刷
评论
0/150
提交评论