收藏 分享(赏)

第三章 顺序程序设计.ppt

上传人:dzzj200808 文档编号:5753657 上传时间:2019-03-16 格式:PPT 页数:67 大小:559.50KB
下载 相关 举报
第三章 顺序程序设计.ppt_第1页
第1页 / 共67页
第三章 顺序程序设计.ppt_第2页
第2页 / 共67页
第三章 顺序程序设计.ppt_第3页
第3页 / 共67页
第三章 顺序程序设计.ppt_第4页
第4页 / 共67页
第三章 顺序程序设计.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、第三章 顺序结构程序设计,教学目的与要求: 1 . 算法与程序设计2. C语句概述3 . C 语言常用的输入 / 出方式4. 顺序结构程序设计,3.1 算法与程序设计,著名计算机科学家沃思(Nikiklaus Wirth)提出:数据结构+算法=程序,描述数据的类型,组织形式,描述对数据的操作步骤,3.1 算法与程序设计,(本节请参考潭浩强C程序设计三版,第2章 算法,受时 间限制本节只能做简单介绍) 1、算法:为解决一个问题而采取的方法和步骤称为“算法”。对于同一个问题可以有不同的解题方法和步骤,也就是有不同的算法。算法有优劣,一般而言,应当选择简单的、运算步骤少的,既运算快、内存开销小的算法

2、。2、两大类计算机算法:数值运算方法(求解数值解,成熟),非数值运算方法(事务管理,广泛)。,3.1 算法与程序设计,3、算法的5大特性:(1)有穷性:一个算法应当包含有限的步骤,而不能是无限的步骤;同时一个算法应当在执行一定数量的步骤后,算法结束,不能死循环。(2)确定性算法中的每一个步骤都应当是确定的,而不是含糊的、摸棱两可的。也就是 说不应当产生歧义。特别是算法用自然语言描述时应当注意这点。例如:“将成绩优秀的同学名单打印输出”就是有歧义的。“成绩优秀”是要求每门课程都90分以上,还是平均成绩在90分以上?不明确,有歧义,不适合描述算法步骤。,3.1 算法与程序设计,(3)有0个或多个输

3、入(即:可以没有输入,也可以有输入)所谓输入是指算法执行时从外界获取必要信息。(外界是相对算法本身的,输入可以是人工键盘输入的数据,也可以是程序其它部分传递给算法的数据)。例如:不需要输入任何信息,就可以计算出5!;(0个输入)(4)有1个或多个输出(即算法必须得到结果)算法的输出:算法得到的结果。算法必须有结果,没有结果的算法没意义。(结果可以是显示在屏幕上的,也可以是将结果数据传递给程序的其它部分)(5)有效性算法的每个步骤都应当能有效执行,并能得到确定的结果。例如:b=0,则执行a/b是不能有效执行的。,3.1 算法与程序设计,4、算法的描述方法为了表示一个算法,可以用不同的方法。常用的

4、算法表示方法:(1)带序号的自然语言描述。(P15-P18,例2.1-2.5)(2)传统流程图,3.1 算法与程序设计,美国标准化协会ANSI规定了一些常用的流程图符号,流程图是表示算法的较好的工具。流程图包括以下几个部分:表示相应操作的框,带箭头的流程线,框内、框外必要的文字说明。注意:流程线一定不要忘记箭头,因为它反应流程执行的先后次序。,3.1 算法与程序设计,用传统流程图 表示,3.1算法与程序设计,(3)N-S流程图表示算法(盒图)N-S流程图的流程图符号:,N-S流程图表示算法的优点:比文字描述更加直观、形象,易于理解;比传统的流程图紧凑易画;废除流程线,整个算法结构是由各个基本结

5、构按顺序组成。N-S流程图的上下顺序就是执行时的顺序。N-S图表示的算法都是结构化的算法。,3.1算法与程序设计,(4)伪代码。用介于自然语言和计算机语言之间的文字及符号来描述算法。(方便、易懂、便于向计算机语言过渡。)要求掌握N-S流程图和伪代码。,3.1 算法与程序设计,5 、 结构化程序设计 结构化程序设计的要点是:(1)、要求程序清晰、可读性强。(2)、要求程序设计者按一定规范编写程序,而不能随心 所欲地设计程序。(3)、结构化程序设计方法规定了几种具有良好特性的“基 本结构”,用它们作为构成程序的基本单元。 “基本结构”应具 有以下特性: 只有一个入口; 只有一个出口; 没有永远执行

6、不到的语句; 没有死循环顺序结构、选择结构、循环结构是符合上述特点的基本结构。 已经证明,由这三种基本结构所构成的程序可以处理任何复杂 问题。,3.1 算法与程序设计,(4)、程序开发应当采取“自顶向下,逐步细化和模块化” 的方法。即将一个大任务先分成若干个子任务,每个子任务就 是一个模块。如果一个子任务还是太复杂,就再分解成若干个 子任务,如此逐层分解,逐步细化。,3.1 算法与程序设计,6、 结构化程序设计结构化算法或程序由三种基本结构顺序组成:1、 顺序结构2、 选择结构3、 循环结构,由基本结构组成的算法属于“结构化”算法。 结构化程序设计的优点:易编、易读、易懂、易维护。 譬如:教务

7、信息系统,3.1 算法与程序设计,7、 结构化程序设计过程(1)确定算法:分析问题(建立数学模型,选择公式),写出算法描述。(2)编写程序:用计算机语言写出实现算法的程序。(3)输入(编辑)程序 编译、连接、执行程序 输出结果(测试),3.1算法与程序设计,例:已知一个圆柱体高为,半径为,求圆柱体体积,3.2 C语句的概述,一、语句用来对数据进行加工(完成操作任务),是构成程序 的基本单位。通常一个C程序由若干个函数(系统、用户)组 成,每个函数由若干条语句组成。每条语句总是以;结尾。 二、C语句的分类 可分为三类:简单语句、复合语句、空语句 (一)简单语句:1、表达式语句: 由 表达式; 组

8、成赋值语句:赋值表达式;例: s=3.1415*R*R; i+; 函数调用语句:函数调用表达式;例:printf(“Hello,world!n”);,3.2 C语句的概述,2、结构控制语句:控制程序流程 选择语句:ifelse; switch;循环语句:for ; while ; dowhile转向语句: continue; break; goto; return; (二)复合语句:将一组语句扩在一对 中。如:while(i100)sum+=i;i+; 说明:复合语句的 后不能有;复合语句中可以事简单语句、复合语句和空语句。,3.2 C语句的概述,(三)空语句: ; /*仅有一个*/空语句什么

9、也不做,有时被用作转向点,或作为循环语句提 供空体。例:for(i=0;i=10;i+);,3.3输入/输出及其C语言的实现,1、计算机由主机(CPU、内存),外围设备(输入/输出设备),接口组成 。,3.3输入/输出及其C语言的实现,2. 输入/输出:从计算机向外部设备(如显示器、打印机、 磁盘等)输出数据称为“输出”, 从外部设备(如键盘、 鼠标、扫描仪、光盘、磁盘)向计算机输入数据称为“输 入”。输入/输出是以计算机主机为主体而言的。3.C语言本身不提供输入/输出语句,I/O操作通过调用系统 函数实现,如printf函数,scanf函数。在程序开头要有: #include “stdio.

10、h”,C编译系统与C函数库是分别设计的,因此不同的计算机系统所提供函数的数量、名字、功能不完全相同。但是,有些通用的函数各种计算机系统都提供,成为各种计算机系统的标准函数。,3.3输入/输出及其C语言的实现,4.C函数库中有一批“标准输入/输出函数”。其中有: printf(格式化输出)putchar(输出字符) puts(输出字符串)scanf(格式化输入)getchar(输入字符) gets(输入字符串),3.3输入/输出及其C语言的实现,5.在使用C库函数时,要用预处理命令“#include” 将有关 的“头文 件”包含到用户源文件中。头文件包含库中函数说明,定义的常 量等。每个库一般都

11、有相应的头文件。比如printf等函数属于标准输入/输出库,对应的头文件是stdio.h。又如fabs函数属于数学库,对应的头文件是math.h,那么应当在程序的开头#include 。,注意:Turbo C中可以用F1查看一个函数的说明(包含属于哪个头文件)。,3.4格式输入/输出,3.4.1 printf函数(格式输出函数)printf函数全称是格式化输出函数,即按指定的格 式完成输出功能。它可以向屏幕输出字符,字符串, 数值,及空行等。输出的内容可以是执行结果,也可 以是提示语。,1. printf函数的一般格式 :printf(格式控制字符串,输出表列),3.4 格式输入/输出,3.4

12、.1 printf函数(格式输出函数),3.4 格式输入/输出,3.4.1 printf函数(格式输出函数),格式控制字符串中的三类符号格式说明符:用于对各输出项的输出形式进行控制。如:%c,%d,%f,%o,%s,%x,%等转义字符:如:n,r,b,”,ddd等普通字符:非转换说明符,非转义字符的字符。如:abc12等输出表列包括:变量表达式字符数组名,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数) 2.格式字符 :对于不同类型的数据项应当使用不同的格式字符构成的格式说明项。 (1)d格式符(i格式符)。表示输出带符号的十进制的整数。 %d,i按照数据的实际长度输出。p

13、rintf(“%d”,a); printf(“%i”,a);%md,m指定输出字段的宽度(整数)。如果数据的位数小于m,则左端补以空格(右对齐),若大于m,则按照实际位数输出。例: printf(“%4d,4d”,a,b); 输入a=123;b=12345;屏幕显示为: 123,12345,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数) %-md,m指定输出字段的宽度(整数)。如果数据的位数小于m,则右端补以空格(左对齐),若大于m,则按照实际位数输出。例: printf(“%-4d,-4d”,a,b); 输入a=123;b=12345;屏幕显示为: 123,12345

14、%ld,输出长整型数据,也可以指定宽度%mld。 例:long a=12;printf(“%3ld”,a);屏幕显示为: 12,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)(2) o格式符。以八进制形式输出整数 。注意是将内存单元中的各位的值按八进制形式输出,输出的数据不带符号,即将符号位也一起作为八进制的一部分输出。 (3)x格式符。以十六进制形式输出整数。与o格式一样,不出现负号。 printf(“%0x”,a); 或 printf(“%x”,a); 表示输出无符号的十六进制的整数,小写,不输出前导0xprintf(“%0X”,a); 或 printf(“%0X”,

15、a); 表示输出无符号的十六进制的整数,大写,不输出前导0X,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)(4) u格式符。用来输出unsigned无符号型数据,即无 符号数,以十进制形式输出。一个有符号整数可以用%u形式输出,反之,一个 unsigned型数据也可以用%d格式输出。 但是要注意无符 号数据的溢出。例:课本P77页。(5)c格式符。用来输出一个字符。一个整数只要它 的值在0-255范围内,也可以用字符形式输出。反之,一 个字符数据也可以用整数形式输出。也可以指定字段宽 度。%mc,m整数 。,3.4 格式输入/输出,3.4.1 printf函数(格式输出

16、函数),例:char a=1;char b=2;char c=3;printf(“%2cn”,a); 输出: 1printf(“%3cn”,b); 2printf(“%4cn”,c); 3,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)(6) s格式符。用来输出一个字符串。有几种用法 。,%s,输出字符串。%ms,输出的字符串占m列,如果字符串长度大于m,则字符串全部输出;若字符串长度小于m,则左补空格(右对齐)。%-ms,输出的字符串占m列,如果字符串长度大于m,则字符串全部输出;若字符串长度小于m,则右补空格(左对齐)。%m.ns,输出占m列,但只取字符串左端n个字符

17、,左补空白(右对齐)。%-m.ns,输出占m列,但只取字符串左端n个字符,右补空白(左对齐)。,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数),例 : “ CHINA“printf(“%8s”,a); CHINAprintf(“%2s”,b); CHINA printf(“%-8s”,c); CHINA printf(“%8.3s”,c); CHIprintf(“%-8.3s”,c); CHI,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)(7) f格式符。用来输出实数(包括单、双精度,单双精度格式符相同),以小数形式输出。有几种用法 。,%f,不指

18、定宽度,使整数部分全部输出,并输出6位小数。注意,并非全部数字都是有效数字,单精度实数的有效位数一般为7位(双精度16位)。,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数),3.4 格式输入/输出,3.4.1 printf函数(格式输出函数),%m.nf,指定数据占m列,其中有n位小数。如果数值长度小于m,左端补空格(右对齐)。%-m.nf,指定数据占m列,其中有n位小数。如果数值长度小于m,右端补空格(左对齐)。,例:float a=123.456;printf(“%.2f”,a); /*123.46*/printf(“%10.2f”,a); /*123.46*/pri

19、ntf(“%-10.2f”,a); /*123.46*/,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)(8) e格式符,以指数形式输出实数。,%e,不指定输出数据所占的宽度和小数位数,由系统自动指定,如6位小数,指数占5位-e占1位,指数符号占1位,指数占3位。数值按照规格化指数形式输出(小数点前必须有而且只有1位非0数字)。例如:1.234567e+002。(双精度),%m.ne和%-m.ne,m总的宽度,n小数位数。与前面所讲类似。课本P80,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)(9) g格式符,用来输出实数,它根据数值的大小,自 动

20、选f格式或e格式(选择输出时占宽度较小的一种), 且不输出无意义的0(小数末尾0)。,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)以上介绍的9种格式符,归纳如下表:,3.4 格式输入/输出,3.4.1 printf函数(格式输出函数)使用printf函数的几点说明:(1)除了X,E,G外,其它格式字符必须用小写字母。如%d不能写成%D。(2)可以在“格式控制”字符串中包含转义字符。如“n”(3)格式符以%开头,以上述9个格式字符结束。中间可以插入附加格式字符。(4)如果想输出字符%,则应当在“格式控制”字符串中用两个%表示。,3.4 格式输入/输出,3.4.1 prin

21、tf函数(格式输出函数),例:int i=1234; float f=-56.78;printf(“ni=%+6d“, i); /* “i=+1234“ */ printf(“%7.4f%“, f); /* “-56.7800%“ */printf(“%+6.3G“, f); /* “-56.8“ */printf(“%-6.3s“, “Hello“); /* “Hel“ */,3.4 格式输入/输出,作业: 15.(200903) 程序段:int x=12; double y=3.141593;printf(“%d%8.6f”,x,y);的输出结果是 (A)A)123.141593B)12

22、3.141593C)12,3.141593D)123.1415930,3.4 格式输入/输出,作业(200903)6. 表达式(int)(double)(5/2)+2.5)的值是7. 若变量x,y已定义为int类型且x的值为99,y的值 为9,请将输出语句printf(【7】,x/y); 补充完整,使 其输出的计算结果形式为: x/y=11。,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),1.scanf函数的一般格式:scanf(格式控制字符串,地址列表),例如,用scanf函数输入数据。,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),3.4 格式输

23、入/输出,3.4.2 scanf函数(格式输入函数),3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),2、格式说明与printf函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插入附加字符。 P83表43,44,说明:(1)对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),(2)可以指定输入数据所占列数,系统自动按它截取所需数据。如:int i1,i2;char c;scanf(“%3d%3c%3d”,输入:123-456后,i1=123,i2=456,c=-,3.4

24、格式输入/输出,3.4.2 scanf函数(格式输入函数),(3)如果%后有“*”附加格式说明符,表示跳过 它指定的列数,这些列不赋值给任何变量。如:scanf(“%3d%*3c%2d”,输入:123456789后,i1=123,i2=78,(456被跳 过)在利用现有的一批数据,有时不需要其中某些数据,可以用此方法“跳过”它们。,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),(4)输入数据时可以指定数据字段的宽度,不能规定数据的精度。例如scanf(“%7.2f”,是不合法的。不能指望使用这种形式通过输入1234567获得 a=12345.67。,3.4 格式输入/输出

25、,3.4.2 scanf函数(格式输入函数),3、使用scanf函数应当注意的问题:(1)scanf函数中“格式控制”后面应当是变量地址,而不应是变量名。例如:scanf(“%d,%d”,a,b);不合法。,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),(2)如果在“格式控制”字符串中除了格式说明以外还有其它字符,则输入数据时在对应位置输 入与这些字符相同的字符。建议:不要使用其它的字符。例1:scanf(“%d,%d,%d”, 应 当输入a=12,b=24,c=36(太罗嗦),3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),(3)在用“%c”格式输入

26、字符时,空格字符和转义字符都作为有效字符输入。%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。例: 对于scanf(“%c%c%c”,c1=a,c2=,c3=b,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数),(4)在输入数据时,遇到下面情况认为该数据结束:遇到空格,或按“回车”或“跳格”(tab)键。例:int a,b,c;scanf(“%d%d%d”,输入:1234a123o.26后,a=1234.0,b=a,c=123.0(而不是希望的1230.26),3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数)C语言的格式输入输出的规定比较繁琐,重

27、点掌握最常 用的一些规则和规律即可,其它部分可在需要时随时查阅。,3.4 格式输入/输出,3.4.2 scanf函数(格式输入函数) 作业: 1、有定义语句:int x, y;,若要通过scanf(“%d,%d”, 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20,3.5 其它输入/输出函数(#include ),3.5.1putchar函数(字符输出函数)一般形式:putchar(字符表达式);功能:向终端(显示器)输出一个字符,且输出之 后不换行。 输出的字符可以是可以显示的字符、或转 义字符或控制字符或整型的常量、变量、表达式), 课本P73例如

28、:putchar(y);putchar(n);putchar(101);putchar();putchar(98);,3.5 其它输入/输出函数(#include ),3.5.2 getchar函数(字符输入函数)一般形式:c=getchar();功能:从终端(键盘)输入一个字符,以回车键确 认(按回车以后才开始接受字符)。函数的返回值就是 输入的字符。注意: 当输入多个字符时,多余的字符作废。 用getchar( )得到的字符可以赋给字符型变量、整形变量或作为表达式的一部分。,3.5 其它输入/输出函数(#include ),3.5 其它输入/输出函数(#include ),3.5.3 pu

29、ts函数(字符串、字符数组中字符串输出函数)一般形式:puts(char *str);功能:将字符串或字符数组中存放的字符串输出到显示器上。例如:puts(“ChinanBeijingn”);,3.5 其它输入/输出函数(#include ),3.5.4 gets函数(字符串输入函数)一般形式:gets(char *str);功能:接收从键盘输入的一个字符串,存放在字符数组中。例如:char s81;gets(s);,3.6 顺序结构程序设计,顺序结构是我们最常用的一种程序结构,它的特点是:程 序按语句从上到下的顺序依次执行,每条语句必须执行且只能 执行一次,没有执行不到或执行多次的语句,例:已知一个圆柱体高为,半径为,求圆柱体体积,3.6 顺序结构程序设计举例,例 输入三角形的三边长,求三角形面积。为简单起见,设输入的三边长a,b,c能构成三角形。从数 学知识已知求三角形面积的公式为: ),3.6顺序结构程序设计举,3.6顺序结构程序设计举,3.6顺序结构程序设计举例,例:从键盘输入一个大写字母,要求改用小写字母输出。 小写字母的ASCII码比大写字母的ASCII码。,3.6顺序结构程序设计举例,例:求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac0。一元二次方程的根为:,3.6顺序结构程序设计举例,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报