程序设计基础第一章精选文档.ppt

上传人:石*** 文档编号:87400066 上传时间:2023-04-16 格式:PPT 页数:114 大小:3.97MB
返回 下载 相关 举报
程序设计基础第一章精选文档.ppt_第1页
第1页 / 共114页
程序设计基础第一章精选文档.ppt_第2页
第2页 / 共114页
点击查看更多>>
资源描述

《程序设计基础第一章精选文档.ppt》由会员分享,可在线阅读,更多相关《程序设计基础第一章精选文档.ppt(114页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、程序设计基础第一章本讲稿第一页,共一百一十四页联系方式联系方式13808181782主楼主楼B1-513 本讲稿第二页,共一百一十四页学时:学时:24+24成绩构成:成绩构成:平时平时10,期中期中10分分 实验实验20分,期末分,期末60 分分考试:闭卷、笔试考试:闭卷、笔试本讲稿第三页,共一百一十四页教材教材:C C语言程序设计语言程序设计 黄迪明黄迪明 等等 电子科技大学出版社电子科技大学出版社 2008.72008.7本讲稿第四页,共一百一十四页参考书参考书Brian W.Kernighan,Demis RitchieThe C Programming Language 2nd Ed(

2、英文影印版)清华大学出版社(英文影印版)清华大学出版社 2000谭浩强谭浩强 C程序设计程序设计(第(第3版)版)清华大学出版社清华大学出版社 2005本讲稿第五页,共一百一十四页程序设计程序设计Programmingl给出解决特定问题给出解决特定问题程序程序的方法和过程,是的方法和过程,是软件软件构造活动的重要组成部分构造活动的重要组成部分l专业的程序设计人员称为专业的程序设计人员称为程序员程序员l程序设计过程应当包括程序设计过程应当包括需求分析需求分析 设计设计 编码编码 测试测试 维护维护五个阶段,并生成各五个阶段,并生成各种种文档资料文档资料。本讲稿第六页,共一百一十四页程序设计程序设

3、计l程序设计需要以某种程序设计需要以某种程序设计语言程序设计语言为工为工具:编写出该语言的具:编写出该语言的程序程序。本讲稿第七页,共一百一十四页问题问题l什么是程序设计语言什么是程序设计语言?l什么是程序?什么是程序?l什么是软件?什么是软件?l程序设计语言与程序的关系是什么?程序设计语言与程序的关系是什么?本讲稿第八页,共一百一十四页语言:一组规则的组合语言:一组规则的组合自然语言中的英语:自然语言中的英语:1)字母表的定义;)字母表的定义;2)词法规则词法规则:单词符号的形成规则:单词符号的形成规则 一个单词对应一条形成规则,规定了该一个单词对应一条形成规则,规定了该单词由哪些字母按照什

4、么顺序进行排列单词由哪些字母按照什么顺序进行排列本讲稿第九页,共一百一十四页3)语法规则:)语法规则:语法单位语法单位的形成规则的形成规则 短语、从句、句子、段落、文章短语、从句、句子、段落、文章4)语义规则:)语义规则:单词符号和语法单位的含义规则单词符号和语法单位的含义规则本讲稿第十页,共一百一十四页5)语用规则:)语用规则:语义规则的发展和延伸语义规则的发展和延伸 强调在一定的语境中使用单词和强调在一定的语境中使用单词和语法单位时体现出来的具体意义语法单位时体现出来的具体意义 需要根据上下文进行明确需要根据上下文进行明确本讲稿第十一页,共一百一十四页思考思考l英语和英语文章的关系?英语和

5、英语文章的关系?本讲稿第十二页,共一百一十四页l程序设计语言:程序设计语言:用于程序设计的人工语言用于程序设计的人工语言本讲稿第十三页,共一百一十四页程序设计语言程序设计语言l机器语言机器语言:第一代程序设计语言第一代程序设计语言 字母表:字母表:0,1 单词符号:操作码、地址单词符号:操作码、地址 语法单位:语法单位:指令指令 10111000 1001 1110 程序程序 指令的组合指令的组合本讲稿第十四页,共一百一十四页机器语言机器语言l编写程序十分编写程序十分繁琐繁琐和和痛苦痛苦;l程序不便于记忆、阅读和书写,容易出错程序不便于记忆、阅读和书写,容易出错(查错和改错,十分困难);(查错

6、和改错,十分困难);l每类计算机的指令系统各不相同,可移每类计算机的指令系统各不相同,可移植性很差,造成了重复工作。植性很差,造成了重复工作。本讲稿第十五页,共一百一十四页机器语言机器语言l指令针对特定型号的计算机(与机器有指令针对特定型号的计算机(与机器有关,关,低级语言低级语言)l 运算效率很高运算效率很高本讲稿第十六页,共一百一十四页汇编语言汇编语言l字母表:主要增加了英文字母字母表:主要增加了英文字母l单词符号:单词符号:操作码、内存符号、寄存器、数据操作码、内存符号、寄存器、数据l语法单位:语法单位:指令指令 ADD A,R0 程序程序 指令的组合指令的组合本讲稿第十七页,共一百一十

7、四页汇编语言:第二代计算机语言汇编语言:第二代计算机语言l助记忆符助记忆符:用与代码指令含义相近的:用与代码指令含义相近的英文缩写英文缩写词、字母和数字等符号词、字母和数字等符号取代指令代码取代指令代码l较容易理解程序,纠错及维护变得较方便较容易理解程序,纠错及维护变得较方便l汇编语言仍然是汇编语言仍然是面向机器面向机器的语言(低级语言)的语言(低级语言),仍比较繁琐,通用性也差。,仍比较繁琐,通用性也差。本讲稿第十八页,共一百一十四页汇编语言汇编语言l需要将汇编语言指令需要将汇编语言指令翻译翻译成机器语成机器语言的指令:汇编言的指令:汇编l汇编语言程序的汇编语言程序的目标程序目标程序占用内存

8、占用内存空间少,运行速度快空间少,运行速度快l有着高级语言不可替代的用途有着高级语言不可替代的用途 本讲稿第十九页,共一百一十四页高级程序设计语言高级程序设计语言1)字母表的定义;)字母表的定义;2)词法规则:一般有五类单词符号)词法规则:一般有五类单词符号3)语法规则:)语法规则:语法单位包括:表达式、语句、模块、语法单位包括:表达式、语句、模块、程序程序本讲稿第二十页,共一百一十四页高级程序设计语言高级程序设计语言4)语义规则:)语义规则:5)语用规则:无二义的)语用规则:无二义的6)其他规则:)其他规则:如数据类型的定义、运算符优先级的如数据类型的定义、运算符优先级的定义、参数的传递方式

9、、作用域的规定定义、参数的传递方式、作用域的规定等等本讲稿第二十一页,共一百一十四页FORTRAN语言的一条语句:语言的一条语句:if (num0)then abs:=num else abs:=-num;本讲稿第二十二页,共一百一十四页高级程序设计语言高级程序设计语言l独立于计算机的硬件独立于计算机的硬件l对具体的算法进行描述(算法语言)对具体的算法进行描述(算法语言)l独立性,通用性和可移植性好独立性,通用性和可移植性好本讲稿第二十三页,共一百一十四页高级程序设计语言高级程序设计语言l一般包含有以下四种成分:一般包含有以下四种成分:l数据成分数据成分:描述程序所涉及的数据:描述程序所涉及的

10、数据l运算成分运算成分:描述运算:描述运算l控制成分控制成分:表达程序的控制结构:表达程序的控制结构l传输成分传输成分:表达数据的传输(输入输出、:表达数据的传输(输入输出、文件读写操作)文件读写操作)本讲稿第二十四页,共一百一十四页高级程序设计语言高级程序设计语言l高级语言的程序主要是描述计算机的解题过高级语言的程序主要是描述计算机的解题过程,即描述复杂的加工处理过程,所以也称程,即描述复杂的加工处理过程,所以也称高级语言为高级语言为面向过程语言面向过程语言。l计算机不能直接执行高级语言的程序(源程序)计算机不能直接执行高级语言的程序(源程序);通常有;通常有解释方式解释方式和和编译方式编译

11、方式两种方法在计算两种方法在计算机上执行程序(目标程序)。机上执行程序(目标程序)。本讲稿第二十五页,共一百一十四页本讲稿第二十六页,共一百一十四页思考思考 大量的程序设计语言被发明、被取代、大量的程序设计语言被发明、被取代、被修改或组合在一起;被修改或组合在一起;尽管多次试图创造一种通用的程序设尽管多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的计语言,却没有一次尝试是成功的 WHY?本讲稿第二十七页,共一百一十四页高级语言的发展高级语言的发展l从从 早期语言早期语言 到到 结构化程序设计语言结构化程序设计语言l从从 面向过程面向过程 到到 非过程化程序语言非过程化程序语言本讲稿第

12、二十八页,共一百一十四页1.1.FORTRANFORTRAN=FORFORmula mula TRANTRANslation slation 主要用于科学计算主要用于科学计算2.2.ALGOL 60=ALGOALGOL 60=ALGOrithmic rithmic L Language anguage 6060 采用采用BNFBNF形式描述语法形式描述语法一一.早期的高级语言(早期的高级语言(50年代)年代)本讲稿第二十九页,共一百一十四页早期的高级语言早期的高级语言 3.COBOL COmmon Business Oriented Language.广泛应用于各种事务处理领域广泛应用于各种事

13、务处理领域.引入了文件和数据描述引入了文件和数据描述本讲稿第三十页,共一百一十四页基于数学原则的语言基于数学原则的语言 1.1.LISPLISP.其基础是其基础是函数函数和函数作用和函数作用2.APL2.APL.支持函数式程序设计风格支持函数式程序设计风格.应用于大量矩阵运算的科学计算应用于大量矩阵运算的科学计算二二.早期的突破早期的突破本讲稿第三十一页,共一百一十四页3 3.SNOBOL 4.SNOBOL 4 .主要用于字符串处理主要用于字符串处理 .与与机机器器无无关关的的宏宏功功能能,增增加加了了程程序序的的可可移植性移植性本讲稿第三十二页,共一百一十四页PL/1PL/1 .希望将所有语

14、言概念希望将所有语言概念集成集成大全大全 .分程序概念和递归过程分程序概念和递归过程 .数据描述机能数据描述机能 .动态数据结构动态数据结构 .异常处理异常处理 .多任务机能多任务机能 .可用于科学数值计算可用于科学数值计算,数据处理等数据处理等 .难以得到广泛的应用难以得到广泛的应用三三.概念的集成(概念的集成(64年)年)本讲稿第三十三页,共一百一十四页 引入了许多有趣的概念引入了许多有趣的概念1.1.ALGOL 68ALGOL 68 .以零型文法描述语法规则以零型文法描述语法规则 .引入正交性和通用性原则引入正交性和通用性原则四四.再一次突破再一次突破(60年代后期年代后期)本讲稿第三十

15、四页,共一百一十四页2.2.SIMULA67SIMULA67 .应用于模拟领域应用于模拟领域 .协同程序协同程序 .引入了类的概念引入了类的概念本讲稿第三十五页,共一百一十四页3.3.PASCALPASCAL .具有明显的简洁性具有明显的简洁性 .体现体现结构程序设计结构程序设计思想思想 .具有具有用户自定义类型用户自定义类型 利用语法图形式描述语法规则利用语法图形式描述语法规则本讲稿第三十六页,共一百一十四页 4.4.BASICBASICBeginners All-purpose Symbolic Instruction Code .简单易学简单易学 .交互式交互式工作环境工作环境 .解释执

16、行解释执行本讲稿第三十七页,共一百一十四页7070年代年代,支持系统软件开发支持系统软件开发1.1.语言研究语言研究 涉涉及及抽抽象象数数据据类类型型,异异常常处处理理和和并并行行处处理理机制机制 2.2.MODULA-2MODULA-2 .支持模块结构支持模块结构,模块可以独立编译模块可以独立编译 .面向面向实时系统实时系统和并行系统综合功能和并行系统综合功能五五.大量的探索大量的探索本讲稿第三十八页,共一百一十四页3.3.C C CPLBCPLB CPLBCPLBC C .具有高级语言和低级语言的优点具有高级语言和低级语言的优点 .应用于应用于各种领域各种领域本讲稿第三十九页,共一百一十四

17、页7070年代以后年代以后,注重可移植性注重可移植性 1.1.AdaAda .面向专门领域的特殊要求面向专门领域的特殊要求 .是在引入了一个不大的是在引入了一个不大的,容易理解的容易理解的 概念集合的基础上开发的概念集合的基础上开发的 .体现许多现代软件设计方法学的语言体现许多现代软件设计方法学的语言 .提高程序的可读性提高程序的可读性,可靠性可靠性,可维护性可维护性六六.Ada和第四代语言和第四代语言本讲稿第四十页,共一百一十四页2.2.第四代语言第四代语言超高级语言超高级语言 面向问题面向问题 .表达力强表达力强,更接近于问题的描述更接近于问题的描述 .着重关心的是着重关心的是:做什么做什

18、么本讲稿第四十一页,共一百一十四页 JavaJava、HTMLHTML Java是一种通用、并发、基于类的是一种通用、并发、基于类的面向面向对象对象的程序设计语言。的程序设计语言。l面向对象面向对象l实现:编译与解释相结合实现:编译与解释相结合l分布性、安全性、并发性分布性、安全性、并发性七七.网络时代的语言网络时代的语言本讲稿第四十二页,共一百一十四页抛弃抛弃冯冯.诺依曼诺依曼体系结构体系结构包括函数式,逻辑式语言包括函数式,逻辑式语言应用于人工智能等领域应用于人工智能等领域八八.新一代程序设计语言新一代程序设计语言本讲稿第四十三页,共一百一十四页1.1.基础基础 存储器存储器,控制器控制器

19、,处理器,处理器,ipip2.2.特点特点 数据或指令以数据或指令以二进制二进制形式存储形式存储;存储存储程序的工作方式;程序的工作方式;程序程序顺序执行;可强制修改执行顺序顺序执行;可强制修改执行顺序 存储器的内容可以被存储器的内容可以被修改修改。冯冯.诺依曼体系结构(模型)诺依曼体系结构(模型)本讲稿第四十四页,共一百一十四页ip代码存储器(代码存储器(C)数据存储器(数据存储器(D)本讲稿第四十五页,共一百一十四页一些高级语言的关系一些高级语言的关系本讲稿第四十六页,共一百一十四页程序设计语言的发展小结程序设计语言的发展小结 机器语言机器语言汇编语言汇编语言高级语言高级语言 用用机器语言

20、机器语言编写的程序由二进制代码编写的程序由二进制代码组成,计算机可以直接执行。组成,计算机可以直接执行。将机器语言将机器语言符号化符号化,于是产生了,于是产生了汇编语汇编语言言。机器语言和汇编语言都是与机器有关机器语言和汇编语言都是与机器有关的语言,通常称为低级语言。的语言,通常称为低级语言。本讲稿第四十七页,共一百一十四页C语言的发展语言的发展l1963年,在年,在ALGOL 60 的基础上,英国剑桥的基础上,英国剑桥大学推出了大学推出了CPL(Combined Programming Langurage)语言。)语言。l1967年英国剑桥大学的年英国剑桥大学的 Matin Richards

21、对对CPL语言做了简化,推出了语言做了简化,推出了 BCPL(Base CPL)语言。)语言。l1970年美国贝尔实验室的年美国贝尔实验室的 Ken Thompson 对对 BCPL 进一步简化,设计出了简单的而且很进一步简化,设计出了简单的而且很接近硬件的接近硬件的 B 语言语言,并用并用B语言写出了第一个语言写出了第一个 UNIX 操作系统。操作系统。本讲稿第四十八页,共一百一十四页l1972年至年至1973年间,贝尔实验室的戴尼斯年间,贝尔实验室的戴尼斯利利奇(奇(Demis Ritchie)和布朗)和布朗卡尼汉(卡尼汉(Brian Kernighan)在)在 B 语言的基础上设计出了语

22、言的基础上设计出了 C 语言(语言(BCPL)。)。lC语言即保持语言即保持 BCPL 语言和语言和 B 语言的优点(精语言的优点(精练、接近硬件),又克服了他们的缺点(过练、接近硬件),又克服了他们的缺点(过于简单,数据无类型等)。于简单,数据无类型等)。l1973年新的年新的UNIX版本完全用版本完全用C语言编写语言编写 本讲稿第四十九页,共一百一十四页l1977年出现了可移植年出现了可移植C语言的编译程序语言的编译程序,推,推动了动了UNIX在各种机器上实现在各种机器上实现,C语言也迅速得语言也迅速得到推广,其发展相辅相成。到推广,其发展相辅相成。l1978年以后,年以后,C语言先后移植

23、到大、中、小、微语言先后移植到大、中、小、微型计算机上,成为最广泛使用的计算机程序设型计算机上,成为最广泛使用的计算机程序设计语言之一。计语言之一。本讲稿第五十页,共一百一十四页l1978年在年在Brian W.Kernighan和和Dennis M.Ritchie 合著的合著的The C Programming Language 成为成为C语言的标准。语言的标准。本讲稿第五十一页,共一百一十四页l19831983年年,美国国家标准化协会美国国家标准化协会(ANSI)(ANSI)根据根据C C语语言各种版本对言各种版本对C C的发展和扩充的发展和扩充,制定了新的标制定了新的标准准ANSI CA

24、NSI C,比标准,比标准C C有了很大的发展有了很大的发展l19871987年年,ANSI,ANSI公布了新标准:公布了新标准:87 ANSI C87 ANSI C。l19891989年,公布了新的年,公布了新的C C语言标准语言标准C89C89l19901990年,年,ISOISO接受接受C89C89作为国际标准,通常称为作为国际标准,通常称为C90C90本讲稿第五十二页,共一百一十四页l19991999年,年,ISOISO对对C C语言增加了一些面向对语言增加了一些面向对象的特征,简称为象的特征,简称为 C99C99。l目前流行的目前流行的C C语言编译系统大多是以语言编译系统大多是以C

25、89C89为为基础进行开发的。基础进行开发的。本讲稿第五十三页,共一百一十四页第一章第一章 C语言程序设计基础知识语言程序设计基础知识 lC语言是一种通用的高级程序设计语言语言是一种通用的高级程序设计语言l当今世界上最流行的程序设计语言之一当今世界上最流行的程序设计语言之一l开发开发系统软件系统软件和和应用软件应用软件中得到广泛应用中得到广泛应用l本章简介本章简介C语言程序设计相关的基础知识语言程序设计相关的基础知识 本讲稿第五十四页,共一百一十四页1.1 1.1 引言引言l1.1.1 计算机与信息社会计算机与信息社会计算机定义:计算机定义:一种在事先存入程序的控制下,能够一种在事先存入程序的

26、控制下,能够接接收数据收数据、存储数据存储数据、处理数据处理数据并提供处理并提供处理结果结果的数字化电子设备。的数字化电子设备。本讲稿第五十五页,共一百一十四页计算机工作流程图计算机工作流程图输入输入运算与控制运算与控制存储存储输出输出数据数据l计算机计算机结果结果本讲稿第五十六页,共一百一十四页1.1.2 1.1.2 计算机中信息的表示计算机中信息的表示 1.1.计算机内所有信息采用计算机内所有信息采用二进制二进制表示表示 2.2.采用二进制的原因:采用二进制的原因:1 1)二进制只包含)二进制只包含0 0和和1 1,因此可用大量具有两,因此可用大量具有两种不同稳定状态的元件来表示。种不同稳

27、定状态的元件来表示。2 2)二进制数的运算规则简单,使得计算机)二进制数的运算规则简单,使得计算机中的运算部件的结构变得比较简单。中的运算部件的结构变得比较简单。本讲稿第五十七页,共一百一十四页3.计算机中信息的表示计算机中信息的表示数值数值直接转换为二进制直接转换为二进制字符字符采用采用ASCII编码(编码(7位、美国标准信位、美国标准信息交换码)息交换码)其它信息其它信息(汉字、图形、图象、声音、表(汉字、图形、图象、声音、表格)也有相应的编码标准和规则。格)也有相应的编码标准和规则。本讲稿第五十八页,共一百一十四页 计算机系统计算机系统软件系统软件系统硬件系统硬件系统系统软件(操作系统、

28、编译程序、诊断程序系统软件(操作系统、编译程序、诊断程序系统服务软件等)系统服务软件等)应用软件应用软件(信息管理软件、游戏等)信息管理软件、游戏等)CPU控制器控制器运算器运算器输入设备(鼠标、键盘、手写笔、输入设备(鼠标、键盘、手写笔、MIC等)等)输出设备(显示器、绘图仪、打印机等)输出设备(显示器、绘图仪、打印机等)存储器存储器 内存储器(内存储器(RAM)外存储器(软盘、硬盘、光盘)外存储器(软盘、硬盘、光盘)1.1.3 1.1.3 计算机系统的组成计算机系统的组成计算机系统的组成计算机系统的组成本讲稿第五十九页,共一百一十四页程序的程序的灵魂灵魂算法算法l一个程序应包括:一个程序应

29、包括:对对数据的描述数据的描述:在程序中要指定数据的:在程序中要指定数据的类型和数据的组织形式类型和数据的组织形式 即数据结构(即数据结构(data structure)对对数据进行操作的描述数据进行操作的描述:即操作步骤,:即操作步骤,也就是算法(也就是算法(algorithm)本讲稿第六十页,共一百一十四页lNikiklaus Wirth 提出的公式:提出的公式:程序程序=数据结构数据结构+算法算法l目前目前 程序程序=算法算法+数据结构数据结构 +程序设计方法程序设计方法+语言工具和环境语言工具和环境 本讲稿第六十一页,共一百一十四页算法及其表示算法及其表示l算法:解决问题所采取的一系列

30、步骤算法:解决问题所采取的一系列步骤l例,要求用一个给定的半径计算圆的面例,要求用一个给定的半径计算圆的面积,计算机算法为:积,计算机算法为:设置半径值设置半径值r;使用公式使用公式s=r2;显示显示S的值。的值。本讲稿第六十二页,共一百一十四页算法的特点算法的特点(1)有输入有输入 算法可以有算法可以有零个或多个零个或多个输入。输入是用来在输入。输入是用来在一个算法的执行过程中,向它提供处理对象一个算法的执行过程中,向它提供处理对象(数据数据)或控制算法执行过程的信息。或控制算法执行过程的信息。(2)有输出有输出 算法算法必须必须具有一个或多个执行结果的输出。没具有一个或多个执行结果的输出。

31、没有输出的算法是一个无效的算法。有输出的算法是一个无效的算法。本讲稿第六十三页,共一百一十四页算法的特点算法的特点(3)(3)有有穷穷性性 任何算法都任何算法都应该应该在在执执行有行有穷穷步步骤骤之后之后结结束。束。(4)(4)确定性确定性 算算法法不不能能具具有有二二义义性性。算算法法中中每每一一步步的的语语义义都都应应该该清清晰晰明明了了,明明确确指指出出应应该该执执行行什什么么操操作作,如如何何执执行操作。行操作。本讲稿第六十四页,共一百一十四页算法的特点算法的特点(5)高效性高效性 根根据据算算法法编编写写出出来来的的程程序序应应具具有有较较高高的的时时空空效率效率。执行时间短执行时间

32、短 不占用过多内存。不占用过多内存。本讲稿第六十五页,共一百一十四页算法的表示(描述)算法的表示(描述)l自然语言自然语言表示表示 易理解和交流,但易产生二义性。易理解和交流,但易产生二义性。l伪代码伪代码表示表示 伪代码使用介于自然语言和计算机语伪代码使用介于自然语言和计算机语言之间的言之间的文字和符号文字和符号来描述算法来描述算法(用形式化语言描述算法的逻辑过程用形式化语言描述算法的逻辑过程)本讲稿第六十六页,共一百一十四页算法的表示(描述)算法的表示(描述)l程序流程图程序流程图 用用图形符号和文字说明图形符号和文字说明来表示数据处理来表示数据处理的过程和步骤。的过程和步骤。lN-SN-

33、S流程图流程图 也称方框图也称方框图;适于结构化程序设计的算;适于结构化程序设计的算法描述工具。法描述工具。本讲稿第六十七页,共一百一十四页程序流程图l是描述算法的良好工具。是描述算法的良好工具。l由由逻辑框和流向线逻辑框和流向线组成。组成。逻辑框是表示程序操作功能的图形符号。逻辑框是表示程序操作功能的图形符号。流向线用来指示程序的逻辑处理顺序。流向线用来指示程序的逻辑处理顺序。本讲稿第六十八页,共一百一十四页流程图的逻辑框l起止框起止框 表示程序的开始和结束。表示程序的开始和结束。l处理框处理框 表示一种处理功能或程序段,框内用文字简表示一种处理功能或程序段,框内用文字简述其功能。述其功能。

34、本讲稿第六十九页,共一百一十四页逻辑框l判断框判断框 表示在此进行判断以决定程序的流向,框表示在此进行判断以决定程序的流向,框内注明判断条件。内注明判断条件。l连接框连接框 框内注有字母,当流程图跨页时,或者可框内注有字母,当流程图跨页时,或者可能出现流向线交叉时,用它来表示彼此之间能出现流向线交叉时,用它来表示彼此之间的关系,相同符号的连接框表示它们是相互的关系,相同符号的连接框表示它们是相互连接的。连接的。本讲稿第七十页,共一百一十四页流向线流向线l流向线流向线 表示程序处理的逻辑顺序。以单向箭表示程序处理的逻辑顺序。以单向箭头表示。头表示。本讲稿第七十一页,共一百一十四页逻辑框和流向线逻

35、辑框和流向线NY本讲稿第七十二页,共一百一十四页N-S流程图流程图 1973年美国学者年美国学者Nassi和和Schneiderman提出提出N-S流程图(也称为方框图),它是一种适于流程图(也称为方框图),它是一种适于结构化程序设计的算法描述工具。结构化程序设计的算法描述工具。由于流程图各步骤之间,一般总是按照从上到由于流程图各步骤之间,一般总是按照从上到下顺序执行,下顺序执行,N-S流程图中取消了流向线流程图中取消了流向线。本讲稿第七十三页,共一百一十四页二选一结构的表示二选一结构的表示ABYN满足不满足AB本讲稿第七十四页,共一百一十四页算法例子算法例子1l输入一个整数,输出其绝对值:输

36、入一个整数,输出其绝对值:l自然语言描述:自然语言描述:1 输入输入一个整数一个整数;2 若若该数为正数,则其绝对值该数为正数,则其绝对值取取该数的值该数的值 否则,其绝对值否则,其绝对值取取该数的相反数值;该数的相反数值;3 输出输出其绝对值。其绝对值。本讲稿第七十五页,共一百一十四页伪码表示伪码表示BEGIN READ numb IF numb0 abs=numb ELSE abs=-numb PRINT absEND本讲稿第七十六页,共一百一十四页程序流程图程序流程图BEGINREAD numbnumb0abs=numbabs=-numbPRINT absENDYN本讲稿第七十七页,共一

37、百一十四页算法例子算法例子2l从键盘读入从键盘读入10个整数输出其中正整数的和。个整数输出其中正整数的和。本讲稿第七十八页,共一百一十四页BEGINBEGIN SET 0 SET 0sumsum SET 0 SET 0countcount WHILE count 10 WHILE count 0 then IF x0 then sum+x sum+x sumsum END END count+1count count+1count END_WHILEEND_WHILE PRINT sum PRINT sumENDEND算法例子算法例子2伪代码伪代码本讲稿第七十九页,共一百一十四页程序流程图描述

38、算法程序流程图描述算法本讲稿第八十页,共一百一十四页 N-S流程图算法流程图算法本讲稿第八十一页,共一百一十四页编写程序编写程序 l算法用算法用C语言进行实现,该过程也称对算语言进行实现,该过程也称对算法进行编码。法进行编码。l按照算法的流程顺序编写程序按照算法的流程顺序编写程序l编写程序还必须进行语句编写程序还必须进行语句执行过程执行过程的的控控制制。本讲稿第八十二页,共一百一十四页语言提供的控制结构语言提供的控制结构1顺序顺序:定义了语句按顺序执行的次序。:定义了语句按顺序执行的次序。2选择选择:提供了根据某个条件的结果在不同的:提供了根据某个条件的结果在不同的语句中选择执行某一条语句的能

39、力。语句中选择执行某一条语句的能力。3循环循环(重复):提供根据某个条件的结果重(重复):提供根据某个条件的结果重复地执行某些语句的能力。复地执行某些语句的能力。4调用调用:即在需要时运行指定的代码段。:即在需要时运行指定的代码段。本讲稿第八十三页,共一百一十四页C语言程序的基本结构语言程序的基本结构#include void main()数据定义数据定义;(变量说明语句);(变量说明语句);数据处理数据处理;(执行语句);(执行语句);本讲稿第八十四页,共一百一十四页程序说明程序说明每个每个C程序必须有一个主函数程序必须有一个主函数main 是函数开始和结束的标志是函数开始和结束的标志若若需

40、需要要输输入入和和输输出出功功能能,程程序序开开头头应应该为该为#include 本讲稿第八十五页,共一百一十四页#include void main()printf(“This is a C program.n”);程序例程序例1 1程序的作用是输出一行信息:This is a C program.本讲稿第八十六页,共一百一十四页程序例程序例2 2 求绝对值求绝对值#include void main()int numb;/*代表某个整数代表某个整数*/int abs;/*代表该整的绝对值代表该整的绝对值*/scanf(“%d”,&numb);/*输入该整数的值输入该整数的值*/*求绝对值求

41、绝对值*/if (numb0)abs=numb;else abs=-numb;printf(“the abs of numb is%dn”,abs);/*输出输出*/本讲稿第八十七页,共一百一十四页注释注释l/*/表示注释。l注释是对源程序进行的注解,增加程序的可读性;l对编译和运行不起作用。本讲稿第八十八页,共一百一十四页程序例程序例3 3 求两个实数之和求两个实数之和#include void main()float a,b,sum;/*实型数据定义实型数据定义*/scanf(“%f%f”,&a,&b);sum=a+b;printf(sum is%fn,sum);本讲稿第八十九页,共一百一

42、十四页程序例程序例4 4l利用海伦公式利用海伦公式 计算计算 边长分别为边长分别为3、4、5的三角形的面积的三角形的面积本讲稿第九十页,共一百一十四页#include#include void main()float a=3.0,b=4.0,c=5.0;float s,area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%fn”,area);本讲稿第九十一页,共一百一十四页库函数库函数lC语言(编译器)提供了许多基本的、常语言(编译器)提供了许多基本的、常用的功能;用的功能;l分别保存在不同的文件中;分别保存在不同的文件中;l

43、以函数形式提供给程序员使用;以函数形式提供给程序员使用;本讲稿第九十二页,共一百一十四页库函数分类库函数分类(1)I/O 功能,需要的包含文件:功能,需要的包含文件:stdio.h 如如:printf,scanf等。等。(2)字符(串)处理功能,字符(串)处理功能,string.h 如:如:islower,strcat,strcmp,strlen等。等。(3)数学功能,数学功能,math.h 如:如:sin,cos,exp,log,sqrt等。等。本讲稿第九十三页,共一百一十四页库函数分类库函数分类(4)时间、日期功能,时间、日期功能,time.h 如:如:time()()(5)图形功能,包括

44、各种绘制点、线、圆、方和图形功能,包括各种绘制点、线、圆、方和填色等的函数,填色等的函数,graphics.h6)动态存储分配,)动态存储分配,alloc.h本讲稿第九十四页,共一百一十四页程序例程序例5 5求求2个整数中较大者个整数中较大者(通过函数实现通过函数实现)int max(int x,int y)/*x,y:形参:形参*/int z;if (xy)z=x;else z=y;return(z);本讲稿第九十五页,共一百一十四页main部分部分#include void main()int a,b,max_num;scanf(d,d,&a,&b);/*调用调用max函数函数,将得到的值

45、赋给将得到的值赋给max_num*/max_num=max(a,b);printf(max=dn,max_num);本讲稿第九十六页,共一百一十四页程序例程序例6 6输出华氏输出华氏摄氏温度对照表。摄氏温度对照表。l在华氏在华氏0100。之间(间隔之间(间隔20。);给出);给出对应的摄氏温度对应的摄氏温度本讲稿第九十七页,共一百一十四页#includevoid main()int lower=0,upper=100,step=20;float cs,fs;fs=lower;printf(“fahr Celsiusn”);本讲稿第九十八页,共一百一十四页 while(fs =!=逻辑运算符逻辑

46、运算符:!&|位运算符位运算符:&|本讲稿第一百零八页,共一百一十四页运算符的重载运算符的重载(超载超载)C语言的某些运算符有双重含义,称语言的某些运算符有双重含义,称为运算符的重载;为运算符的重载;使用时要根据上下文关联确定具体含义。使用时要根据上下文关联确定具体含义。本讲稿第一百零九页,共一百一十四页常量常量数值常量:数值常量:586,-15,3.1415 字符(串)常量字符(串)常量:a,B,“china”变量变量是指在程序执行中其值可改变的数据,是指在程序执行中其值可改变的数据,使用标识符代表。使用标识符代表。程序中的数据只能表示为常量或变量。程序中的数据只能表示为常量或变量。本讲稿第

47、一百一十页,共一百一十四页(分)界符(分)界符 界符是用来分隔数据、表达式、语句的界符是用来分隔数据、表达式、语句的符号;符号;C语言的分隔符主要指空格、制表和换语言的分隔符主要指空格、制表和换行符、括号、分号和逗号等。行符、括号、分号和逗号等。本讲稿第一百一十一页,共一百一十四页C C程序的程序设计程序的程序设计l其具体过程是:其具体过程是:分析问题分析问题;确定确定数据数据;找出解决问题的;找出解决问题的算法算法;使用使用C语言描述算法:语言描述算法:编写程序编写程序。运行运行和和调试调试本讲稿第一百一十二页,共一百一十四页第一章第一章 小结小结l计算机系统由硬件和软件两部分组成的。计算机

48、系统由硬件和软件两部分组成的。硬件硬件:构成计算机的五大部件;存储器、运算构成计算机的五大部件;存储器、运算器、控制器、输入设备和输出设备器、控制器、输入设备和输出设备 软件:指程序及文档软件:指程序及文档l计算机中的信息是以二进制形式存放的。计算机中的信息是以二进制形式存放的。本讲稿第一百一十三页,共一百一十四页 C语言是系统软件和应用软件开发中重要的语言是系统软件和应用软件开发中重要的工具语言。工具语言。C语言程序是由一系列函数组成的。语言程序是由一系列函数组成的。C语言是编译型的高级程序设计语言,语言是编译型的高级程序设计语言,开发过程包括开发过程包括:编辑、编译、连接、运行编辑、编译、连接、运行四个四个步骤。步骤。本讲稿第一百一十四页,共一百一十四页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁