《C语言新教材PPT课堂课件-1-2-概述》由会员分享,可在线阅读,更多相关《C语言新教材PPT课堂课件-1-2-概述(43页珍藏版)》请在金锄头文库上搜索。
1、数数学学与与计计算算机机学学院院计计算算机机系系2第第一一章章 程程序序设设计计概概述述主主要要内内容容: l 程程序序的的概概念念l 程程序序设设计计的的概概念念l 程程序序设设计计语语言言l 算算法法的的概概念念与与表表示示方方法法l 结结构构化化程程序序基基本本控控制制结结构构l 结结构构化化程程序序设设计计方方法法3微微型型计计算算机机:l计计算算机机系系统统组组成成:硬硬件件系系统统(物物理理设设备备)软软件件系系统统(程程序序、数数据据)41.1 1.1 程程序序和和程程序序设设计计语语言言一一、程程序序的的概概念念#include stdio.hvoid main( ) floa
2、t x,y,z; /*变变量量定定义义*/ scanf(%f%f,&x,&y); if(x=0) printf(Data error!n); else z=y/x; printf(z=%fn,z); 例例:求求y/x之之值值的的C语语言言程程序序 用用计计算算机机语语言言编编写写的的用用来来使使计计算算机机完完成成特特定定任任务务、解解决决特特定定问问题题的的一一组组指指令令序序列列称称为为“程程序序”5二二、程程序序设设计计的的概概念念 “程程序序设设计计”是是给给出出程程序序的的过过程程,包包括括分分析析、设设计计、编编码码、测测试试、排排错错等等不不同同阶阶段段。三三、程程序序设设计计语
3、语言言 “程程序序设设计计语语言言”是是用用来来编编写写程程序序的的语语言言,是是一一组组用用来来定定义义计计算算机机程程序序的的语语法法规规则则。 6程程序序设设计计语语言言分分类类l低低级级语语言言面面向向机机器器的的语语言言,不不同同类类型型的的计计算算机机其其低低级级语语言言不不同同。机机器器语语言言(1GL1GL):二二进进制制编编码码汇汇编编语语言言(2GL2GL) l高高级级语语言言接接近近于于人人类类的的自自然然语语言言和和数数学学表表达达方方式式,其其通通用用性性强强、可可读读性性好好,编编程程也也更更加加方方便便。面面向向过过程程或或对对象象的的语语言言(3GL3GL),如
4、如C C、C+C+面面向向问问题题的的语语言言(4GL4GL),如如SQLSQL注注意意:只只有有机机器器语语言言编编写写的的程程序序计计算算机机能能直直接接执执行行,汇汇编编语语言言和和高高级级语语言言编编写写的的程程序序必必须须经经过过翻翻译译转转变变成成机机器器语语言言程程序序,计计算算机机才才能能识识别别和和执执行行。72.2 算算法法概概述述一一、算算法法的的概概念念 程程序序=数数据据结结构构+算算法法 “算算法法”是是对对程程序序中中操操作作的的描描述述,也也就就是是操操作作步步骤骤。举举例例:求求y/xy/x之之值值用用自自然然语语言言描描述述算算法法如如下下: (1 1)输输
5、入入x x、y y的的值值; (2 2)判判断断x x是是否否为为0 0: 若若x=0,x=0,则则输输出出错错误误信信息息; 否否则则将将y/xy/x的的值值赋赋给给z z后后输输出出z z。8二二、算算法法的的表表示示方方法法(1)(1)使使用用自自然然语语言言描描述述算算法法;(2)(2)使使用用流流程程图图描描述述算算法法;(3)(3)使使用用伪伪代代码码描描述述算算法法。9流流程程图图:描描述述算算法法的的图图形形工工具具,即即用用一一些些约约定定的的几几何何图图形形来来描描述述算算法法。传传统统流流程程图图的的符符号号及及意意义义 起起止止框框 工工作作的的开开始始或或结结束束 输
6、输入入/ /输输出出框框 输输入入或或输输出出 判判断断框框 逻逻辑辑判判断断或或检检查查 处处理理框框 各各种种处处理理功功能能 流流向向线线 流流程程的的路路线线算算法法的的表表示示方方法法10例例:求求y/x之之值值的的算算法法流流程程图图开开始始Y输输出出错错误误信信息息x=0Nz=y/x输输出出z结结束束输输入入x,y输输出出zz=y/x输输出出错错误误信信息息x=0Y N输输入入x,y传传统统流流程程图图N-S流流程程图图11例例:求求y/x之之值值的的算算法法伪伪代代码码Begin Begin Read(x,y) Read(x,y) if x=0 if x=0 write(“da
7、ta error”) write(“data error”) else else z z=y/xy/x write(z) write(z)EndEnd算算法法的的表表示示方方法法接接近近计计算算机机语语言言的的文文字字和和符符号号12 顺顺序序结结构构 顺顺序序结结构构即即按按照照语语句句书书写写顺顺序序执执行行的的程程序序结结构构。先先执执行行A A,再再执执行行B B。 入入口口 出出口口 传传统统流流程程图图 N-SN-S结结构构图图 A B A B1.3 1.3 结结构构化化程程序序设设计计方方法法 一一、结结构构化化程程序序基基本本结结构构 由由三三种种基基本本程程序序结结构构组组成
8、成13 选选择择结结构构 用用来来决决定定程程序序执执行行过过程程中中的的分分支支控控制制,当当条条件件成成立立时时,执执行行A A,否否则则执执行行B B。 入入口口 出出口口 传传统统流流程程图图 N-SN-S结结构构图图AB真真假假条条件件 条条 件件 A B成成立立不不成成立立结结构构化化程程序序基基本本结结构构14 循循环环结结构构(一一):当当型型循循环环 当当条条件件成成立立时时,就就反反复复执执行行循循环环体体,直直到到条条件件不不成成立立时时结结束束。 入入口口 出出口口 传传统统流流程程图图 N-SN-S结结构构图图 循循环环体体假假真真条条 件件 当当条条件件成成立立时时
9、 循循环环体体结结构构化化程程序序基基本本结结构构15 循循环环结结构构(二二):直直到到型型循循环环 反反复复执执行行循循环环体体,直直到到条条件件成成立立时时结结束束。 入入口口 出出口口 传传统统流流程程图图 N-SN-S结结构构图图 循环体真假条 件 循环体直到条件成立时结束结结构构化化程程序序基基本本结结构构16二二、结结构构化化程程序序设设计计的的原原则则(1)(1)使使用用语语言言中中的的顺顺序序、选选择择、循循环环等等基基本本控控制制结结构构表表示示程程序序逻逻辑辑。(2)(2)选选用用的的控控制制结结构构只只准准许许有有一一个个入入口口和和一一个个 出出口口。(3)(3)程程
10、序序语语句句组组成成容容易易识识别别的的块块,每每块块只只有有一一个个入入口口和和一一个个出出口口。(4)(4)复复杂杂结结构构应应该该用用基基本本控控制制结结构构进进行行组组合合嵌嵌套套来来实实现现。(5)(5)尽尽量量避避免免使使用用跳跳转转语语句句(如如GoToGoTo、BreakBreak等等 语语句句)。17三三、结结构构化化程程序序设设计计的的步步骤骤六六个个主主要要步步骤骤:1 1. .问问题题分分析析2 2. .建建立立数数学学模模型型3 3. .算算法法设设计计4 4. .程程序序编编码码5 5. .测测试试6 6. .建建立立程程序序文文档档18为为什什么么要要学学习习程程
11、序序设设计计?l为为将将来来成成为为程程序序员员乃乃至至计计算算机机专专家家打打基基础础l为为将将来来开开发发设设计计出出所所从从事事专专业业的的应应用用程程序序打打基基础础l不不做做程程序序员员呢呢?更更好好地地了了解解计计算算机机工工作作原原理理,为为了了在在以以后后的的学学习习生生活活中中更更快快更更准准确确地地掌掌握握各各种种工工具具软软件件学学习习一一种种新新的的思思维维方方式式 ,提提高高解解决决问问题题的的综综合合能能力力 19如如何何学学好好程程序序设设计计? 本本课课程程特特点点:l 不不是是听听会会、看看会会的的,而而是是练练会会的的。l 有有条条有有理理有有根根有有据据的
12、的编编程程实实践践。 学学习习方方法法:动动手手动动脑脑,理理论论指指导导下下的的实实践践。 要要求求:l课课前前预预习习,课课后后复复习习。l上上机机前前应应设设计计好好算算法法,书书写写好好程程序序再再上上机机验验证证;及及时时总总结结上上机机中中的的经经验验教教训训,认认真真修修订订程程序序,按按时时完完成成练练习习要要求求。20考考试试方方法法l全全国国高高校校(福福建建考考区区)计计算算机机等等级级考考试试l机机试试(9090分分钟钟)l百百分分制制成成绩绩 8585分分,获获二二级级优优秀秀证证书书6060分分,获获二二级级合合格格证证书书21 教学重点第第一一重重点点:设设计计程
13、程序序的的思思路路、算算法法和和程程序序构构架架。第第二二重重点点:掌掌握握 C C语语言言的的语语法法,否否则则编编不不出出正正确确的的C C程程序序。22第第二二章章 C语语言言概概述述主主要要内内容容:l C C语语言言的的发发展展历历史史(自自学学)l C C语语言言的的特特点点l C C程程序序的的结结构构l C C程程序序的的上上机机步步骤骤23C语语言言的的设设计计者者-C语语言言之之父父 Dennis M. Ritchie(丹丹尼尼斯斯里里奇奇 )1941年年生生,哈哈佛佛大大学学数数学学博博士士,与与Ken Thompson(肯肯汤汤普普逊逊 )一一起起用用C语语言言设设计计
14、了了UNIX操操作作系系统统,并并共共同同编编著著了了经经典典教教材材The C Programming Language 。24一一、C C 语语言言的的特特点点优优点点: 1. 可可移移植植性性好好(与与汇汇编编语语言言比比) 2. 语语言言简简洁洁紧紧凑凑,使使用用方方便便灵灵活活 3. 数数据据类类型型和和运运算算符符丰丰富富(34种种运运算算符符) 4. 生生成成目目标标代代码码质质量量高高,程程序序执执行行效效率率高高(与与其其它它高高级级语语言言比比) 5. 允允许许直直接接访访问问物物理理地地址址,能能进进行行位位操操作作,兼兼有有高高级级和和低低级级语语言言的的特特点点 局局
15、限限性性: 1. 语语法法限限制制不不严严 2. 缺缺乏乏支支持持代代码码重重用用的的机机制制25硬硬硬硬件件件件操操操操作作作作系系系系统统统统应应应应用用用用程程程程序序序序应应应应用用用用平平平平台台台台基基基基于于于于平平平平台台台台的的的的应应应应用用用用程程程程序序序序低低级级语语言言的的地地盘盘高高级级语语言言的的地地盘盘C语语言言的的地地盘盘26 很很多多流流行行语语言言、新新生生语语言言都都借借鉴鉴了了C C语语言言的的思思想想、语语法法:从从C+C+,到到JavaJava,再再到到C#C#问问题题:为什么还要学习C语言,而不直接学C+、Java或C#?l面面向向对对象象的的
16、基基础础是是面面向向过过程程。面面向向对对象象的的C+C+、JavaJava、C#C#学学起起来来比比面面向向过过程程的的C C语语言言困困难难,故故不不太太适适合合程程序序设设计计的的初初学学者者。l正正确确地地学学好好C C语语言言,是是学学习习这这些些流流行行语语言言的的基基础础。27二二、C 程程序序的的结结构构l函函数数的的组组成成 函函数数首首部部函函数数体体变变量量定定义义执执行行部部分分例例:求求两两个个整整数数之之和和的的C程程序序1 #include void main ( ) int a,b,c; a=123; b=456; c=a+b; printf(add= %dn,
17、c); /* 变变量量定定义义 */ 执执行行语语句句 函函数数体体预预处处理理(文文件件包包含含)命命令令函函数数首首部部C 程程序序的的构构成成:l 每每个个 C 程程序序必必须须有有一一个个 main 函函数数。28 例例:求求两两个个整整数数之之和和的的C程程序序2 #include void main ( ) int a,b,c,add(int x,int y); scanf(%d, %d,&a, &b); c=add(a, b); printf(add= %dn,c); 预预处处理理(文文件件包包含含)命命令令主主函函数数C 程程序序的的构构成成(续续):l一一个个 C 程程序序可
18、可由由一一至至若若干干个个函函数数组组成成,其其中中必必须须有有且且只只能能有有一一个个 main 函函数数。 int add (int x, int y ) int z; z=x+y; return (z); 被被调调用用函函数数29三三、C 程程序序的的书书写写规规范范1. 1. 函函数数名名后后必必须须跟跟有有一一对对圆圆括括号号。2. 2. 程程序序必必须须从从mainmain函函数数开开始始执执行行, ,不不管管mainmain函函数数位位置置如如何何。3. 3. 语语句句以以 “ “; ;” ” 结结束束。4. 4. 一一行行可可以以写写多多个个语语句句, ,一一个个语语句句也也可
19、可以以分分写写在在多多行行,但但一一对对双双引引号号不不能能分分行行。5. 5. 可可以以用用 /*/*.*/*/ 对对程程序序加加以以注注释释,注注释释可可以以单单占占一一行行,也也可可以以跟跟在在语语句句的的后后面面;一一行行写写不不下下时时,可可以以另另行行续续写写。30有有错错F.exeF.exe 源源程程序序 目目标标程程序序 可可执执行行程程序序 编编辑辑 编编译译 连连接接 运运行行 结结果果有有错错有有错错有有错错F.cF.cF.objF.obj四四、运运行行C 程程序序的的步步骤骤31l目目前前使使用用的的大大多多数数C C编编译译系系统统都都是是集集成成环环境境的的。l常常
20、用用的的有有:v Turbo C 2.0Turbo C 2.0:是是DOSDOS环环境境下下的的C C程程序序编编译译系系统统。v Turbo C+ 3.0Turbo C+ 3.0:是是DOSDOS环环境境下下的的C+C+程程序序编编译译系系统统,也也可可以以对对C C程程序序进进行行编编译译,同同时时可可以以用用鼠鼠标标操操作作。v Visual C+ 6.0Visual C+ 6.0:是是WINDOWSWINDOWS环环境境下下的的C+C+程程序序编编译译系系统统,也也可可以以对对C C程程序序进进行行编编译译。五五、上上机机运运行行程程序序的的方方法法32(1) 在在编编辑辑(Edit)
21、窗窗口口中中输输入入并并修修改改源源程程序序(2) 程程序序存存盘盘:“File,Save” 或或F2(3) 编编译译程程序序:“Compile,Compile” 或或Alt+F9(4) 运运行行(含含连连接接)程程序序:“Run,Run” 或或Ctrl+F9(5) 查查看看结结果果:“Wondow,User Screen” 或或Alt+F5(6) 结结束束当当前前程程序序,开开始始新新程程序序: “File,New” 说说明明: 程程序序也也可可以以先先运运行行后后存存盘盘,但但先先存存盘盘是是一一个个好好习习惯惯。Turbo C + 3.0 的的上上机机操操作作33Turbo C+ 3.0
22、: 集集成成 环环境境操操作作界界面面蓝蓝色色区区域域为为工工作作区区,用用于于输输入入和和编编辑辑.C程程序序菜菜单单栏栏:所所有有的的Turbo命命令令可可以以从从中中调调用用。激激活活菜菜单单的的方方法法:1)鼠鼠标标点点击击2)F103)Alt+菜菜单单项项第第一一个个字字母母Alt+Enter:切切换换窗窗口口模模式式与与 全全屏屏模模式式34Turbo C+ 3.0:设设置置系系统统目目录录根根据据系系统统存存放放位位置置设设置置包包含含文文件件和和库库函函数数所所在在目目录录指指定定.obj和和.exe文文件件存存放放的的目目录录。若若为为空空,则则存存放放在在默默认认的的用用户
23、户目目录录下下35Turbo C + 3.0 :设设置置默默认认的的用用户户目目录录设设置置默默认认的的用用户户目目录录(作作为为用用户户打打开开和和保保存存.C文文件件的的默默认认目目录录)若若“Options,Directories”下下的的“Output Directory”为为空空,则则该该目目录录也也是是.obj和和.exe文文件件存存放放的的目目录录36打打开开已已存存在在的的.C文文件件。Turbo C + 3.0 :打打开开/保保存存源源程程序序保保存存.C文文件件另另存存.C文文件件37剪剪切切复复制制粘粘贴贴删删除除Turbo C + 3.0 :常常用用编编辑辑命命令令 I
24、nsert :切切换换插插入入态态与与改改写写态态38编编译译当当前前程程序序,生生成成.OBJTurbo C + 3.0 :编编译译当当前前程程序序 39连连接接(生生成成.EXE)、运运行行当当前前程程序序Turbo C + 3.0 :连连接接及及运运行行当当前前程程序序 40l编编译译后后若若弹弹出出Compiling窗窗口口提提示示“Error: Press any key”,则则表表明明编编译译时时发发现现语语法法错错误误。l连连接接后后若若弹弹出出Linking窗窗口口提提示示“Error: Press any key”,则则表表明明连连接接时时发发现现错错误误。l编编译译或或连连
25、接接出出错错的的处处理理:按按任任意意键键激激活活Message窗窗口口显显示示出出错错(或或警警告告)信信息息,然然后后按按F6切切换换到到编编辑辑窗窗口口,修修改改源源程程序序后后重重新新编编译译、连连接接、运运行行,直直至至编编译译和和连连接接均均正正确确为为止止。Turbo C + 3.0 :编编译译、连连接接出出错错处处理理41切切换换到到用用户户屏屏,查查看看运运行行结结果果Turbo C + 3.0 :查查看看结结果果l查查看看完完毕毕后后,按按任任一一键键返返回回编编辑辑窗窗口口。l如如果果运运行行结结果果错错误误,除除输输入入数数据据格格式式错错外外,大大多多属属于于逻逻辑辑
26、错错误误(语语义义错错误误),则则可可在在返返回回编编辑辑窗窗口口后后对对源源程程序序进进行行修修改改,然然后后再再重重新新编编译译、连连接接、运运行行,直直至至正正确确为为止止。42(1 1)新新建建程程序序:“文文件件,新新建建,文文件件”,从从列列表表中中选选择择“C+Source File” C+Source File” ,并并在在“文文件件”框框输输入入文文件件名名(“目目录录”框框是是保保存存文文件件的的路路径径名名)(2 2)输输入入或或编编辑辑程程序序(3 3)保保存存程程序序:“文文件件,保保存存”(4 4)编编译译程程序序:“编编译译,编编译译”(5 5)连连接接程程序序:“编编译译,构构件件”(6 6)运运行行程程序序:“编编译译,执执行行”(7 7)结结束束当当前前程程序序:“文文件件,结结束束”创创天天中中文文VC+ 的的上上机机操操作作43VC+VC+:集集成成环环境境操操作作界界面面工作窗口源代码编辑窗口输出窗口(编译、连接、调试)工工作作窗窗口口:显显示示程程序序框框架架的的地地方方。编编辑辑窗窗口口:用用户户编编辑辑程程序序的的全全屏屏幕幕编编辑辑器器。输输出出窗窗口口:显显示示编编译译/ /连连接接/ /调调试试结结果果信信息息。