第5章 算法与程序设计基础(总).ppt
《第5章 算法与程序设计基础(总).ppt》由会员分享,可在线阅读,更多相关《第5章 算法与程序设计基础(总).ppt(147页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 算法与程序设计基础算法与程序设计基础主讲教师:郑立垠主讲教师:郑立垠计算机与通信工程学院计算机与通信工程学院 计算机应用技术系计算机应用技术系1课程网站:课程网站:课程网站:课程网站:课程网站:课程网站:2本章主要内容本章主要内容5.1程序设计过程及程序开发环境5.2程序设计语言基础5.3数据的输入与输出5.4逻辑思维与选择程序设计35.15.1程序设计过程与程序开发环境程序设计过程与程序开发环境p程序的例子p程序设计(实现)过程p程序开发环境4编写一个求解将a和b的值交换的程序。#includeintmain()inta,b,c;scanf(%d%d,&a,&b);c=a;a
2、=b;b=c;printf(a=%d,b=%dn,a,b);return0;5.15.1程序设计过程与程序开发环境程序设计过程与程序开发环境55.15.1程序设计过程与程序开发环境程序设计过程与程序开发环境65.15.1程序设计过程与程序开发环境程序设计过程与程序开发环境7C C程序基本结构程序基本结构#include int main()printf(Hello Worldn);return 0;以#开始的语句称为预处理器指令如果程序有该语句,就必须将它放在程序的开始处以.h为后缀的文件被称为头文件,可以是 C 程序中现成的标准库文件,也可以是自定义的库文件。stdio.h文件中包含了有关输
3、入输出语句的函数 main()函数是 C 程序处理的起点。main()函数可以返回一个值,也可以不返回值。如果某个函数没有返回值,那么在它的前面有一个关键字 void在函数定义的后面有一个左大括号,即 它表示函数的开始,后面是函数的主体大括号也可以用于将语句块括起来在函数定义的结尾处有一个右大括号,即 在屏幕上产生一行输出“Hello world”,并换行(n)函数主体中的每个语句都以分号结束。C 程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。8C C程序的注释程序的注释#include int main()printf(Hello Worldn);/此程序用来打印此程序用来
4、打印Hello World 单行注释单行注释C 程序可以包含注释,以便向读者作一般说明程序可以包含注释,以便向读者作一般说明编译器并不处理这些注释编译器并不处理这些注释/*此程序由此程序由 编写编写 用来打印输出用来打印输出“Hello World”*/多行注释多行注释/*作者:作者:创建日期:创建日期:描述:描述:*/#include int main()在程序中添加注释是一个好的编程习惯,可以增强程序的可读性。9多函数程序多函数程序/*多行注释作者:创建日期:描述:*/#includeintmax(intx,inty)/*定义max函数*/return(xy?x:y);/*求出两数中的较大
5、数并返回*/*max函数结束*/intmain(void)intnum1,num2,m;printf(输入第一个整数:);/*提示输入第一个整数*/scanf(%d,&num1);/*从键盘上输入第一个整数*/printf(输入第二个整数:);/*提示输入第二个整数*/scanf(%d,&num2);/*输入第二个整数*/m=max(num1,num2);m=max(num1,num2);/*调用max,计算两个数中的较大数*/printf(max=%dn,m);/*输出结果*/return0;10C C程序基本结构总结程序基本结构总结#include int main(void)printf
6、(Hello Worldn);return 0;/*文件包含(固定格式)文件包含(固定格式)*/*主函数(固定格式)主函数(固定格式)*/*函数体开始标识(固定)函数体开始标识(固定)*/*输出输出Hello World*/*函数体结束标识(固定)函数体结束标识(固定)*/1、C程序是由函数构成程序是由函数构成:至少且至少且仅仅有一个有一个main函数函数2、主函数的命名:、主函数的命名:main()3、函数体及作用范、函数体及作用范围围:必要的必要的语语句句;4、C语语句的句的结结束束标标志:志:;5、C注注释语释语句的格式:句的格式:/*/或者或者/6、文件包含命令:、文件包含命令:#in
7、clude 11使用使用C C语言的步骤语言的步骤理解确定要解决的问题与要求,与具体语言无关与其它目标程序或库链接装配,生成可执行程序*.exe1.1.分析问题分析问题分析问题分析问题2.2.设计程序设计程序设计程序设计程序3.3.编写代码编写代码编写代码编写代码4.4.编译编译编译编译(Compile)(Compile)5.5.连接(连接(连接(连接(LinkLink)6.6.运行运行运行运行(RunRun)7.7.测试、调试、维护测试、调试、维护测试、调试、维护测试、调试、维护设计解决问题的具体步骤、以及所用到的数据,不考虑具体代码根据设计编写程序代码,生成源程序*.c自动语法分析查错,翻
8、译生成目标程序*.obj编译中发现错误,转回修改源程序连接中发现错误,转回修改源程序12C集成开发环境(集成开发环境(IDEIDE)众多的C开发环境qTurboCqCodeBlocksqMicrosoftVisualC+qBorlandC+Builderq13TurboC提供两种编辑、编译、连接和运行C程序的方法:(1)集成开发环境(TC.EXE)(2)命令行编译器(TCC.EXE)TurboC2.0的上机操作方法的上机操作方法(现在不用了现在不用了)VisualC+6.0的上机操作方法的上机操作方法(使用该环境使用该环境)VisualC+6.0是Microsoft公司在1998年推出的一款运
9、行在Windows上的集成开发环境。使用VisualC+6.0可以对C语言程序进行各种操作,如建立、打开、编辑、保各种操作,如建立、打开、编辑、保各种操作,如建立、打开、编辑、保各种操作,如建立、打开、编辑、保存、编译、连接、运行和调试等存、编译、连接、运行和调试等存、编译、连接、运行和调试等存、编译、连接、运行和调试等。C C集成开发环境(集成开发环境(IDEIDE)CodeBlocks上机操作方法上机操作方法(后面学会使用后面学会使用)14(1)启动)启动VisualC+6.0程序区程序区工作间工作间workspace信息区信息区Visual C+6.0Visual C+6.0集成开发环境
10、集成开发环境15(2)输入新程序前的准备工作)输入新程序前的准备工作单击文件单击文件新建,弹出新新建,弹出新建对话框,选择建对话框,选择“Files”选项卡选项卡“C+SourceFile”,在右边的,在右边的“文件文件(File)”框中输入文件名框中输入文件名(注意:一定要加(注意:一定要加.C,否则,否则将使用缺省的将使用缺省的.CPP),在),在“位置(位置(Location)”框中输框中输入路径,也可以通过点击右入路径,也可以通过点击右边的按钮在弹出的对话框中边的按钮在弹出的对话框中选择路径。选择路径。Visual C+6.0Visual C+6.0集成开发环境集成开发环境16(3)输
11、入源程序(在)输入源程序(在“程序区程序区”内输入源程序)内输入源程序)程序区程序区信息区信息区Visual C+6.0Visual C+6.0集成开发环境集成开发环境17(4)编译和连接)编译和连接单击单击build按钮(或按功能键按钮(或按功能键F7或单击或单击Build菜单中的菜单中的Build子菜子菜单),单),在随后弹出的两个信息框中都单击在随后弹出的两个信息框中都单击“是(是(Y)”按钮,则编译系统会按钮,则编译系统会自动将程序进行编译和连接,编译和连接的信息会自动显示在自动将程序进行编译和连接,编译和连接的信息会自动显示在VisualC+6.0开发环境窗口中最下面的开发环境窗口中
12、最下面的“信息区信息区”内。内。(5)运行程序)运行程序单击单击执行执行按钮,自动运行已生成的可执行程序。结果会显示在自动弹按钮,自动运行已生成的可执行程序。结果会显示在自动弹出的命令提示符窗口中。按任意键便返回出的命令提示符窗口中。按任意键便返回VisualC+6.0窗口中。窗口中。(6)关闭工作空间)关闭工作空间一个程序完成后,选择菜单命令一个程序完成后,选择菜单命令File|Closeworkspace关闭工作空间。关闭工作空间。重复(重复(2)(6),可以创建并运行其他的),可以创建并运行其他的C程序。程序。Visual C+6.0Visual C+6.0集成开发环境集成开发环境18简
13、单的简单的C C程序实例程序实例例1.1最简单的C程序intmain(void)例1.2在屏幕上显示字符串在屏幕上显示字符串“ThisisaCprogram.”#includeintmain(void)printf(“ThisThisisaCprogram.isaCprogram.n”);return0;例1.3在屏幕上输出如下字符串在屏幕上输出如下字符串:*Helloworld*19自学材料自学材料20C C语言简介语言简介CPLBCPLBC,其中:qCPL:1963,英国剑桥qBCPL:1967,英国剑桥qB:1970,美国贝尔实验室qC:1972,美国贝尔实验室(D.Ritchie)19
14、73年,DennisM.Ritchie开始和Thompson合作用C将UNIX重写,从此奠定了操作系统的基础1978年后,C语言被先后移植到各种机型21C C语言的祖师爷语言的祖师爷丹尼斯里奇(1941年9月9日2011年10月9日)丹尼斯里奇,C语言之父,UNIX之父。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中心系统软件研究部的主任一职。1978年与布莱恩科尔尼干(BrianW.Kernighan)一起出版了名著C程序设计语言(TheCProgrammingLanguage),现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。22总结总结pC程序的基本结构包括:预处理语句、m
15、ain函数,函数体使用括起来,函数体中每条语句必须用分号结束pC程序编写完成后,首先需要通过编译转换成目标文件,然后通过连接创建可执行程序,最后才可以执行该程序p可以使用VisualC+6.0编辑和运行C程序pC语言的特点包括:结构化的程序设计语言、语句简洁、功能强大、移植性好23上机作业上机作业1、熟悉VC6.0环境,学会在该环境下编辑、编译、连接、运行C程序。2、网站作业:1.1、1.2、1.53、预习“5.2程序设计基础”,第十周上课提问245.2 5.2 程序设计语言基础程序设计语言基础p算法及其描述方法算法及其描述方法pC的基本数据类型的基本数据类型p常量常量p变量变量p函数函数p表
16、达式表达式p赋值语句赋值语句25算法算法p算法:为解决一个具体问题而采取的确定的有限的操作步骤,仅指计算机能执行的算法p数据结构+算法=程序26算法的表示方法算法的表示方法p自然语言表示p传统的流程图表示p在1966年,Bohra与Jacopini提出pN-S结构化流程图表示p1973年,美国学者I.Nassi和B.Shneiderman提出p伪代码表示起止框起止框输入输出输入输出框框判断框判断框处理框处理框流向线流向线连接点连接点注释框注释框27算法举例算法举例例例例例1 1:有两个存储单元:有两个存储单元:有两个存储单元:有两个存储单元a a和和和和b b,要求将它们的值互换。,要求将它们
17、的值互换。,要求将它们的值互换。,要求将它们的值互换。分析:分析:按存储器的性质,如果将单元按存储器的性质,如果将单元a的值直接送到单的值直接送到单元元b中,那么就会覆盖掉中,那么就会覆盖掉b原来的内容,因此,需要借原来的内容,因此,需要借助一个临时单元助一个临时单元c来交换。来交换。具体算法如下:具体算法如下:步骤步骤1:将单元将单元a的值送给单元的值送给单元c;步骤步骤2:将单元将单元b的值送给单元的值送给单元a;步骤步骤3:将单元将单元c的值送给单元的值送给单元b。28abc58585t=aa=bb=tcba算法举例算法举例29例例例例2 2:求:求:求:求1+2+3+4+101+2+3
18、+4+10。假设用存储单元假设用存储单元S存放累加和,具体算法如下:存放累加和,具体算法如下:步骤步骤1:把把0存入存入S单元中;单元中;步骤步骤2:把把1加到加到S中(即取中(即取S中的内容中的内容0加加1后得到后得到1,再把再把1送回送回S单元中);单元中);步骤步骤3:把把2加到加到S中;中;步骤步骤4:把把3加到加到S中;中;步骤步骤10:把把9加到加到S中;中;步骤步骤11:把把10加到加到S中;中;步骤步骤12:把把S中的结果输出。中的结果输出。这算法虽然正确,但不科学,这算法虽然正确,但不科学,这算法虽然正确,但不科学,这算法虽然正确,但不科学,不实用。可以设一个计数器单不实用。
19、可以设一个计数器单不实用。可以设一个计数器单不实用。可以设一个计数器单元元元元n n,每重复一次,每重复一次,每重复一次,每重复一次n n增增增增1 1,直到,直到,直到,直到n n大于大于大于大于1010为止,求和操作可以改为止,求和操作可以改为止,求和操作可以改为止,求和操作可以改为为为为“n+Sn+S送送送送S”S”。算法举例算法举例自然语言描述3031例例例例2 2:求:求:求:求1+2+3+4+101+2+3+4+10。修改后的算法如下:修改后的算法如下:步骤步骤1:将将0送到送到S中;中;步骤步骤2:将将1送到送到n中;中;步骤步骤3:把把n的值加到的值加到S中;中;步骤步骤4:n
20、增增1;步骤步骤5:若若n10则转回步骤则转回步骤3,否则执行步骤,否则执行步骤6;步骤步骤6:输出输出S的值。的值。算法举例算法举例自然语言描述3132将例将例2求求1+2+3+4+10的的和用流程图进行描述。和用流程图进行描述。n+1=n1=ns+n=s0=sn10输出输出s是是否否算法举例算法举例-流程图描述3233针对流程图存在的缺点,针对流程图存在的缺点,I.Nassi和和B.Shneiderman提出了结构化程序设计的流程图,称为提出了结构化程序设计的流程图,称为N-S图,更能图,更能体现结构化程序设计的思想。体现结构化程序设计的思想。推荐使用推荐使用N-S图图。N-S图完全去掉了
21、流程线,算法的所有处理步骤都图完全去掉了流程线,算法的所有处理步骤都写在一个大矩形框内写在一个大矩形框内(表示简单、符合结构化思想)(表示简单、符合结构化思想)(象堆积木)(象堆积木)结构化程序设计的三种基本结构结构化程序设计的三种基本结构 顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构 结构化程序设计的三种基本结构结构化程序设计的三种基本结构3334结构化程序设计的三种基本结构具有以下共同的特点:结构化程序设计的三种基本结构具有以下共同的特点:只有一个入口;只有一个入口;只有一个出口;只有一个出口;结构内的每一部分都有机会被执行到;结构内的每一部分都有机会被执行到;结构内不存在结构
22、内不存在“死循环死循环”。结构化程序设计的三种基本结构结构化程序设计的三种基本结构34将例将例2 求求1+2+3+4+10 的和用的和用N-S图进行描述。图进行描述。0s1n当当n10时时n+ssn+1n输输出出s算法举例算法举例-N-S图描述/求1+2+3+4+10的累加和#include int main(void)int s,n;s=0;n=1;while(n=10)while(n=10)s=s+n;s=s+n;n=n+1;n=n+1;printf(s=%dn,s);return0;35思考题思考题1、能否求123410的累积?2、能否求1+2+3+4+m的累加和?画出N-S图作为作业3
23、、能否求1234m的累积?画出N-S图作为作业1s1n当当n10时时n*ssn+1n输输出出s36C C语言中的基本元素语言中的基本元素程序程序指令指令标识符标识符关键字关键字运算符运算符分隔符分隔符数据数据标识符:程序员在程序中定义的名称,以便在程序中引用关键字:C中规定的一批英文单词,被赋予特殊含义,要小写/求求1+2+3+4+10的累加和的累加和#include int main(void)int s,n;s=0;n=1;while(n 右尖括号右尖括号%百分号百分号 _ _ 下划线下划线.圆点圆点 )右圆括号右圆括号 !感叹号感叹号&and(&and(与与)空格空格;分号分号 左方括号
24、左方括号|竖线竖线 xorxor(异或异或):冒号冒号 右方括号右方括号 /斜杠斜杠 *乘号乘号?问号问号 左大括号左大括号 反斜杠反斜杠 -减号减号 单引号单引号 右大括号右大括号 波折号波折号 =等于号等于号“双引号双引号 左尖括号左尖括号#井号井号 +加号加号38C C语言的基本数据类型语言的基本数据类型数据属于不同类别AfricaThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jackie Chanchar数据类型非数值数值整型intshort intlong intdoublefloat非整型39C C语言
25、的基本数据类型语言的基本数据类型名称名称全称类型说明符全称类型说明符缩写类型说明符缩写类型说明符位数位数范围范围整型intint32-231231-1无符号整型unsignedintunsigned32短整型shortintshort16无符号短整型unsignedshortintunsignedshort16065535长整型longintlong32无符号长整型unsignedlongintunsignedlong32单精度实型float3267位精度双精度实型double641516位精度字符型char8-128127无符号字符型unsignedchar80255signed、unsig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 算法与程序设计基础总 算法 程序设计 基础
限制150内