1 / 18

第二章 程序的灵魂 —— 算法

第二章 程序的灵魂 —— 算法. 1+2+3 + • • • +100=? 法一: ((( 1+2 ) +3 ) + • • • 100 ) • • • =5050 法二: ( 1+99 ) + ( 2+98 ) + • • • ( 49+51 ) + • • • 100+50 =50*100+50 =5050. 算法的概念. def : 解决问题的方法或步骤 数值算法 ----- 做数值运算的算法 分类:

lael-malone
Download Presentation

第二章 程序的灵魂 —— 算法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章程序的灵魂——算法

  2. 1+2+3+•••+100=? 法一: (((1+2)+3)+ •••100) ••• =5050 法二: (1+99)+(2+98)+ ••• ( 49+51)+ •••100+50 =50*100+50 =5050 算法的概念

  3. def:解决问题的方法或步骤 数值算法-----做数值运算的算法 分类: 非数值算法-----做非数值运算的 算法 程序=数据结构+算法 算法的概念

  4. 算法的特性 (1)有穷性:算法包含的操作步骤有限 (2)确定性:算法中每一步的操作步骤都是确 定的,不能模棱两可 (3)有零个或多个输入:在执行算法时从外 界取的必要的信息 (4)有一个或多个输出:即算法的求解 (5)有效性:算法中每一个步骤都应当能 有效执行 算法的概念

  5. 酱油 (1)自然语言表示法 算法的表示 Q:将分别装有醋和酱油的两个杯子里面的内容 交换。 分析:借用第三个杯子 (空杯) 2 1 3 Algorithm: Step1:将装有醋的杯子的内容倒入空杯 Step2:将装有酱油的杯子的内容倒入原装醋的杯 子里 Step3:将现装有醋的杯子的内容倒入原 装酱油的杯子里

  6. (二)流程图表示法 算法的表示 起止框 用约定的一些图形符号描述操作步骤,直观形象,易于理解。 以下介绍三种基本结构:顺序、选择、循环。共同点:只有一个入口、只有一个出口、结构内的每一部分都有机会被执行到。 输入输出框 处理框 判断框 流程线 连接点 注释框

  7. 传统流程图之三种基本结构 开始 x1,x2 模块A 模块A Temp=x1 模块B X1=x2 模块C 模块C X2=Temp x1,x2 结束 顺序结构 开始 x1,x2 Temp=x1 Q:键盘输入两个数存储起来,要求交换后实现输出。 模块B x1=x2 x2=Temp x1,x2 结束

  8. 选择结构 开始 开始 传统流程图之三种基本结构 X1 x1 Y Y 条件P 条件P N N Q:键盘输入任意数并输出算术平方根。 Q:键盘输入任意数并输出算术平方根。 N N x1>=0 X1>=0 Y Y 模块A 模块A 模块B 模块B Y1=sqrt(x1) Y1=sqrt(x1) Y1 Y1 结束 结束

  9. N 条件P N 模块A 模块A 条件P Y Y Y Y 模块A 条件P 条件P 模块A N N 循环结构 传统流程图之三种基本结构 或 (当型循环) (直到型循环) Sample 1 Sample 2

  10. 例一:当型循环 开始 I=1,Sum=0 Q:求表达式1+2+3+…+99的值并输出。 N I<100 Y Sum=Sum+I I=I+1 Sum 结束

  11. 例二: 直到型循环 开始 I=1,Sum=0 Q:求表达式1+2+3+…+99的值并输出。 Sum=Sum+I I=I+1 N I>99 Y Sum 结束

  12. 输入x1,x2 Temp=x1 X1=x2 模块A X2=Temp 模块B 输出x1,x2 模块C (三)N-S流程图表示法 算法的表示 顺序结构 Q:键盘输入两个数存储起来,要求交换后实现输出。 输入x1,x2 模块A Temp=x1 模块B x1=x2 模块C x2=Temp 输出x1,x2

  13. x1>=0 条件P 成立 不成立 模块A 模块B 选择结构 输入x1 Q:键盘输入任意数并输出算术平方根。 成立 不成立 输出sqrt(x1)

  14. 循环结构 当条件P成立 直到条件P成立 模块A 或 模块A

  15. nyear nyear能被4整除 实例分析 开始 键盘输入某一年份,判定是否是闰年 N Y nyear不能被100整除 N N Y nyear能被400整除 Y nyear不是闰年 nyear是闰年 结束

  16. nyear nyear nyear nyear 是闰年 是闰年 不是闰年 不是闰年 输入年份nyear nyear能被4整除 y n nyear不能被100整除 N-S流程图 y n nyear能被400整除 n y

  17. 键盘输入10个数,找出其中的最大数并输出 输入x max=x I=1 I<10成立 输入x max<x y n max=x I=I+1 输出m

  18. 学生成绩管理系统 成绩录入 成绩查询 成绩统计 成绩打印 系统维护 基本思路:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 具体采用以下方法保证得到结构化的程序: 自顶向下 逐步细化 模块化设计 结构化编码 结构化的程序设计方法 如:学生成绩管理系统

More Related