文档详情

C语言程序设计第3章算法和基本程序设计胡滨

沈***
实名认证
店铺
PPT
556KB
约42页
文档ID:155668175
C语言程序设计第3章算法和基本程序设计胡滨_第1页
1/42

1C C语言程序设计第三章语言程序设计第三章1C C语言程序设计语言程序设计第三章第三章 算法和基本程序设计算法和基本程序设计主讲教师主讲教师 胡胡 滨滨计算机学院软件工程系计算机学院软件工程系hubin_hubin_2011年年9月月2C C语言程序设计第三章语言程序设计第三章2结构化程序设计和基本程序结构结构化程序设计和基本程序结构数据结构数据结构+算法算法=程序程序数据结构:数据结构:指对数据(操作对象)的描述指对数据(操作对象)的描述算法:算法:指对操作步骤的描述指对操作步骤的描述正确的算法应具有的特性正确的算法应具有的特性:1 1、有穷性、有穷性2 2、确定性、确定性3 3、有、有0 0n n个输入数据个输入数据4 4、有、有1 1n n个输出数据个输出数据5 5、有效性、有效性算法的表示形式:算法的表示形式:1 1、自然语言、自然语言 2 2、流程图、流程图3 3、N-SN-S图图4 4、伪代码、伪代码5 5、PADPAD图图3C C语言程序设计第三章语言程序设计第三章3特性n有穷性:一个算法必须在执行有限个操作步骤后终止;n确定性:算法中每一步的含义必须是确切的,不可出现任何二义性;n可行性:算法中的每一步操作都应该能有效执行。

例如,一个数被0除的操作就是无效的,应当避免这种操作n有输入:输入是指在算法开始之前所需要的初始数据这些输入的多少取决于特定的问题n输出:在一个完整的算法中至少会有一个输出4C C语言程序设计第三章语言程序设计第三章4评价标准n正确性:合法输入有正确输出n可读性:易懂n健壮性:容错n高效率和低存储量需求5C C语言程序设计第三章语言程序设计第三章5 C语言程序设计 第第三章三章 算法和基本程序设计算法和基本程序设计n算法的表示可用自然语言、数学方法、某种计算机语言描述规范的方法:流程图、结构图、伪代码、PAD图n流程图6C C语言程序设计第三章语言程序设计第三章6例:求三个整数的和例:求三个整数的和流程图流程图开始开始输出输出sum的值的值结束结束输入输入x,y,zsum=x+y+zmain()float x,y,z,sum;scanf(“%f%f%fn”,&x,&y,&z);sum=x+y+z;printf(“sum=%fn”,sum);7C C语言程序设计第三章语言程序设计第三章7例例2 2:求三个数中最小数:求三个数中最小数流程图流程图开始开始输出输出min的值的值输入输入a,b,cabNmin=amin=bY结束结束cminmin=cYN#include main()int a,b,c,min;scanf(%d%d%d,&a,&b,&c);if(ab)min=a;else min=b;if(cmin)min=c;printf(min=%d,min);8C C语言程序设计第三章语言程序设计第三章8N-S图图完全去掉流程线,由一些基本框组成完全去掉流程线,由一些基本框组成一个大的框基本元素框一个大的框基本元素框9C C语言程序设计第三章语言程序设计第三章9例:求三个整数的和例:求三个整数的和流程图流程图开始开始输出输出sum的值的值结束结束输入输入x,y,zsum=x+y+z输出输出sumsum的值的值sum=x+y+zsum=x+y+z输入输入x,y,zx,y,zN-SN-S图图10C C语言程序设计第三章语言程序设计第三章10例:求三个数中最小数。

例:求三个数中最小数流程图流程图开始开始输出输出min的值的值输入输入a,b,cabNmin=amin=bY结束结束cminmin=cYNN-SN-S图图min=bmin=bmin=amin=aababY YN Nmin=cmin=ccmincminY YN N输入输入a,b,ca,b,c输出输出minmin的值的值11C C语言程序设计第三章语言程序设计第三章11n背景软件危机 1968年,荷兰学者E.W.Dijkstra提出GOTO语句的三大危害采用结构化程序设计方法应遵循的原则n自顶向下n模块化 功能模块 模块的划分 模块间的接口 n限制使用GOTO语句结构化程序设计方法12C C语言程序设计第三章语言程序设计第三章121.从程序流程控制的角度,分为三种基本结构:顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构2.这三种基本结构可以组成所有的各种复杂程序3.结构化程序是只由三种基本结构构成的程序程序的基本结构13C C语言程序设计第三章语言程序设计第三章13结构化程序设计结构化程序设计基本思想:基本思想:把一个复杂问题的求解过程分步进行,后一步在把一个复杂问题的求解过程分步进行,后一步在前一步的基础上细化,这样每步所考虑的子问题前一步的基础上细化,这样每步所考虑的子问题都相对易于理解和处理都相对易于理解和处理,每步都只用三种基本结构每步都只用三种基本结构进行复合和嵌套。

进行复合和嵌套也可以概括为:也可以概括为:自顶向下,逐步求精自顶向下,逐步求精的方法14C C语言程序设计第三章语言程序设计第三章14基本程序结构基本程序结构三种:顺序结构、选择结构、循环结构三种:顺序结构、选择结构、循环结构1.顺序结构顺序结构AB先执行先执行A A,再执行再执行B B.15C C语言程序设计第三章语言程序设计第三章152.2.选择结构选择结构ABPYN若若P为真为真,则执行则执行A,否则执行否则执行BAPNY若若P为真为真,则执行则执行A,否则跳过否则跳过A16C C语言程序设计第三章语言程序设计第三章16 另外另外:由选择结构可以派生出由选择结构可以派生出多分支结构多分支结构K=K1A1A2AiAnK2KiKn17C C语言程序设计第三章语言程序设计第三章173.循环结构循环结构PNYA(1)(1)当型循环当型循环当当P P为真为真,反复执行反复执行A,A,P P为假时出循环为假时出循环APYN(2)(2)直到型循环直到型循环先执行先执行A,A,再判断再判断,若若P P为真为真,反复执行反复执行A,A,直到直到P P为假出循环为假出循环18C C语言程序设计第三章语言程序设计第三章18顺序结构程序设计顺序结构程序设计C C程序程序语句分类:语句分类:由语句组成,每个语句以由语句组成,每个语句以分号分号结束。

结束控制语句控制语句 表达式语句表达式语句 函数调用语句函数调用语句 空语句空语句 复合语句复合语句9种控制语句:种控制语句:1条件判断语句条件判断语句 nif()else nswitch()2循环控制语句循环控制语句 nfor()nwhile()ndo while()3转移语句转移语句 nbreakncontinuengoto nreturnmain()int a,b;a=b=100;float c=10.23;printf(%fn,c);printf(%d%dn,a,b);19C C语言程序设计第三章语言程序设计第三章19C C中数据的输入输出中数据的输入输出输入:输入:将数据送入计算机将数据送入计算机输出:输出:将计算机处理的结果数据送出到输出设备将计算机处理的结果数据送出到输出设备说明:说明:1、语言中,数据输入输出是通过、语言中,数据输入输出是通过调用库函数调用库函数完成2、使用库函数时,用预编译命令将有关、使用库函数时,用预编译命令将有关“头文件头文件”包括到源文件中包括到源文件中3、标准输入输出库函数:、标准输入输出库函数:“stdio.h”文件文件4、源文件开头应有以下预编译命令:、源文件开头应有以下预编译命令:#include 或或#include stdio.h 20C C语言程序设计第三章语言程序设计第三章201.putchar 函数(字符输出函数)函数(字符输出函数)字符数据的输入字符数据的输入/输出输出格式格式:putchar(c)参数参数:c c为字符常量、变量或表达式为字符常量、变量或表达式功能:功能:把字符把字符c c输出到显示器上输出到显示器上例:例:#include main()int c;char a;c=65;a=B;putchar(c);putchar(n);putchar(a);A A B B21C C语言程序设计第三章语言程序设计第三章212、getchar函数(字符输入函数)函数(字符输入函数)格式格式:getchar()功能:功能:从键盘读入一字符,从键盘读入一字符,遇回车结束并遇回车结束并回显回显例:例:#include main()char c;c=getchar();putchar(c);a a22C C语言程序设计第三章语言程序设计第三章22getch函数函数格式格式:getch()功能:功能:从键盘读入一字符,从键盘读入一字符,不用回车结束,不用回车结束,不回显不回显例:例:#include main()char c;c=getch();putchar(c);a a23C C语言程序设计第三章语言程序设计第三章23getche函数函数格式格式:getche()功能:功能:从键盘读入一字符,从键盘读入一字符,不用回车结束,不用回车结束,回显回显例:例:#include main()char c;c=getche();putchar(c);a aa24C C语言程序设计第三章语言程序设计第三章24getche函数函数例:例:#include main()char ch;ch=getch();putchar(ch-32);25C C语言程序设计第三章语言程序设计第三章25gets,puts函数函数例:例:#include main()char ch80;gets(ch);puts(ch);26C C语言程序设计第三章语言程序设计第三章26格式输入与输出格式输入与输出输出若干个任意类型的数据输出若干个任意类型的数据1、printf函数(格式输出)函数(格式输出)格式格式:printf(“格式控制串格式控制串”,输出表,输出表)功能:功能:按指定格式向显示器输出数据按指定格式向显示器输出数据说明:说明:标准库函数,函数原型在头文件标准库函数,函数原型在头文件“stdio.h”中中格式控制串:格式控制串:格式说明:格式说明:普通字符或转义序列:普通字符或转义序列:%格式字符格式字符,用于指定输出格式用于指定输出格式原样输出原样输出输出表:输出表:要输出的数据要输出的数据(可以没有,多个时以可以没有,多个时以“,”,”分隔分隔)27C C语言程序设计第三章语言程序设计第三章27格式字符格式字符1、%d 十进制格式十进制格式2、%o 八进制格式八进制格式3、%x 十六进制格式十六进制格式4、%u 无符号的十进制格式无符号的十进制格式5、%c 一个字符格式一个字符格式6、%s 字符串格式字符串格式7、%f 实数格式实数格式8、%e 指数格式指数格式9、%g28C C语言程序设计第三章语言程序设计第三章28dx,Xoucse,Efg%十六进制无符号整数十六进制无符号整数不带符号十进制整数不带符号十进制整数十进制整数十进制整数指数形式浮点小数指数形式浮点小数单一字符单一字符字符串字符串八进制无符号整数八进制无符号整数小数形式浮点小数小数形式浮点小数e e和和f f中较短一种中较短一种百分号本身百分号本身int a=567;printf(“%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=-1;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff10165535AABC5.67789e+02567.789000567.789%格式字符格式字符29C C语言程序设计第三章语言程序设计第三章29附加格式说明符附加格式说明符 .n对实数对实数,指定小数点后位数指定小数点后位数(四舍五入四舍五入)对字符串对字符串,指定实际输出位数指定实际输出位数修饰符修饰符功功 能能m 输出数据域宽输出数据域宽,数据长度数据长度m,左补空格左补空格;否则按实际输出否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导在八进制和十六进制数前显示前导0,0 x#在在d,o,x,u前,指定输出精度为前,指定输出精度为long型型在在e,f,g前,指定输出精度为前,指定输出精度为double型型l30C C语言程序设计第三章语言程序设计第三章302、scanf函数(格式输入)函数(格式输入)格式格式:scanf(“格式控制串格式控制串”,地址表),地址表)功能:功能:按指定格式从键盘读入数据,存入地址表指按指定格式从键盘读入数据,存入地址表指 定的存储单元中定的存储单元中,按回车键结束按回车键结束说明:说明:标准库函数标准库函数,在头文件在头文件“stdio.h”中定义中定义格式控制串:格式控制串:和格式输出函数的含义相同和格式输出函数的含义相同地址表:地址表:变量的地址,用取地址运算符变量的地址,用取地址运算符&例例 int a;scanf(“%d”,&a);10 a=1031C C语言程序设计第三章语言程序设计第三章31关于格式输入函数的几点说明:关于格式输入函数的几点说明:1 1、输入数据时不能规定精度;、输入数据时不能规定精度;2 2、参数中、参数中“格式控制格式控制”之后应该是变量地址;之后应该是变量地址;3 3、如果在、如果在“格式控制格式控制”字符串中除了格式说明以外,字符串中除了格式说明以外,还有其他字符,则在输入数据时应输入与这些还有其他字符,则在输入数据时应输入与这些 字符相同的字符;字符相同的字符;例:例:scanf(”%7.2f”,&a););例例:scanf(”%f”,a););例:例:scanf(”a=%d,b=%d”,&a,&b););输入时应该是:输入时应该是:a=3,b=4 32C C语言程序设计第三章语言程序设计第三章324 4、在用、在用“%c”%c”格式输入字符时,空格字符和转义格式输入字符时,空格字符和转义 字符都作为有效的字符输入。

字符都作为有效的字符输入例:例:scanf(”%d%d”,&a,&b););输入时可为:输入时可为:3 4 3 4 3Tab键键4 例:例:scanf(”%c%c%c”,&c1,&c2,&c3););若输入时为:若输入时为:a b c 则结果为:则结果为:c1=a,c2=,c3=b5 5、doubledouble型数据输入时,必须用型数据输入时,必须用%lf%lf或或%le%le格式格式33C C语言程序设计第三章语言程序设计第三章33程序举例程序举例例例1 1、输入三角形边长,求面积输入三角形边长,求面积公式:公式:s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);#include#include main()float a,b,c,s,area;printf(input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%7.2fn,area);input a,b,c:3,4,6 area=5.3334C C语言程序设计第三章语言程序设计第三章34C程序上机的步骤程序上机的步骤C程序从开发到执行的过程程序从开发到执行的过程用户用户C C源程序源程序.c.c文件文件目标程序目标程序.obj.obj文件文件可执行程序可执行程序.exe.exe文件文件结结 果果编编辑辑编编译译连连接接运运行行编译编译出错出错连接连接出错出错运行运行出错出错对源文件进行语法和逻辑结构检查对源文件进行语法和逻辑结构检查将目标程序、库函数或其他目标程将目标程序、库函数或其他目标程序连接成一个可执行文件序连接成一个可执行文件35C C语言程序设计第三章语言程序设计第三章35VCVC环境介绍环境介绍新建文件新建文件36C C语言程序设计第三章语言程序设计第三章3637C C语言程序设计第三章语言程序设计第三章37保存文件保存文件后缀为后缀为.c.c38C C语言程序设计第三章语言程序设计第三章38编译结果编译结果编译编译39C C语言程序设计第三章语言程序设计第三章39链接结果链接结果链接链接40C C语言程序设计第三章语言程序设计第三章40运行运行41C C语言程序设计第三章语言程序设计第三章41用用Ctrl+Ctrl+空格空格切换中英文输入方式切换中英文输入方式42C C语言程序设计第三章语言程序设计第三章42注意注意逗号逗号,为英文方式下的字符为英文方式下的字符输出结果输出结果。

下载提示
相关文档
正为您匹配相似的精品文档