第1、2章 C语言概论教材_第1页
第1、2章 C语言概论教材_第2页
第1、2章 C语言概论教材_第3页
第1、2章 C语言概论教材_第4页
第1、2章 C语言概论教材_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计第3版课程关键词C语言(一种程序设计语言)用途适用范围语法规定程序设计(一种能力和思维方式)基本设计方法算法概念程序调试课程目标掌握C语言的基本语法掌握面向过程程序设计的基本方法掌握程序调试的基本方法一些观点正确看待C,C++,Java等语言:近年来,有一些面向对象的计算机语言陆续问世,受到欢迎。有些人认为面向过程的C语言已经过时了,不必学了。这是一种误解。这门课的两个目标:C的语法,程序设计方法,程序调试。在学校中,学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。算法是灵魂:(文以载道)不能设想今后一辈子只使用在学校里学过的某一种语言。但是,无论用哪一种语言进行程序设计,其基本规律是一样的。程序是调试出来的:程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行,希望读者一定要重视实践环节,包括编程和上机。熟悉不同的IDE(集成开发环境):使用哪一种编译系统并不是原则问题,重要的是编程能力的培养。程序编好以后,用哪一种编译系统进行编译都可以。本次课的主要内容程序设计概述(第二章)C语言概述(第一章)第二章程序的灵魂—算法怎样进行程序设计的最基本概念和方法不仅仅适用于c语言第二章只是一个开始,后面将贯穿整个课程。第二章程序的灵魂—算法2.1 算法的概念 2.2 简单算法举例(重点) 2.3 算法的特性 2.4 怎样表示一个算法 2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法 2.4.3 三种基本结构和改进的流程图 2.4.4 用N-S流程图表示算法 2.4.5 用伪代码表示算法 2.4.6 用计算机语言表示算法2.5 结构化程序设计方法 程序和算法计算机程序(软件/程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。Anorganizedlistofinstructionsthat,whenexecuted,causesthecomputertobehaveinapredeterminedmanner.Withoutprograms,computersareuseless.程序为了达到某一目标而进行的具体步骤。程序的两个基本特点:由多个步骤构成,步骤之间有顺序程序和算法算法为解决一个问题而采取的方法。计算机算法:计算机能够执行的算法。计算机算法可分为两大类:数值运算算法:求解数值;非数值运算算法:事务管理领域。计算机程序

=数据结构+算法

一个程序应包括对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(datastructure)。

对操作的描述。即操作步骤,也就是算法(algorithm)。

程序=算法+数据结构+程序设计方法+语言工具和环境

程序设计方法和程序设计语言的种类结构化程序设计(面向过程)汇编、c、pascal

面向对象程序设计C++、Java、VB机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加

10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象程序设计语言的发展简单算法举例【例2.1】求1×2×3×4×5。最原始方法:步骤1:先求1×2,得到结果2。步骤2:将步骤1得到的乘积2乘以3,得到结果6。步骤3:将6再乘以4,得24。步骤4:将24再乘以5,得120。简单算法举例【例2.1】求1×2×3×4×5。改进的算法:S1:使t=1S2:使i=2S3:计算t×i,乘积仍然放在在变量t中,可表示为t×i→tS4:使i的值+1,即i+1→iS5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。引入变量t:部分积i:每次要乘的数算法的特性有穷性:一个算法应包含有限的操作步骤而不能是无限的。确定性:算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。有零个或多个输入。有一个或多个输出。有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。怎样表示一个算法用自然语言表示算法用流程图表示算法用N-S流程图表示算法(改进的流出图) 用伪代码表示算法 用计算机语言表示算法用流程图表示算法流程图表示算法,直观形象,易于理解。求1×2×3×4×5的算法【例2.1】求1×2×3×4×5。S1:使t=1S2:使i=2S3:计算t×i,乘积仍然放在在变量t中,可表示为t×i→tS4:使i的值+1,即i+1→iS5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。求1×3×5×7×9×11求∑An1求1/4+1/9+1/16+1/25+…+1/n2(n=2…10)2求∏/4=1-1/3+1/5-1/7…(计算50项)3求∑An,其中A1=1,A2=1,An=An-1+An-2(n=3…10)怎样将一个实际问题抽象为计算机可解问题【例2.2】有50个学生,要求将他们之中成绩在80分以上者打印出来如果,n表示学生学号,ni表示第i个学生学号;g表示学生成绩,gi表示第i个学生成绩;则算法可表示如下:

S1:1→i(处理第1个学生)S2:如果gi≥80,则打印ni和gi,否则不打印(处理第i个学生)S3:i+1→i(下一个)S4:若i≤50,返回S2,否则,结束。将例2.2的算法用流程图表示练习(使用流程图进行算法设计)1有两个变量A和B,将它们的值交换。2输入3个整数a,b,c,按由大到小的顺序输出。3给定一个正整数M,判断它是否为素数。4找出100以内的素数。5从10个数中找出最大的数。

6在10个盒子里放有10个有编号的球,将球按编号从大到小的顺序重新排列。三种基本结构和改进的流程图三种基本结构顺序结构选择结构循环结构三种基本结构的共同特点:1)只有一个入口;2)只有一个出口;3)结构内的每一部分都有机会被执行到;4)结构内不存在“死循环”。

用N-S流程图表示算法顺序结构选择结构循环结构流程图VS.N-S流程图【例】求1×2×3×4×5用C语言表示main(){int

i,t;t=1;i=2;

while(i<=5){t=t*i;i=i+1;}

printf(“%d”,t);}t=1i=2当i<=5t=t*ii=i+1输出t开始t=1;i=2t×i→ti+1→ii≤5输出t结束YN结构化程序设计方法自顶向下;逐步细化;模块化设计;结构化编码。贪吃蛇思路:怎样将游戏中的构成元素和一些具体的数联系起来游戏中的构成元素边界、果实蛇头部身体运动控制和判断一道全国电子设计大赛试题在一块竖立的木板上有两个滑轮和两个电机(如图),通过绳子悬挂一重物,在重物上固定一铅笔。通过单片机控制绳子,使重物上的铅笔在木板上画园。思考:怎样将控制和数对应起来(建模)?思路1.园的参数方程X=R*COS(T)+X0Y=R*SIN(T)+Y02.X,Y和L1,L2的关系L1=SQR(X2+(90-Y)2)L2=SQR((100-X)2+(90-Y)2)L1L210090(X,Y)本次课的主要内容程序设计概述C程序设计语言概述1.1C语言发展历史1.2C语言特点1.3C程序格式和结构特点1.4C程序上机步骤第一章C语言概述*产生背景*应用需求:界于汇编和高级语言之间的中级语言*产生过程*时间:1972~1973地点:美国贝尔实验室目的:UNIX操作系统设计人:Ken.Thompson和Dennis.M.Ritchie*C标准*标准C:K&R合著《TheCProgrammingLanguage》(BrianW.Kernighan和DennisM.Rithchie)1978年ANSIC:1983年87ANSIC:1987年1990年国际标准的ANSICC语言发展过程1960:ALGOL语言离开硬件远,不适合编写系统软件1963:CPL语言(剑桥大学)接近硬件1967:BCPL语言(剑桥大学)简化1970:B语言(Bell实验室)1973:C语言(Bell实验室)改进进一步简化1978:传统C语言1990:ANSIC语言规模庞大K&R著作ISO修订语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好(较之汇编语言)可以直接操纵硬件C语言特点例1.1第一个程序Hello,World!main(){

printf(“Hello,World!”);}Hello,World!第一个C程序32个关键字34种运算符5种数据类型9种控制语句C程序结构特点C程序格式特点C语言基本要素由系统定义,不能重作其它定义的字符串类型说明符autocharconstdoubleenumexternfloatintlongregistershortsignedsizeofstaticstructunsignedunionvoidvolatile2语句、定义符breakcase

continuedefaultdoelseforgotoifreturnswitchwhiletypedef3预处理命令字(*)defineinclude32个关键字算术运算符:+-*/%++--关系运算符:<<===>>=!=逻辑运算符:!&&||位运算符:<<>>~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.->下标运算符:[]其它:()-(负号)34种运算符数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union5种数据类型if()~else~for()~while()~do~while()continuebreakswitchgotoreturn9种控制语句例1.1第一个程序

Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){

printf(“Hello,World!”);}注释编译预处理函数语句输出:Hello,World!第一个C程序程序语句(statement)和声明(declaration)C程序由语句组成,用“;”作为语句终止符声明:对变量等的定义或说明函数(function)函数是C语言的基本单位能完成一定的功能由一组语句和声明构成c程序由函数构成程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。(习惯上把main()函数放在最前面)注释/**/为注释,不能嵌套不产生编译代码C程序结构特点/*calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);

printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int

add(int

x,inty){intz;z=x+y;return(z);}/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);

printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int

add(int

x,inty){intz;z=x+y;return(z);}运行结果:sum=34函数语句预处理命令注释习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}

printf(“%d\n”,sum);}优秀程序员的素质之一:使用TAB缩进{}对齐有足够的注释有合适的空行C程序格式特点函数头函数体函数名(参数列表){说明部分语句部分}函数的定义int

add(int

x,inty){intz;z=x+y;return(z);}print5stars(){

printf(“*****”);}/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);

printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int

add(int

x,inty){intz;z=x+y;return(z);}函数的定义main(){intx,y; x=3; y=6;

intmax; max=x>y?x:y;

printf(“max=%d\n”,max);}第一次实验课(上机)1.计算机基础知识回顾2.计算机基本操作(文件操作)3.第一个c程序4.tuborc集成开发环境(IDE)的使用5.实验要求在指定的盘中创建属于自已的子目录(文件夹)设计自已的第一个C程序,在IDE中运行,修改直到满意将调试好的源文件和可执行文件复制到U盘和C盘的一个子目录(c:\bin)中。并在C盘中直接运行,并观察结果。计算机基础知识回顾什么是计算机,你看到的计算机都长得咋样?你是怎样玩计算机的?使用者还是设计者?硬件设计还是软件设计?计算机的基本组成硬件软件什么是计算机计算机是一个信息处理装置。可以是一个复杂的数字电路系统(主流)也可以是机械的甚至是生化的或者是一个可以由人扮演的游戏帕斯卡和加法器霍列瑞斯和第一台制表机阿德勒曼博士和DNA计算机1946年由美国宾夕法尼亚大学研制ENIAC(ElectronicNumericalIntegratorAndcalculator),运算速度5000次/秒,功耗150kw,占地170m2

,造价100万美元。常见计算机其他计算机大型化小型化智能小车机器鱼怎样利用好计算机被计算机“玩了”计算机程序设计(stepbystep)计算机应用系统设计本学期要完成的几个例子走动的“钟”运动的曲线贪吃蛇计算机控制系统机械结构机电部分控制部分传感器驱动电路硬件设计制作软件设计(编程序)试一下(调试)计算机操作基础信息在计算机上的存放形式文件的类型怎样找到存放在计算机上的文件文件和文件系统基本概念文件:文件是存放在外存上的一组相关信息的集合;*.DOC *.C *.CPP *.EXE文件系统:操作系统中,负责管理和存取文件信息的部分

作用:文件系统为用户提供了一个简单、统一的访问文件的方法。 (1)因此也被称为用户与外存储器的接口

(2)可实现按名存取文件和文件系统文件目录为了便于对文件进行存取和管理,计算机系统设置了文件目录.目录以文件的形式存放在存储器中,其名字称为目录名.操作系统中文件常采用多级目录结构.目录是树形结构文件和文件系统一级二级三级图.目录的树状结构文件3子目录5文件6子目录7文件2子目录4根目录\子目录1文件1子目录2子目录3文件4文件5子目录6文件7文件8文件和文件系统文件目录每个目录结构下只有一个根目录,根目录处于最顶层,表示为:\.树状结构的每一级(根目录除外)上既可以有子目录,也可以有文件存在.同一目录下,不允许有相同的子目录名或文件名.目录的字符表示,用来标志文件或文件夹(目录)所在的位置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论