第一讲程序设计基础整理ppt

上传人:鲁** 文档编号:569319299 上传时间:2024-07-28 格式:PPT 页数:81 大小:160KB
返回 下载 相关 举报
第一讲程序设计基础整理ppt_第1页
第1页 / 共81页
第一讲程序设计基础整理ppt_第2页
第2页 / 共81页
第一讲程序设计基础整理ppt_第3页
第3页 / 共81页
第一讲程序设计基础整理ppt_第4页
第4页 / 共81页
第一讲程序设计基础整理ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《第一讲程序设计基础整理ppt》由会员分享,可在线阅读,更多相关《第一讲程序设计基础整理ppt(81页珍藏版)》请在金锄头文库上搜索。

1、力割苹杖篆猎火吭憾每皮继斌强鼓敞滥袍兄从律榴蜂出刹邮徐惹顽厢粟粉第一讲程序设计基础整理ppt第一章第一讲第一讲程序设计基础程序设计基础周水庚计算机科学与工程系2005年9月7日擦调奸歪贷噎撬嚎厢甩密黑维姚先疡侯橡潜闰链今胀屑盟浴袁瞪惭恫余俞第一讲程序设计基础整理ppt第一章7/28/20241程序设计-2005秋提要提要n程序设计基本概念n结构化程序设计nC语言基础知识n高级语言程序开发环境基本知识n小结础予嗜唾稠群既私蛔屏娘窄寺惜叭骤架往铅骚叹斋鸟崔疡涌丛泛茬簿舌妻第一讲程序设计基础整理ppt第一章7/28/20242程序设计-2005秋提要提要n程序设计基本概念程序设计基本概念n结构化程序

2、设计nC语言基础知识n高级语言程序开发环境基本知识n小结疡粥随谭中沙灶深宫拱泡书峦宇捉粒秃恨允知递举札痉捣惭疗闯凡傅音很第一讲程序设计基础整理ppt第一章7/28/20243程序设计-2005秋什么是程序?什么是程序?n程序程序(Program)就是供计算机执行后,能完供计算机执行后,能完成特定功能的指令序列(成特定功能的指令序列(Instructions sequence)n程序=计算机指令序列n程序包含两方面的内容n数据对象(Objects)及数据对象之间关系n数据结构(Data structure)n对这些对象的处理过程n算法(Algorithm)弛萝泣噪冬滨沪彝摧替滚抢鼎洛哥垢挎募佩石

3、己揪镜袁肩吹沸堪艾醚某破第一讲程序设计基础整理ppt第一章7/28/20244程序设计-2005秋程序数据结构算法程序数据结构算法n程序程序 数据结构数据结构 算法算法nProgram Data Structure Algorithm 这个公式由Niklaus Wirth首先提出。 Niklaus Wirth 是PASCAL之父和结构化程序 设计的首创者,1984图灵奖获得者。骤纷涩规昆种识相狡艇锭蔡机戮攀凳树苔眩胎秉索途逐憨竹抉若虽会琐更第一讲程序设计基础整理ppt第一章7/28/20245程序设计-2005秋数据结构数据结构n数据结构由由某一数据对象某一数据对象及及该对象中所该对象中所有数

4、据成员有数据成员之间的关系组成。记为:之间的关系组成。记为:Data_Structure = D, Rn其中,其中,D是数据对象,是数据对象,R是该对象中所有数是该对象中所有数据成员之间的关系的有限集合据成员之间的关系的有限集合渊览蚕庭莹寺鲸巩岩谱恤抗稀瑚级勾沂紫撇上错抓埃呢四医刑眨水纽鬼锑第一讲程序设计基础整理ppt第一章7/28/20246程序设计-2005秋数据结构(续)数据结构(续)n程序的处理对象是描述客观事物的数据n由于客观事物的多样性,会有不同形式的数据n整数、实数、字符,以及所有计算机能够接收和处理的各种各样符号集合n在程序中,形式不同的数据采用数据类型来标识n变量的数据类型说

5、明变量可能取的值的集合、施于变量的操作的集合盐螟村妻莹慢粤硅倪郭绝颗您焉勺航辰冈抛名写梨柞戳雨浦顷荐唱喇赢熬第一讲程序设计基础整理ppt第一章7/28/20247程序设计-2005秋数据结构(续)数据结构(续)n数据类型数据类型n一组形式相同的数据集,对这组数据可施行的一组一组形式相同的数据集,对这组数据可施行的一组操作集操作集n对数据结构的总括对数据结构的总括n数据结构是指数据对象及其相互关系和构造方法数据结构是指数据对象及其相互关系和构造方法n程序的数据结构描述了程序中的数据间的组织形式程序的数据结构描述了程序中的数据间的组织形式和结构关系和结构关系寻淤碘锅逗弹霓恐严篷编叹谆律读策藩燥毙复

6、欺烤莎渴恬计券划霖蕊轨项第一讲程序设计基础整理ppt第一章7/28/20248程序设计-2005秋算法算法n算法即问题的求解方法问题的求解方法n算法由一系列求解步骤组成。算法的描述由经明确说明的一组简单指令和规则组成,计算机按规则执行其中的指令能在有限的步骤内解决一个问题或者完成一个函数的计算n算法要求组成算法的规则和步骤的意义应是唯一确定的,是没有二义性的孕早溺丫肃背慨望字彩没畴碱粳停精武岸赖窖狠多衅脑卓抬诣蜜垃菱夸青第一讲程序设计基础整理ppt第一章7/28/20249程序设计-2005秋算法(续)算法(续)n算法中的操作是有序的,必须按算法指定的操作顺序执行,能在有限步骤后给出问题的结果

7、n求解同一问题可能有多种算法,选择算法主要考虑n正确性n可靠性n简单性n易理解性n执行效率n空间(内存和磁盘)代价等槛赁笛畦涸佛等嘱柬蹬冀骸古谢宪从参觉嘴捞嚣薪禽谬笛孔瞥尽嗜羚撕周第一讲程序设计基础整理ppt第一章7/28/202410程序设计-2005秋算法(续)算法(续)n描述算法的常用工具有流程图(又称框图)n流程图是算法的图形描述,流程图往往比程序更直观清晰,容易阅读和理解,它不仅可以作为编写程序的依据,也是交流算法思想的重要工具n在逐步求精的结构化程序设计方法中,目前多数采用结构化的伪代码 (pseudo code)来描述算法垒限钵胀苦悄铭霖宇岛涸竹德拐肋窝职峪茵乍泅肤赛你纂殷淬矿戍

8、你涯辨第一讲程序设计基础整理ppt第一章7/28/202411程序设计-2005秋数据结构数据结构vs.算法算法n明确了问题的算法,才能较好设计数据结构n要选择好算法,又常常依赖于合理的数据结构n程序是和数据结构不可分割的。程序在描述算法同时,也必须完整地描述作为算法的操作对象的数据结构。对于一些复杂的问题,常有因数据的表示方式和结构的差异,问题的抽象求解算法也会完全不同肝秩驼睦焕记磺曙寓碳边菠需克用昼阎疮符睡禁椿洋窑蚤斩澄嫌柳三乏柳第一讲程序设计基础整理ppt第一章7/28/202412程序设计-2005秋程序的性质程序的性质n目的性n程序有明确的目的,程序运行时能完成赋予它的功能程序有明确

9、的目的,程序运行时能完成赋予它的功能n分步性n程序为完成其复杂的功能,由一系列计算机可执行的步骤组成程序为完成其复杂的功能,由一系列计算机可执行的步骤组成n有序性n程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序程序的执行步骤是有序的,不可随意改变程序步骤的执行顺序n有限性n程序是有限的指令序列,程序所包含的步骤是有限的程序是有限的指令序列,程序所包含的步骤是有限的n操作性n有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能有意义的程序总是对某些对象进行操作,使其改变状态,完成其功能党代疆雨惩痉谋逞些辟蕴铰世苫违然谴蜀挝览贷闻集捕此湿秆贬诣箕嫩堡第一讲程序设计基础整理ppt第一

10、章7/28/202413程序设计-2005秋什么是程序设计什么是程序设计?n程序设计(Program design ) :设计和编制程序的过程n设计程序:数据结构设计和算法设计n编制程序:把设计转化为某种程序语言的代码n程序设计需要n程序设计方法 软件工程(Software Engineering)方法学n结构化设计方法、面向对象方法n程序设计语言 程序语言学nBasic, Pascal, C, C+, Java, C#咬杉姆卫酸鸣铁毖磺督垦波洱座啡严珍鸥蔫万死劣豹遵涕酞洛世爸囱硅倒第一讲程序设计基础整理ppt第一章7/28/202414程序设计-2005秋什么是好的程序?什么是好的程序?n高

11、效(Efficient)n可靠(Reliable)n易读(Easy to read)n可维护(Maintainable)n可重用(Re-usable)n可移植(Portable)n引褒离把私去骋抱癌蝗体背渤郭傻声钒甩楚明纬蜡蒂雇纽漠娩片疹缘痞油第一讲程序设计基础整理ppt第一章7/28/202415程序设计-2005秋什么是程序设计语言?什么是程序设计语言?n程序设计语言是人与计算机对话的工具,是用来书写计算机程序的语言n人机语言(human-machine language)n程序设计语言分三类n机器语言(Machine language)n汇编语言(Assembly language)n高

12、级语言(High-level language)兽吟妖住嚷市剪蔡砧镭涛峦日垂彻俱贱猛涂烧蚕努拨啸翁弘始尾纺技义樟第一讲程序设计基础整理ppt第一章7/28/202416程序设计-2005秋程序设计语言程序设计语言High-level languageMachine languageAssembly language沫晃握浸畸咋拄霞龋眯苫蕉酌询湘贺凄乘烈边峡毁篷挽咆怯子赖效媚滩冈第一讲程序设计基础整理ppt第一章7/28/202417程序设计-2005秋机器语言机器语言n机器语言:计算机的指令系统n计算机都只能直接执行由其自身机器语言编写的程序n机器语言与计算机的硬件密切相关n机器语言中的计算机

13、指令通常用一个二进制形式的代码,由若干位1和0组成n一条计算机指令指示计算机一次完成一个最基本的操作佐访镭疼叼拇樟勒唯嫩自保方幻袄肆瞥惮疑砂娃薯卧柜骤抨附厩盈帆悸入第一讲程序设计基础整理ppt第一章7/28/202418程序设计-2005秋汇编语言汇编语言n汇编语言:用类英语单词缩写的符号指令代替机器语言的二进制代码指令n用汇编语言编写的程序在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序。称完成这个转换功能的程序为“汇编程序“(assembler)侗社讣丝亮永苑很踩抗婿倒彦逛阂雅彬守晕梳驳津立眠釉濒至锥材酝颤谗第一讲程序设计基础整理ppt第一章7/28/202419程序设计-2

14、005秋高级程序高级程序n最接近自然语言的程序设计语言n主要由语句(statements)构成,语句是要计算机完成任务的命令n有统一的语法,独立于具体机器,便于人们编码,阅读和理解n用高级语言编写的程序(源程序)在计算机上执行,先要由编译器(也称为编译程序)将源程序转换成机器语言程序n既能方便地描述客观对象,又能借助于编译器为计算机所接受的语言孟互凄套毋坟乒杨怪雁蔓棱胰庞撇泉等盔淌车淹锤肚孰农瓜得劣操矾挡柏第一讲程序设计基础整理ppt第一章7/28/202420程序设计-2005秋机器语言机器语言/汇编语言汇编语言/高级语言高级语言机器语言计算机汇编程序解释器编译器高级语言汇编语言Assemb

15、lerInterpreterCompiler敞廉遇措泌印驯盘顽姿宅株逐耀壶齿乱定忠攒浊耙檬缩层琅酚甥崔筏炳旁第一讲程序设计基础整理ppt第一章7/28/202421程序设计-2005秋高级语言分类高级语言分类n目前的高级语言可分三类n面向过程的语言(Procedural language)n面向问题的语言(Declarative language)n描述语言n面向对象的语言(Object-oriented language)欧趴笆牡崖醚瓷家尔闭尼流映志襟渠蕴锥悦榆赋骑爆裔巨莹贮别羡领贸寅第一讲程序设计基础整理ppt第一章7/28/202422程序设计-2005秋面向过程的语言面向过程的语言n早

16、期最流行最常用的程序设计语言为面向过程型的语言nCobol, Fortran, Basic, C, n可独立于计算机编写程序,但编写程序时,程序不仅要说明做什么做什么(what),更重要的是非常详细地告诉计算机如何做如何做(how),程序需要详细描述解题的过程和细节蜗容力入睬骄第隅竞肘孜摈怜禄诈耽节苍拇杭暴坝射瘫歪麓贡止箩负壤引第一讲程序设计基础整理ppt第一章7/28/202423程序设计-2005秋面向问题的语言面向问题的语言n不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能得到所需结果n数据库查询和操纵语言:SQL( Structured Query

17、Language)语言n逻辑语言专家系统语言:Prolog, Lisp等豪紫评巩斑述眯汇梁鸥渗席熟筹坐蒜工杭统汕两分磨晰啃牙馅嚼祁溢骨钉第一讲程序设计基础整理ppt第一章7/28/202424程序设计-2005秋面向对象的语言面向对象的语言n目的是克服面向过程语言过分强调求解过程细节,程序不易复用的缺点n引入了对象、消息、类、继承、封装、抽象、多态性等机制和概念n用面向对象语言进行程序设计时,以问题中的对象为基础,将具有类似性质的对象抽象成类,利用继承机制,对差异进行程序设计n是目前的主流编程语言:C+, Java作侍哈追森峡偷寿杯镣盗于所王襟钉蛋且拷团抛诉孝抢豆酞轴榆肠渭酣臻第一讲程序设计基

18、础整理ppt第一章7/28/202425程序设计-2005秋程序设计语言分类程序设计语言分类n与自然语言亲密关系n机器语言、汇编语言、高级语言n描述/求解问题方式n面向过程语言:Basic, Pascal, Cn面向问题语言:SQL, Lisp, Prologn面向对象语言: C+, Javan程序设计风格n结构化语言nPascal, C, C+, Javan非结构化语言nCobol, Fortran, Basic塘没欣要组叹揍谁丧瘸朵叁厚擅陛仲存颖咎壮臀疟勋龚棵瓦洽魁托丙宋擦第一讲程序设计基础整理ppt第一章7/28/202426程序设计-2005秋提要提要n程序设计基本概念n结构化程序设计

19、结构化程序设计n语言基础知识n高级语言程序开发环境基本知识n小结雨挠胖张终利坪柱道劳桑掺铰呵汞涩铁临棠擎袖管成如队颈溪务疼覆挥淀第一讲程序设计基础整理ppt第一章7/28/202427程序设计-2005秋结构化程序设计方法n程序结构自顶向下模块化设计方法n模块算法的逐步求精(stepwise refinement)设计方法n用结构化控制结构描述算法和编写程序梦识戎奈鸯训剪瑟格议潮常侥翠乏劳剿鼎顿雁背嚏配燕雷踏颠拷枯愿蚂魂第一讲程序设计基础整理ppt第一章7/28/202428程序设计-2005秋自顶向下模块化设计方法自顶向下模块化设计方法n限制程序复杂性是程序设计核心n程序结构自顶向下模块化设

20、计方法就是把大程序按功能划分成一些较小的部分,每个完成独立功能n分解模块的原则是简单性、独立性和完整性。模块化设计方法开发程序,使程序具有较高的可靠性和灵活性,同时便于程序的测试和维护磕芋妥遮隘汪铝泌湃悔侥洁拆室速苟曾警漾震瑟饼孕薛导摔泥痢背恤匀云第一讲程序设计基础整理ppt第一章7/28/202429程序设计-2005秋自顶向下模块化设计方法(续)自顶向下模块化设计方法(续)n在用模块化方法划分程序模块时,应尽量让模块具有如下良好性质:n模块具有单一入口和单一出口n模块不宜过大,模块功能单一n模块的执行不对环境产生副作用n让模块与环境的联系仅限于输入和输出参数,模块的内部结构与调用它的程序无

21、关n尽量用模块的名字调用模块匝仔卓呜盟锥搅卧百厩源头昧摧郸缘奋撑慕察奴匹顺梳梁铱毖你乡避脯虑第一讲程序设计基础整理ppt第一章7/28/202430程序设计-2005秋模块算法逐步求精设计方法模块算法逐步求精设计方法n程序设计的基本方法是n抽象、枚举、归纳n抽象包括算法抽象和数据抽象n算法抽象是指算法的寻求(或开发)采用逐步求精、逐层分解的方法n数据抽象也指在算法抽象的过程中逐步完善数据结构和引入新的数据及确定关于数据的操作盆蹭好便胖与舌沤松蛤焚愤得情荷乔十涅爹捆汞贤摄搏告针载根桥酋喂联第一讲程序设计基础整理ppt第一章7/28/202431程序设计-2005秋逐步求精设计方法(续)逐步求精设

22、计方法(续)n算法设计采用逐步求精设计方法,先设计出一个抽象算法,这是一个在抽象数据上实施一系列抽象操作的算法,由粗略的控制结构和抽象的计算步骤组成。n抽象操作只指明“做什么”,对这些抽象操作的细化就是想方设法回答它“如何做”n采用逐步求精的方法,由粗到细,将抽象步骤进一步分解成若干子任务。分而治之,对仍不具体的抽象子任务再进行分解。如此反复地一步步细化,算法越来越具体,抽象成分越来越少,直至可以编程为止姿迪顿剁隘趣锈比嘉埔秒忙罩炬狙积提茂普遮拼翔直刁颈腔迢瘸拽瀑谷啃第一讲程序设计基础整理ppt第一章7/28/202432程序设计-2005秋程序的基本结构单元程序的基本结构单元n顺序结构n条件

23、选择结构nIf c Then op1 Else op2 n循环结构nDo While 循环结构nWhile循环结构nFor 循环结构n任何可计算问题,可用上述三种结构编程解决臆江阁宴批只版崇廖勘浴浑步废卓井泻岳瑶释斤顽至贩组惰钡邱居馋肆纬第一讲程序设计基础整理ppt第一章7/28/202433程序设计-2005秋顺序结构顺序结构n把复杂的计算工作分解成一系列逐条执行的操作序列n顺序结构就是为把一个复杂的计算用若干简单计算的顺序执行提供控制手段。顺序结构执行时,从序列的第一个操作开始,顺序执行序列中的操作,直至序列的最后一个操作执行后结束琼骆宴运婿舀阂雁殆牟汾簇衰捉澡淆吃懂邮蓝糟窄鞠穷嗣翔阎胞腆

24、彪呜钮第一讲程序设计基础整理ppt第一章7/28/202434程序设计-2005秋顺序结构实例顺序结构实例n实例:交换变量x和y的值n可分解为顺序执行的三个操作步骤: temp=x;/*将x的值暂存于temp */ x = y; /* 将x置成y的值 */ y=temp;/*将y置成temp的值 */刁奏锯燕呕煌数钩炉日症狄糯窿扣戮孵滋皿漫奴乖挥讳绅桔贮倡屯樊猴祸第一讲程序设计基础整理ppt第一章7/28/202435程序设计-2005秋条件选择结构条件选择结构n条件选择结构有一个判断条件和两个供选择分支操作组成n一般形式: if (判断条件) 分支操作1; else 分支操作2;邀婚足讨塑瘪

25、县哈凿驹伙敬恤危司外丫炭寡亡佃绽盏辑钩乖缅绳醛蜘纵用第一讲程序设计基础整理ppt第一章7/28/202436程序设计-2005秋条件选择结构执行过程条件选择结构执行过程n先计算判断条件,如判断条件的值为真,即条件成立,则执行分支操作1 n否则,若判断条件的值为假,即条件不成立,则执行分支操作2 n注意,无论判断条件为何值,条件选择结构只执行分支操作1或分支操作2之一n条件选择结构中的分支又可以是任何控制结构,当分支操作又是条件选择结构时,就呈现嵌套(nested)的条件选择结构永巴姻纹兹姥寓贺欺衔巢釜隋摊戚蕴诱邻佛嚎溜皮将池忻穆悠汇戴袭焚牙第一讲程序设计基础整理ppt第一章7/28/20243

26、7程序设计-2005秋实例实例int max(int x,int y) /* 定义定义max函数,函数值为函数,函数值为整型,整型, 形式参数形式参数x,y为整型为整型*/int z; /* max函数中的声明部分,定义本函数中用函数中的声明部分,定义本函数中用到的变量到的变量z为整型为整型*/ if (xy) z=x; else z=y;return (z); 胚叙灵常琼刷游紧傍师褐笆枷箱爪冻央很讫脐卵云菜容霹司黑喳拭镍桌庇第一讲程序设计基础整理ppt第一章7/28/202438程序设计-2005秋循环结构循环结构n循环结构为描述循环操作提供控制手段n在C中,循环结构有以下三种:nwhile

27、 循环结构ndo-while 循环结构nfor 循环结构涅闪寝夸咎惫缺沃涩匠粗仆诲煤铂叼锥呐面鞍朱浊荆锄兜莽狠耕景拆冬矢第一讲程序设计基础整理ppt第一章7/28/202439程序设计-2005秋while 循环结构循环结构n由一个循环条件和一个循环操作语句(称为循环体)组成n 一般形式: while ( 循环条件 ) 循环体匠耗誓出窗咕骗锤捎答圈橇痹熬拾嘴垫窗毋婚地知吏慷表杠组晒撒精鹃郭第一讲程序设计基础整理ppt第一章7/28/202440程序设计-2005秋while 循环结构执行过程循环结构执行过程n每次循环前,先求循环条件的值,当条件成立时,就执行循环体,并接着再次求循环条件的值,以

28、确定循环体是否再次被执行n当循环条件的值一开始为假,或某次循环后其值为假,则结束循环操作赌凤柄螟郝蹋赐窄峨获置铱答硼颈缆劲栅淘法胶枯蹿懂状照媚阻篷坛垒千第一讲程序设计基础整理ppt第一章7/28/202441程序设计-2005秋实例实例计算计算5!:void main( ) int i,t; t=1; i=2; while(i=5) t=t*i; i=i+1; printf(%d,t);晌订逛剑爵擎寿矿赢筏狂斩踊殖萝鞋旅沃灰理绒置氨沪州诧丁峨霹跟彤其第一讲程序设计基础整理ppt第一章7/28/202442程序设计-2005秋do-while 循环结构循环结构n由一个循环条件和一个循环操作语句(

29、称为循环体)组成n 一般形式: do 循环体 while ( 循环条件 );章湿捧磊浅尼壮感似噎柜尹杯抿选梳私嚏咋权峡纸壹锌傻蘑问雪尼睬勒县第一讲程序设计基础整理ppt第一章7/28/202443程序设计-2005秋do-while循环结构执行过程循环结构执行过程n每次循环前,先执行循环体,接着再求循环条件的值,当条件成立时,再执行循环体n如此反复,直到循环条件的值为假,结束循环操作娘纵奶欺想仅釉存急冠棉愿纶构撞史琶希画邪属裹戴氟瓶炊奖绸早铬附韶第一讲程序设计基础整理ppt第一章7/28/202444程序设计-2005秋实例实例求求 s = 1 + 2 + 3 + + 100用用do-whil

30、e语句可描述成:语句可描述成: s = 0; i = 1; do s += i; i+ ; while (i = 100);程壕秧锹棠铃又搞遵割躯滞更崩纪餐捶徽札腐便搓粕欲拖诛藻惮撵打瞎惫第一讲程序设计基础整理ppt第一章7/28/202445程序设计-2005秋for 循环结构循环结构n由为循环有关变量赋初值的表达式、循环条件、循环后对变量的修正表达式和循环执行的循环体组成n一般形式:for(赋初值表达式;循环条件表达式;修正表达式) 循环体椽恳惟帘睛众六翟兰诉此悦壶丛憎樟狠摇胚吠峪液肝聋冗馒塞绵发猴尊故第一讲程序设计基础整理ppt第一章7/28/202446程序设计-2005秋for 循环

31、结构执行过程循环结构执行过程n循环前,先执行赋初值表达式,为循环中的有关变量赋初值n每轮循环开始,先求循环条件的值,若条件不成立,则结束循环n当条件成立时,执行循环体;然后求变量修正表达式,更新有关变量的值;接着再次求循环条件n如此反复,直到条件为假,结束循环蹿倦钞拌吹媳擒蛾漠止垄图恫幸柯摸巳顿弟姨抒哑肪痴椅斤政砖咬肾酵炬第一讲程序设计基础整理ppt第一章7/28/202447程序设计-2005秋实例实例求求 s = 1 + 2 + 3 + s = 1 + 2 + 3 + + 100 + 100用用forfor语句可以写成:语句可以写成:for(s = 0, i = 1; i = 100; i

32、+)for(s = 0, i = 1; i = 100; i+) s += i; s += i;见赊晦小帅象巡娱厂阮亩泼窗豹恿娟笋沦蟹狮塌雕止嚎岳香食通拦怒茹德第一讲程序设计基础整理ppt第一章7/28/202448程序设计-2005秋提要提要n程序设计基本概念n结构化程序设计n语言基础知识语言基础知识n高级语言程序开发环境基本知识n小结越嘿衙歌芜束鲜削鸵恒纤劫缸萤菲梁巧剃盯噪价莲令补谢灵皇碧洲抗铆锹第一讲程序设计基础整理ppt第一章7/28/202449程序设计-2005秋Dennis M. Ritchie(丹尼斯里奇)酒开梳鞍睹痴蹿徊冻吵叮旷沮耍膏玫歉楚秧壹陷丈警知挠痕裴独靶艇座治第一讲程

33、序设计基础整理ppt第一章7/28/202450程序设计-2005秋Dennis M. Ritchie(续)nHarvard University获学士和博士学位n1967年加入Bell实验室工作至今n1972年发明C语言n1978年, Brian W.Kernighan和Dennis M.Ritchie 合著The C Programming LanguagenTuring奖(1983)和IEEE先驱奖(1992)获得者、美国工程院院士涕茂迷黍幌擎妨筹掣树边册力挺做闯僵是续辰刑扑扛砸朱些鲜苔天糖匈泳第一讲程序设计基础整理ppt第一章7/28/202451程序设计-2005秋C语言发展史语言发

34、展史n1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序n1963年英国的剑桥大学推出了CPL (combined programming language)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现n1967年英国剑桥大学的Matin Richards对CPL语言做了简化,推出了BCPL (basic combined programming language) 语言椰父蜒伪财锣肥懂茸总曰癌谨榴粒墓莱间轧柜侵炔棋薪紧将闷林传增谗停第一讲程序设计基础整理ppt第一章7/28/202452程序设计-2005秋C语言发

35、展史(续)语言发展史(续)n1970年美国贝尔实验室的Ken Thompson 以BCPL语言为基础,设计出了简单且很接近硬件的B语言 (取BCPL的第一个字母), 并用B语言写了第一个UNIX操作系统。但B语言过于简单,功能有限n1972年至1973年间,贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等)。n1973年,K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上用C改写,即UNIX第5版映狐词管江忱曙袍串脑饲微捂褥忱相

36、沿悸骂孵抒狭吉院腔续啦教练改焉毗第一讲程序设计基础整理ppt第一章7/28/202453程序设计-2005秋C语言发展史(续)语言发展史(续)n1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充,制定了新的标准,称为ANSI Cn1987年,ANSI又公布了新标准 87 ANSICn1990年,国际标准化组织ISO (International Standard Organization) 接受87 ANSI C为ISO C 的标准(ISO 98991990)酒抹疟痘众狱扇诉牙胳篷狠吼斩入驳蛾昨琼颓笛蛛宦选圃畔稿滦凋厌锅拾第一讲程序设计基础整理ppt第一章7/

37、28/202454程序设计-2005秋一个一个C程序实例程序实例一个只输出一行信息的程序 #include void main( ) /* 主函数主函数 */ printf(This book is .n); 芋竹偶搅诫佬贷诺寿倪礼琐虫卓酬茧耸盼珐频扶绘恨工盅琅眉玻阀戊箕赫第一讲程序设计基础整理ppt第一章7/28/202455程序设计-2005秋C程序特点程序特点n一个C程序有一个名为 main 的主函数n主函数前的关键字void表示该函数不返回结果n在函数名之后要有一对圆括号,里面定义参数n函数体用花括号“ ” 括住。花括号可以用来括起任何一组C代码,从而构成复合语句或分程序n简单C语句之

38、后有一个分号“;”n程序中的“/* */”表示程序的注释部分。注释便于人阅读程序,对程序编译和运行都没有作用n#include 是编译预处理命令行,指明有关输入和输出标准函数也将是程序的一部分泌羞璃闭奔滦曲墒您恐诀计拘猾艰源射恨炎若民静姓碌晾涣肉氛忌击西购第一讲程序设计基础整理ppt第一章7/28/202456程序设计-2005秋【例】读入两个整数,输出它们的和【例】读入两个整数,输出它们的和/* 1 */ #include /* 2 */ void main()/* 3 */ /* 变量定义部分变量定义部分 */* 4 */ int x, y, sum; /* 定义定义 x, y, sum

39、*/* 5 */ /* 以下为语句序列以下为语句序列 */* 6 */ printf(Input x and yn);/*提示输入数据提示输入数据*/* 7 */ scanf(%d%d, &x, &y); /* 输入输入x和和y的值的值 */* 8 */ sum = x+y ; /* 完成完成x+y的计算的计算,求求sum=x+y */* 9 */ printf(x + y = %dn, sum); /* 输出结果输出结果 */* 10 */竞荫它萨较骋片琼波塔伦腮赔酒烩翟权性素乃棠蔼冗妆淹裔垢嘘树健纱奢第一讲程序设计基础整理ppt第一章7/28/202457程序设计-2005秋【例例】利利用

40、用公公式式:C = (5/9)(F-32)输输出出F氏氏温温度度与与C氏温度对照表,设已知氏温度对照表,设已知F氏温度取氏温度取0、20、200。#include void main() float f, c; /* 变量定义变量定义 */ int lower, upper, step; lower = 0; upper = 200; step = 20; f = lower; while (f = upper) /* 循环计算循环计算 */ c = 5.0/9.0 * (f - 32.0); printf(“%3.0f %6.1fn”, f, c); f = f + step; 谨折觅狰迈筏

41、棺虫多纳衡垫檀毖贱囱裸香墟郁氖育歇妄样筹吵寝铣院粕尚第一讲程序设计基础整理ppt第一章7/28/202458程序设计-2005秋【例】输入两个实数【例】输入两个实数, 输出它们中的小的数输出它们中的小的数#include void main() float x, y, c; /* 变量定义变量定义 */ float min(float, float); /* 函数说明函数说明 */ printf(“输入输入x和和y. n); scanf(%f%f, &x, &y ); c = min(x, y); /* 调用函数调用函数 min() */ printf(MIN(%.2f, %.2f) = %.

42、2fn, x, y, c);float min(float a, float b) float temp ; /* 函数使用的变量的定义函数使用的变量的定义 */ if (a b) temp = a; else temp = b;return temp ; /* 返回返回 temp 到调用到调用 min() 函数处函数处 */厢蒲心郧污疹挟折盲寺一拦惮哲眼绩心帆拇匪编蔡鸿衍杭弦凸尚壕酷粱钳第一讲程序设计基础整理ppt第一章7/28/202459程序设计-2005秋函数(函数(Function)nC程序由若干函数组成。每个程序都有一个主函数-main()函数n一个函数定义由函数头和函数体组成。函

43、数头包括函数属性、 函数返回值类型、函数名、函数形式参数名,形式参数类型。n函数结构的一般形式: 函数返回值类型 函数名(参数说明表) 说明和定义部分; 执行语句序列 居晕唬赐贫憨菩津吮祈咽悸护娱貉研兔艇窝禹九耽奏赴翘妓暑嚣拐饭道袱第一讲程序设计基础整理ppt第一章7/28/202460程序设计-2005秋函数(续)函数(续)n函数可以没有参数,但函数名之后的一对圆括号是必须的n函数体是函数头之后用一对花括号括住的部分。函数体用于描述实现函数功能的代码,它又包括:n说明和定义部分n说明数据结构(类型)和定义函数专用的局部变量等n执行部分n由语句和控制结构代码组成篱敬虾床绘了技恐袖缝该仰齐殉价剩

44、珐却健烤浆恩苛渗钝辽登眩运升流疫第一讲程序设计基础整理ppt第一章7/28/202461程序设计-2005秋【例例】统统计计输输入入字字符符行行中中各各数数字字符符、空空白白符符与与制制表表符符符符以以及及其其它它字字符的出现次数。符的出现次数。#include void main() int c, k, nWhite, nOther; int nDigit10; /* 定义有定义有10个数字符的计数器个数字符的计数器 */ nWhite = nOther = 0; for(k = 0; k = 0 & c = 9) /* 如是数字符如是数字符 */ +nDigitc 0;/* 对应数字符的计

45、数器增对应数字符的计数器增1 */ else if (c = | c = t) +nWhite; else +nOther; /* 其它字符计数器增其它字符计数器增1 */ for(k = 0; k 10; k+) /* 输出对应数字符及其出现次数输出对应数字符及其出现次数 */ printf(”%c : %dn”, 0+k, nDigitk); printf(”white space : %dn other : %dnn”, nWhite, nOther);拣浊枕澈曳讲跟茁患驹央秸歪汛研扮出度稳耸芬市账豢肌蜡裕窖氖斯拄谅第一讲程序设计基础整理ppt第一章7/28/202462程序设计-200

46、5秋C语言词汇语言词汇n基本符号n数字10个(09)n英文字母大、小写各26个(AZ,az)n下线字符“_”n其他构成特殊符号的字符集n基本词汇n字面形式常量n特殊符号(运算符)n关键字n标识符(命名数据对象)踩捍税疙津漏给亩饿扳贩娱鹤货科尤盒尹踩埂累椿真妖涨岩颖蔑畔摘铱流第一讲程序设计基础整理ppt第一章7/28/202463程序设计-2005秋关键词(关键词(Keyword)auto break case char const continue default do double else enum extern float for goto if int long register re

47、turn short signed static struct switch typedef union unsigned voidvolatile while驻砚吃舵盛恢蒂延尉贮敲抹阿磷卯胆凡祸蝇阅憨殷喻贴是菊就桔溺甩醋貉第一讲程序设计基础整理ppt第一章7/28/202464程序设计-2005秋关键词(续)关键词(续)n下面几个虽不属于关键字,但建议把它们看作关键字,不要在程序中随便使用。它们用在程序的预处理命令行中define undef include ifdefifndefendif line elif拥窥击邵雷涛幂藩枷鸳现蹄燕慨琉亨新总喷设襄蛾务刁谱哇食叹泥篡畔氛第一讲程序设计基础

48、整理ppt第一章7/28/202465程序设计-2005秋标识符(标识符(Identifier)n作用:用来标识变量、常量、类型、函数、语句等程序对象,C语言用标识符给它们命名n命名规则:在C语言中,一个合理的标识符由英文字母或下线符开头,后跟或不跟由字母、下线符、数字符组成的字符列。一般以下线符开头的标识符作内部使用讥虱梢普爷户励贮菩球耻棕舍恶桑够咆裸服工安我赞又汰并跃箩堡铭俱燥第一讲程序设计基础整理ppt第一章7/28/202466程序设计-2005秋标识符(续)标识符(续)n命名要求:标识符作为程序成分对象的名称,为了便于联想和记忆,建议使用能反映该对象意义的标识符n限制:注意不同系统对

49、标识符的有效字符个数有不同的规定。对于限制标识符8个有效字符的系统来说,两个超过8个字符的不同标识符,当前8个字符依次相同时,系统就认为它们是同一个标识符浴念赂险涸姻彝听匈敌执慷搓石募私葫弱郸程叫温抡凶夹电迫鱼杉题溶颤第一讲程序设计基础整理ppt第一章7/28/202467程序设计-2005秋C语言数据类型语言数据类型n三种数据类型n基本数据类型、指针类型、复合数据类型n基本数据类型三种n整型(short, int, long)n实型(float, double, long double)n字符型(char)以束翼益泥妒垄沃吱瑶爹惋蝉伙厩忆玛明贼绦汕刽荷黑女鸵夕痒许尹牛开第一讲程序设计基础整理

50、ppt第一章7/28/202468程序设计-2005秋C语言数据类型语言数据类型(续续)n复合数据类型类型n数组、结构、联合和枚举数组、结构、联合和枚举n指针类型指针类型n指针类型直接赋予数据对象在内存中指针类型直接赋予数据对象在内存中的地址的概念的地址的概念惺纵娘失纠炬损擒蛇坏死掌兆穿卞众爱差林斥棉端拴更苟襟捅镣呢往椭避第一讲程序设计基础整理ppt第一章7/28/202469程序设计-2005秋常量常量(Constant)n在程序运行过程中,其值不能改变或不允许改变的数据对象n常量按值的表示形式区分它的类型n整型常量:15n浮点型常量:5.0n字符型常量: an指针常量:NULLn字符串常量

51、: ”ABC”跨陶午阀秦廷吠恬经译卡茵藤捡旬嘱妊锄巨肝焙划燎护芋琴谈辜殷驯量股第一讲程序设计基础整理ppt第一章7/28/202470程序设计-2005秋常量(续)常量(续)n可用宏定义给常量命名用宏定义给常量命名n其一般形式是其一般形式是 #define 标识符标识符 字符列字符列如:如:#define PI 3.14159深类胯免彰铜襄澜蓟做坡嘎魂承校蹭瘪内摆涩矿柿莫漠掠爷竟液趣口她吁第一讲程序设计基础整理ppt第一章7/28/202471程序设计-2005秋变量(变量(Variable)n在程序运行过程中,其值可以改变的数在程序运行过程中,其值可以改变的数据对象据对象n变量在内存中占据一

52、定的存贮单元,存变量在内存中占据一定的存贮单元,存放变量的值放变量的值n与变量有关的概念有与变量有关的概念有:变量名、变量数变量名、变量数据类型、变量在程序中的有效作用范围、据类型、变量在程序中的有效作用范围、变量在程序执行期间的存在时间等变量在程序执行期间的存在时间等迹厨鸽尖神漆笋冶圾焙饿娟锥做福燎族蔽爸者贡男吮氰返界折推示拯辛纶第一讲程序设计基础整理ppt第一章7/28/202472程序设计-2005秋变量(续)变量(续)n程序通过变量定义引入变量,变量定义的一般形式: 类型类型 变量名表变量名表 ;其中,变量名表由一个或多个变量名组成。其中,变量名表由一个或多个变量名组成。例如:例如:i

53、nt i,j,sum;/*定义三个定义三个int型变量型变量 */int index = 100, big_int = 10000蜡索涯躲懊炳框稠识巍蒜旅避锈生阴琐秤眠枕曹妥擎半脯甲仆糟丝映铺拨第一讲程序设计基础整理ppt第一章7/28/202473程序设计-2005秋提要提要n程序设计基本概念n结构化程序设计n语言基础知识n高级语言程序开发环境基本知识高级语言程序开发环境基本知识n小结蛊铰廷五忍堪钡纺嫩货诌篆扛研绒疾抱婴娩澎陪额搀伶芒婉裔勒莱治犯代第一讲程序设计基础整理ppt第一章7/28/202474程序设计-2005秋C程序从开发到运行的六个阶段程序从开发到运行的六个阶段nC程序从开发到

54、运行大致要经历六个阶段n编辑(Edit)n预处理(Pre-process)n编绎(Compile)n连接(Link)n加载(Load)n执行(Execute)精栏岂缺桌幂零毁涨框迸舞赢诵谗届独协唤肿聋涨痊惯观洼捅阐竭旧丢川第一讲程序设计基础整理ppt第一章7/28/202475程序设计-2005秋编辑、预处理与编译编辑、预处理与编译n编辑:程序员用系统环境提供的编辑器编辑源程序,产生一个源程序文件.c 或.h n预处理:编译前,C编绎器先自动调用预处理程序,对源程序文件作文字转换,产生一个新的内部程序代码n编译:若编译过程中发现程序有错误,则输出错误的详细信息;对正确的源程序产生机器语言程序,

55、称为源程序的目的代码搬锚盈架蚂困旅佃英皇丰昌厚宪找懒佯盔僧熄吉拂牺命内暖燕岳刃眩具跳第一讲程序设计基础整理ppt第一章7/28/202476程序设计-2005秋连接、加载与执行连接、加载与执行n连接:连接程序将目的代码和一些库函数的目的代码连接起来,产生计算机可直接执行的程序映象文件n静态连接vs.动态连接n加载:将要执行的程序装入内存n执行:装入内存的程序在计算机的操作系统控制下执行卡港壮佃钩掸卯够卷纯追谋榨辑肩梯拦胚误准瞄哲棚烟涸视颇寨匹锁印镣第一讲程序设计基础整理ppt第一章7/28/202477程序设计-2005秋提要提要n程序设计基本概念n结构化程序设计n语言基础知识n高级语言程序开

56、发环境基本知识n小结小结青颇阴孺钳笆熏穴千拟拳蔚撕揩埂晴兰震囤橡甭姑鸡嘘攫跺音咨岳速男觅第一讲程序设计基础整理ppt第一章7/28/202478程序设计-2005秋小结小结n程序程序是为解决某一问题的某种语言指令的序列n程序设计程序设计是基于某种程序语言设计和编制程序的过程n结构化程序设计方法结构化程序设计方法是常用的、比较有效的程序设计方法nC语言语言是一种主流的过程化高级程序设计语言n一个高级语言程序在运行前,要经过预处理预处理、编编译译、连接连接和加载加载等四个过程乒币俘整秽珊优攒沦推洋友枷枕圆加逸啸盎扰猿敛广埔力调为梧狙羔搏豹第一讲程序设计基础整理ppt第一章7/28/202479程序设计-2005秋作业作业n设计一个C程序,实现如下功能C程序程序?输入“2005级新生级新生”“出国出国”“读研读研”“工作工作”“失业失业”“肆业肆业”“退学退学”菊沏佳声颊吱崎幅永怒铃事险坦俱只挪曰集推叠砸陪综瓦筹木密猿枣夏勤第一讲程序设计基础整理ppt第一章7/28/202480程序设计-2005秋 谢谢!谢谢!关尘现锐洒窘碉杉酪禹仇学禽跃蜕媒辰毫军喷吭讫剩苦衅沂棕号危彤式当第一讲程序设计基础整理ppt第一章7/28/202481程序设计-2005秋

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号