第二章算法 2.1算法的概念 ■2.2简单算法举例 2.3算法的特性 2.4算法的表示 2.5结构化程序设计方法
第二章 算法 ◼ 2.1 算法的概念 ◼ 2.2 简单算法举例 ◼ 2.3 算法的特性 ◼ 2.4 算法的表示 ◼ 2.5 结构化程序设计方法
2.1算法的概念 对操作的描述 程序=数据结构+算法 对数据的描述 算法分类:数值运算算法-用于求数值解 非数值运算算法---多用于管理领域
2.1 算法的概念 程序=数据结构+算法 对数据的描述 对操作的描述 算法分类:数值运算算法 ---- 用于求数值解 非数值运算算法 ---- 多用于管理领域
2.2简单算法举例 例:求两个数的和语言程序 算法1: #include 输出结果: stepl:给定两个数的值 void main( step2:做加法运算 i int x, y, z 2+3=5 step3:将结果保存 step4:输出结果 Xty; 算法2: printf(《z%dⅦn”,z); stepl:2→x,3→ printf(“od+%d=%dn y, z) step2: x+y(2+3) step3:5→Z step4:输出z
2.2 简单算法举例 算法1: step1:给定两个数的值 step2:做加法运算 step3:将结果保存 step4:输出结果 算法2: step1:2 → x ,3 → y step2:x+y (2+3) step3:5 → z step4:输出 z C语言程序 #include void main( ) { int x, y, z; x=2; y=3; z=x+y; printf(“z=%d\n”, z); printf(“%d+%d=%d\n”, x, y, z); } 输出结果: z=5 2+3=5 例:求两个数的和
2.3算法的特性 有穷性:一个算法包含有限的操作步骤 2.确定性:算法中的每一个步骤是确定的,含义是唯一的 3.有零个或多个输入 4.有一个或多个输出 5.有效性:算法中每一个步骤应能有效运行
2.3 算法的特性 1. 有穷性:一个算法包含有限的操作步骤 2. 确定性:算法中的每一个步骤是确定的,含义是唯一的 3. 有零个或多个输入 4. 有一个或多个输出 5. 有效性:算法中每一个步骤应能有效运行
2.4算法的表示 1.用自然语言表示 开始 优点是使用日常用语,通俗易懂 2→x 缺点是文字冗长,容易出现歧义 3>y 2.用流程图表示:用图框表示各种操作 X+y z 优点是直观形象,易于理解 输出z 结束
2.4 算法的表示 1. 用自然语言表示 优点是使用日常用语, 通俗易懂 缺点是文字冗长, 容易出现歧义 开始 2→x 3→y x+y→z 输出z 结束 2. 用流程图表示: 用图框表示各种操作 优点是直观形象, 易于理解
3.三种基本结构 ①顺序结构②选择结构 ③循环结构 while循环do- while循环 A 成立 不成立 A B A B 成立 不成立 成立 不成立 4.N-S流程图 AB 当P成立 成立 不成立 当P成立 B
3. 三种基本结构 ①顺序结构 ②选择结构 ③循环结构 A B P A B 成立 不成立 不成立 A P 成立 A P 成立 不成立 4. N-S流程图 A B A B 成立 不成立 P A 当P成立 当P成立 A while循环 do-while循环
例:输入10个数,找出其中最大的数,并输出。 step1:输入一个数,存放在一个变量max中; step2:设置用来累计比较次数的计数器i(也是一个变 量)1→i; step3:输入一个数,存放在另一个变量x中; step4:比较max和x中的数,若xmax,则将x的值送入max, 否则,max的值不变; step5:i增加1,即i1→i; step6:若i<9,则返回step3,继续执行, 否则输出max中的数,此时max中的数即为最大 数
例:输入10个数,找出其中最大的数,并输出。 step6: 若imax,则将x的值送入max
输入一个数→max #include 1: void main( →1 i int x, max, i; 输入x scanf(%od, &max); x>max? 是 do x→max { scanf(“%d”,&x); i+1→i if (x>max) 当i<9 max-x, 输出max i=i+1 while(i<9); printf(“max=%d”,max);
输入一个数 max 1 i 输入 x xmax? 是 否 x max i+1 i 当 i void main( ) { int x , max , i ; scanf(“%d”, &max); i=1; do { scanf(“%d”, &x); if (x>max) max=x; i=i+1; } while ( i<9) ; printf(“max=%d” , max) ; }