




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计教材、参考书与课时安排教材
C语言程序设计基础(第2版)袁仲雄等编著清华大学出版社参考书C语言程序设计(第4版)
谭浩强高等教育出版社C高级实用程序设计王士元清华大学出版社课时安排授课:34学时上机:16学时学习要求及成绩构成学习要求课前请做好预习,课后请做好复习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间成绩构成平时考勤:10%平时作业:10%平时上机:10%期末考试:机试20%+笔试50%学习方法与建议心动,还要行动多读例程,多模仿,多实践有疑问自己动手编程验证第1章C语言程序设计基础程序设计基本概念算法和结构化程序设计数据类型和数据结构123本章内容“禽有禽言,兽有兽语”——《西游记》人与人之间的交流:汉语、英语、法语……人与计算机的交流:计算机语言人与计算机之间的通信语言数字、字符和语法规则组成的各种指令前言程序设计语言填补了
人与计算机交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人程序设计语言1、计算机与程序:
要让计算机按照人们的愿望工作,必须由人们事先编制好程序,并输入到计算机,让计算机执行程序才能产生相应的操作结果。2、程序设计语言(ProgrammingLanguage):
是一组用来定义计算机程序的语法规则机器语言汇编语言高级语言面向过程面向对象1.1程序设计基本概念把高级语言转化为机器语言的翻译程序称为编译器(compilers)1.1程序设计基本概念举例比较面向对象和面向过程程序设计例如:五子棋面向过程的设计思路就是首先分析问题的步骤:
1、开始游戏,
2、黑子先走,
3、绘制画面,
4、判断输赢,
5、轮到白子,
6、绘制画面,
7、判断输赢,
8、返回步骤2,
9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:
1、黑白双方,这两方的行为是一模一样的,
2、棋盘系统,负责绘制画面,
3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,同时利用第三类对象(规则系统)来对棋局进行判定。编译系统:用高级语言编写的程序,计算机是不能直接识别和执行的(计算机只能直接识别二进制的指令),必须事先把用高级语言编写的程序翻译成机器语言程序,这个“翻译”工作是由称为“编译系统”的软件来实现的。运行C语言程序常用的编译软件有TurboC2.0、TurboC++3.0、VisualC++6.0、Devc++等1.1程序设计基本概念程序设计基础3、程序:要利用计算机来处理问题,就必须要事先编写出使计算机按人的意愿工作的应用程序。所谓程序,就是一系列遵循一定规则和思想并能正确完成指定工作的代码。程序包含两方面的内容:对数据的描述--数据结构在程序中指定数据的类型和组织形式对操作的描述--算法算法是为解决某一特定问题而采取的具体的有限的方法和操作步骤程序=数据结构+算法程序设计基础4、程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分1.分析阶段2.设计阶段3.编码阶段4.测试阶段5.调试和运行阶段程序设计=数据结构+算法+程序设计方法学5、数据结构的概念数据结构是指互相之间存在着一种或多种关系的数据元素的集合。是整个计算机科学与技术领域的一个重要概念。它用来反映一个数据的内部构成,即一个数据包含什么内容,以什么方式构成,呈什么结构。
数据结构有什么用?答:计算机内的数值运算依靠方程式,而非数值运算(如表、树、图等)则要依靠数据结构。程序设计的实质是对实际问题选择一个好的数据结构,加之设计一个好的算法。而好的算法在很大程度上取决于描述实际问题的数据结构。数据结构的研究对象数据元素之间的逻辑关系,也称数据的逻辑结构(LogicalStructure);数据元素及其关系在计算机存储器内的表示,称为数据的存储结构(StorageStructure);数据的运算,对数据施加的操作,即数据的运算。数据结构三要素:逻辑结构+存储结构+运算集合结构——数据元素间除“同属于一个集合”外,无其它关系线性结构——一个对一个,如线性表、栈、队列树形结构——一个对多个,如树图状结构——多个对多个,如图数据的逻辑结构:通常称数据结构为数据的逻辑结构数据的存储(物理)结构—数据的逻辑结构在计算机存储器中的实现顺序存储结构——借助元素在存储器中的相对位置来表示数据元素间的逻辑关系链式存储结构——借助指示元素存储地址的指针表示数据元素间的逻辑关系索引存储结构——存储结点信息的同时还建立附加的索引表散列存储结构——根据结点的关键字直接计算出该结点的的存储地址。元素n……..元素i……..元素2元素1LoLo+1*mLo+(i-1)*mLo+(n-1)*m存储地址存储内容Loc(元素i)=Lo+(i-1)*m2.数据元素逐个连续存放(通过物理相邻可确定逻辑关系)注:1.每个元素占用m个存储单元顺序存储存储地址存储内容指针
1345元素1
1400
1346元素4∧
…….
……..
…….
1400元素2
1536
…….
……..
…….
1536元素3
1346∧1536元素21400元素11346元素3元素41345h
链式存储
h数据元素可以任意存放(通过指针来确定元素的逻辑关系)1.2算法和结构化程序设计算法是为解决某一特定问题而采取的具体的有限的方法和操作步骤,是指令的有限序列算法的特征有穷性:在有限的操作步骤内完成确定性:每个步骤确定,步骤的结果确定可行性:算法的每一步都是能够实现的,即是可操作的输入:算法有零个或多个输入输出:算法执行完毕,必须有一个或若干个输出结果算法的控制结构(结构化程序设计的三种基本结构)包括顺序、选择、循环三种结构顺序结构先执行A,再执行BBA
(a)AB
(b)NS流程图1.2算法和结构化程序设计顺序结构实例交换变量x和y的值可分解为顺序执行的三个操作步骤:{temp=x;/*将x的值暂存于temp*/x=y;/*将x置成y的值*/
y=temp;/*将y置成temp的值*/}程序设计基础选择结构当P条件为真时,执行A,否则执行BAPB真假(a)P真假AB(b)程序设计基础当型循环结构当P条件成立时,反复执行A,直到P为假PA假真(a)(b)A当P为真程序设计基础直到型循环结构先执行A,再判断P是否为假,若P为假,再执行A,直到P为真为止(a)A直到P为真(b)AP假真程序设计基础已经证明,任何复杂的问题都可以通过这三种基本结构(顺序、选择、循环)来描述。算法的描述自然语言表示算法流程图表示算法伪代码表示算法自然语言就是汉语、英语等人们日常使用的语言。1.通俗易懂2.文字冗长3.容易出现“歧义性”4.此种方法一般用于算法比较简单的问题1.自然语言描述算法例如求5!S1:p赋值1S2:i赋值2S3:使p*i的值赋值给pS4:使i+1的值赋值给iS5:i不大于5,重复执行S3,S4,S5;否则,算法结束。例如:求n!(n≥0)第一步:输入n的值。第二步:判别一下n的值,如果小于0,则显示“输入错误”信息,然后执行第五步。第三步:判断一下n的值如果大于或等于0,则进行以下操作。(1)给存放连乘积的变量fac赋初值为1;(2)给代表乘数的变量i赋初值为1;(3)进行连乘运算:fac=faci;(4)乘数i增加1:i=i+1;(5)判断乘数i是否大于n?如果i的值不大于n,重复执行第三步,否则执行下一步;第四步:输出fac的值,即n!值。第五步:结束运行。例如:输出两个数中的最大数 第一步:输入x和y的值 第二步:比较x和y的值,如果x大于y,则输出x的值,否则输出y的值。易于理解但冗长,不够精确难于描述复杂算法例如当描述“输出10个数中最大数”的算法时,会冗长、难于理解2.用伪代码表示算法:用介于自然语言和计算机语言之间的文字和符号来描述算法例:求12+22+···+n2
输出sum开始输入n的值置sum初值为0
置i初值为1
当i≤n,执行下面操作:
sum=i*i+sumi=i+1
打印sum的值结束传统流程图是借助一些图形符号来表示算法的一种工具,如下图所示。这种表示方法直观形象,容易理解。这些图形符号均采用美国国家标准协会ANSI规定的通用符号,在世界上也是通用的。3.用流程图描述算法起止框输入输出框判断框处理框流程线连接点符号功能开始起止框打印p结束1输入输出框1=>p2=>ip*i=>pi+1=>ii>51例如计算5!连接点判断框处理框否是
例如:输出两个数中的最大数NYz=yz=xx>y?开始输入x和y结束输出z例:求三个数中最大值的流程图常见流程图符号结构化程序设计结构化程序设计主要包括:程序结构自顶向下模块化设计方法模块算法的逐步求精设计方法结构化控制结构描述算法和编写程序自顶向下模块化设计方法限制程序复杂性是程序设计核心。程序结构自顶向下模块化设计方法就是把大程序按功能划分成一些较小的部分,每个完成独立功能。分解模块的原则是简单性、独立性和完整性。模块化设计方法开发程序,使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护。逐
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版豪华别墅木地板设计与施工一体化合同
- 二零二五年度合作社农产品品牌建设合作协议范本
- 二零二五版农村宅基地使用权转让合同样本
- 2025版典当公司个人消费贷款合同样本
- 2025版建筑门窗安装工程创新技术与项目管理合同
- 二零二五年度电商物流管理专员劳动合同规范书
- 2025版电动滑板车二手买卖与品牌授权及售后服务合同
- 2025年度文化产业投资合同协议书
- 山东省成武县2026届中考适应性考试语文试题含解析
- 2026届天津市和平区二十一中中考二模语文试题含解析
- GA/T 852.1-2009娱乐服务场所治安管理信息规范第1部分:娱乐服务场所分类代码
- 建设项目办理用地预审与选址意见书技术方案
- 历年托福词汇题汇总440题有答案
- 湘少版英语六年级下册全册教案
- 10kV中压开关柜知识培训课件
- 山东省临沂市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 泰丰集团解郁丸-更安全更全面的抗抑郁纯中药制剂课件
- 急性冠脉综合征抗栓治疗合并出血多学科专家共识
- GB∕T 20984-2022 信息安全技术 信息安全风险评估方法
- 汽车吊施工方案(完整常用版)
- 检测中心运营方案
评论
0/150
提交评论