《C语言程序设计》-任正云-电子教案 第3章顺序程序设计

上传人:E**** 文档编号:89400262 上传时间:2019-05-24 格式:PPT 页数:41 大小:770KB
返回 下载 相关 举报
《C语言程序设计》-任正云-电子教案 第3章顺序程序设计_第1页
第1页 / 共41页
《C语言程序设计》-任正云-电子教案 第3章顺序程序设计_第2页
第2页 / 共41页
《C语言程序设计》-任正云-电子教案 第3章顺序程序设计_第3页
第3页 / 共41页
《C语言程序设计》-任正云-电子教案 第3章顺序程序设计_第4页
第4页 / 共41页
《C语言程序设计》-任正云-电子教案 第3章顺序程序设计_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《《C语言程序设计》-任正云-电子教案 第3章顺序程序设计》由会员分享,可在线阅读,更多相关《《C语言程序设计》-任正云-电子教案 第3章顺序程序设计(41页珍藏版)》请在金锄头文库上搜索。

1、第三章 顺序结构程序设计,算法 C语言概述 标准的输入与输出函数 标准输出/输入函数 字符输入/输出函数,3.1.1 算法的组成要素,3.1 算法,程序=算法+数据结构 程序=算法+数据结构+程序设计方法+语言工具和环境,1.算法的特性 有穷性 确定性 有0个或多个输入 有1个或多个输出 有效性,2.算法的组成要素 (1)操作 (2)结构控制,注释框 准备框 待处理框,判断框 连接点 流程线,起止框 处理框 输出输入框,3.1.2 算法的表示方法,3.1 算法,1. 用自然语言表示算法,2. 用流程图表示算法,3.1.2 算法的表示方法,3.1 算法,例如,3.1.2 算法的表示方法,3.1

2、算法,3. 用N-S流程图来表示算法,4.用伪代码表示算法 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。伪代码不用图形符号,书写方便,格式紧凑,便于向计算机语言算法过渡,5.用计算机语言表示算法 用计算机语言表示算法实际上就是实际的程序。用计算机语言表示算法必须严格遵守所使用的语言的语法规则,3.1.3 算法设计举例,3.1 算法,【例3.1】:计算1x2x3x4x5(即5!)。,算法1:直接写出算式 S1: result=1x2x3x4x5,算法2: 考虑到1x2x3x4x5可以改写为:(1x2)x3)x4)x5), S1:p1=1x2 S2:p2=p1x3 S3:p3=p

3、2x4 S4:p4=p3x5 结果在p4里。,算法3: S0: p=1,i=2 S1: p=pxi, i=i+1 S2: p=pxi, i=i+1 S3: p=pxi, i=i+1 S4: p=pxi, i=i+1,算法4: S0: p=1,i=2 S1: p=pxi, i=i+1 S2: 如果i小于或等于5,返回重新执行步骤S1及S2;否则,算法结束,此时p中的值就是5!的值。,3.1.3 算法设计举例,3.1 算法,【例3.1】:计算1x2x3x4x5(即5!)。,传统流程图表示,N-S流程图表示,【例3.2】: 对于一个大于或者等于3的正整数, 判断它是不是一个素数。,算法: S0: 输

4、入n S1: i=2 S2: n被i除得到余数r S3: 如果余数r=0,表示n能被i整除, 则打印n“不是素数”,算法结束; 否则继续执行S4。 S4: i=i+1 S5: 如果in-1,返回执行S2,否则 打印n“是素数”,算法结束,3.1.3 算法设计举例 例3、输入三角形的三边长,求三角形面积。,3.1 算法,main() float a,b,c,s,area; scanf(“%f%f%f“, ,输入 3 4 6 a= 3.00,b= 4.00,c= 6.00 area= 5.333,3.1.3 算法设计举例 【例3.4】( 百钱百鸡)公元前五世纪,我国古代数学家张丘建在算经一书中提出

5、了(百钱百鸡):鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?,3.1 算法, 解题思路的分析 这是一个有名的不定方程问题: cocks+hens+chicks=100 5*cocks+3*hens+chicks/3=100 式中: cocks: 鸡翁数 hens: 鸡母数 chicks: 鸡雏数,019中的整数,033中的整数,0100中的整数,S1: cocks=0; /*赋初值*/ S2: while(cocks=19) S2.1: 找出满足题意的 hens、chicks; S2.2 :cocks加1; /*cocks=cocks+1*/, 下面对S2

6、.1细化 思路1:把已经确定的cocks带入(1)与(2)中,求解方程,看能否找到满意的解。这种思路不太适合计算机求解。 思路2:在每个给定的cocks下,对hens的取值范围内的各个值 依次测试,看能找到哪些hens及chicks满足题意。于是把S2.1细 化为: S2.1.1: hens =0; /*赋初值*/ S2.1.2: while(hens =33) S2.1.2.1: 找出满足题意的chicks; S2.1.2.2:hens加1; /* hens = hens +1*/, 对S2.1.2.1细化 对S2.1.2.1来说,cocks 和hens都已确定,这时的chicks满足: c

7、hicks=100 cocks-hens 于是S2.1.2.1可细化为: S2.1.2.1: chicks=100 cocks-hens; if(5*cocks+3*hens+chicks/3.0=100) printf(“%d%d%dn“,cocks,hens,chicks);,# include “stdio.h“ void main() int cocks,hens,chicks; cocks=0; while(cocks=19) hens=0; while(hens=33) chicks=100 cocks-hens; if(5*cocks+3*hens+chicks/3.0=100)

8、 printf(“%d%d%dn“,cocks,hens,chicks); hens+; cocks+; ,3.2 C语言概述,3.2 C语言概述,3.2.1 控制语句,C有9种控制语句,它们是: if( )else (条件语句) for( ) (循环语句) while( ) (循环语句) dowhile( ) (循环语句) continue (结束本次循环语句) break (终止执行switch或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句),3.2 C语言概述,3.2.2 表达式语句,表达式语句是在表达式最后加上一个“;”组成。,例

9、如:,3.2 C语言概述,表达式语句常见的形式 1.赋值语句 2.函数调用语句 3.空语句,3.2.2 表达式语句,3.2.3 复合语句,用 把一些语句(语句序列,表示一系列工作)括起来成为复合语句,又称语句块、分程序。,如: int a,b,sum; a=0; b=2 sum=a+b; printf(“%d“,sum); ,注意:C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求。一般将彼此关联的、或表示一个整体的一组较短的语句写在一行上。,printf (“字符 格式控制”, 输出列表) 向终端按指定的格式,输出若干个任意类型的数 据。(putchar只能输出一个字

10、符。),3.3.1 格式输出函数 - Printf,说明 : 格式控制包含两部分内容: 修饰符: 输出格式的控制; 格式说明: 将输出的数据转换为指定的数据格式,总是由“”字符开始的. % 修饰符 格式字符,例 int a=3,b=4; printf(“%d %dn“,a,b); printf(“a=%d , b=%dn“,a,b); 输出结果: 3 4 a=3, b=4,printf (“max=%d,min=%5dn“, a , b);,3.3 标准输入输出,Printf 格式字符,int a=567;printf (“%d“,a);,567,int a=255;printf(“%x“,a

11、);,ff,int a=65;printf(“%o“,a);,101,int a=567;printf(“%u“,a);,567,char a=65;printf(“%c“,a);,A,printf(“%s“, “ABC“);,ABC,float a=567.789; printf(“%e“,a);,5.677890e+002,float a=567.789; printf(“%f“,a);,567.789000,float a=567.789; printf(“%g“,a);,567.789,printf(“%“);,%,例 main() unsigned int u=65535; prin

12、tf(“u=%dn“,u); 输出结果:u=-1,修饰符,%d格式, %d,对一般整形数据的输出格式。 %md,对给定的宽度m输出。若输出项的实际位数小于 m,则左端以空格补齐;若大于m,则按实际位数输出。 %ld, 对长整形数据的输出格式。 %mld 对给定的宽度m输出长整型数据。若输出项的实 际位数小于m,则左端以空格补齐;若大于m,按实际位 数输出。,# include “stdio.h“ main() int a; long int b; a=70; b=20060831; printf(“a=%dn“,a); printf(“a=%5dn“,a); printf(“b=%ldn“,b

13、); printf(“b=%12ldn“,b); ,运行结果: a=70 a= 70 (输出宽度为5,左端补3个空格) b=20060831 b= 20060831 (输出宽度为12,左端补4个空格),%O格式,# include “stdio.h“ main() int a; long int b; a=70; b=20060831; printf(“a=%on“,a); printf(“a=%5on“,a); printf“b=%lon“,b); printf(“b=%12lon“,b); ,运行结果: a=106 a= 106 (输出宽度为5,左端补2个空格) b=114415237 b

14、= 114415237 (输出宽度为12,左端补3个空格),%x格式,# include “stdio.h“ main() int a; long int b; a=70; b=20060831; printf(“a=%d, a=%o,a=%xn“,a,a,a); printf(“a=%5d, a=%5o,a=%5xn“,a,a,a); printf(“b=%ld, b=%lo,b=%lxn“,b,b,b); printf(“a=%12ld, a=%12lo,a=%12lxn“,b,b,b); ,运行结果: a=70 , a=106 , a=46 a= 70 , a = 106 , a= 46

15、 b=20060831 , b=114415237,b=1321a9f b= 20060831,b= 114415237 ,b= 1321a9f,%u格式,# include “stdio.h“ main() int a=-1,b=1; printf(“ 十进制 八进制 十六进制 无符号整型n”); printf(“a: %d , %o , %x , %u“,a,a,a,a); printf(“b: %d , %o , %x , %u“,b,b,b,b”); ,运行结果: 十进制 八进制 十六进制 无符号整型 a: -1 , 177777 , ffff , 65535 b: 1 , 1 , 1 , 1,%c格式,# inlude “stdio.h“

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号