《c语言课件第三章(颜辉)》由会员分享,可在线阅读,更多相关《c语言课件第三章(颜辉)(23页珍藏版)》请在金锄头文库上搜索。
1、Chap3 算法与程序设计,算法 语句概述 C 程序的基本结构,算 法,程序 用编程语言编写,完成特定功能的语句的集合。 编程步骤: 1. 明确问题 2. 问题 若干具体步骤(算法) 3. 算法 程序 4. 上机调试运行 算法 解题方法或解题步骤的精确描述 算法表示:文字描述、流程图和N-S流程图,算法与程序,程序算法数据结构 结构化程序设计方法 语言工具和环境,例3-1,从键盘中输入100个整数,对其中的正整数进行累加,最后输出结果。 算法描述(自然语言) 输入一个数; 如果该数 0,累加它; 如果100个数没有输入完,转步骤(1); 输入完100个数后,输出累加和。,例3-1 算法描述 (
2、流程图),开始,输入一个数,该数0,累加,输入完100个数,输出累加和,结束,起止框,处理框,判断框,流向线,Y,Y,N,N,例3-1 算法描述(N-S流程图),处理,判断,重复,算法的C语句实现,void main( ) int x; /* 存放输入数的单元 */ int count; /* 存放输入个数的单元 */ int sum; /* 存放累加和的单元 */ count = 0; sum = 0; /* 工作单元初值 */ do scanf (“%d” , /* 输出累加和 */ ,准备工作,算法步骤,语句概述,语言的五类语句 1 函数调用语句 2 表达式语句 3 空语句 4 复合语句
3、 5 程序结构控制语句 语言的所有语句必须以分号 ; 结束,语句概述,1 函数调用语句 scanf( ”%d%d”, ,语句概述,4复合语句 statement 1; statement 2; statement n; ,5 程序结构控制语句 条件控制(第四章) 循环控制(第五章),C 程序的基本结构,顺序结构 选择结构 循环结构,C 程序的基本结构,顺序结构 语句1 ; 语句2 ; 语句3 ; ,语句1;,语句2;,冯.若依曼机工作原理 顺序执行,例34 交换变量的值,对两个变量先输入两个值,然后交换这两个变量的值。 x temp y 步骤: 1 x - temp,例34 交换变量的值,例
4、对两个变量先输入两个值,然后交换这两个变量的值。 x temp y 步骤: 1 x - temp 2 x - y,例34 交换变量的值,例 对两个变量先输入两个值,然后交换这两个变量的值。 x temp y 步骤: 1 x - temp 2 x y,例34 交换变量的值,例 对两个变量先输入两个值,然后交换这两个变量的值。 x temp y 步骤: 1 x - temp 2 x y,例34 交换变量的值,对两个变量先输入两个值,然后交换这两个变量的值。 main() int x, y, temp; scanf(“%d%d”, ,C 程序的基本结构,顺序结构 选择结构,语句1 ;,语句2 ;,条
5、件?,满足,不满足,条件 满足 不满足,语句1 语句2,选择结构,例 输入变量x,计算y值。 1 当 x=0 y = -1 当 x0) y = 1; else y = -1; printf(“x=%d, y=%d”, x, y); ,C 程序的基本结构,顺序结构 选择结构 循环结构 不满足 满足,重复执行的语句;,后一语句;,条件?,循环结构,void main( ) int i, max, x; i=9; scanf(“%d“, ,重复步骤,C 程序的基本结构,结构化程序设计基本要求: 自顶向下,模块化设计; 使用三种基本结构构造程序; 程序书写规范,切勿随心所欲; 清晰第一,效率第二。 思
6、路清晰 书写清晰(变量名、函数名、注解等) 书写使用阶梯形,int merge(int a1 , int n1, int a2 , int n2) /* 把2个排好序的数组a1、a2归并到a2上 */ int i,j=0,k=0, b10; if (n2=0) for ( ; j0) for (i=0; ibj) a2k=bj; j+; else a2k=a1i; if (a1i=bj) j+; i+; k+; if ( in1 ) for ( ; in1; i+,k+) a2k=a1i; if ( jn2 ) for ( ; jn2; j+,k+) a2k=bj; return(k); ,(请注意书写格式),