C课件第1章.ppt_第1页
C课件第1章.ppt_第2页
C课件第1章.ppt_第3页
C课件第1章.ppt_第4页
C课件第1章.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

语言程序设计 C 安徽农业大学 课程教学目标 掌握使用计算机解决问题的基本思维方法掌握高级语言程序设计的基础知识掌握计算机软件与实现的基本方法具备用计算机解决实际问题的能力和基本的程序调试能力 Howtothinklikeacomputerscientist Howtoprogramlikeacomputerscientist 问题1你对计算机了解多少 为什么计算机被俗称 电脑 期望计算机有朝一日能像人类一样聪明让计算机像人一样思考一直是人类的梦想很多科幻电影描绘了计算机真正成为电脑时的景象 问题2你了解计算机领域的哪些著名人物 著名计算机领域人物 阿兰 麦席森 图灵 现代计算机科学之父和人工智能之父的英国数学家1950年发表题为 ComputerMachineryandIntelligence 的论文 首次提出 计算思维 的概念 并从 机器能否思考 这一问题出发 提出一个判断机器是否有智能的测试标准 图灵测试 TuringTesting 问题3什么是图灵测试 图灵提出的一种判断机器是否具有智能的标准 方法 测试人在不接触被测试者 一个人和一台机器 的情况下 通过一些终端设备 如键盘 向被测试者提问如何判断这台机器通过了测试 并具有与人类相当的智能呢 其内容是 如果电脑能在5分钟内回答由人类测试者提出的一系列问题 且其超过30 的回答让测试者误认为是人类所答 则电脑通过测试 更换测试人或被测试者中的人 问题4什么是人工智能 人工智能 ArtificalIntelligence 简称AI 用机器模拟人类的智能活动 博弈 GamePlaying 最具有代表性的智能活动1997年IBM公司研制的DeepBlue超级计算机在一场 人机大战 中打败国际象棋大师卡斯帕罗夫 被誉为 AI领域的一大胜利 奥秘 海量的存储能力以及高速的检索演算能力 200万棋谱 图灵预言 到20世纪将会出现足够好的电脑 能够在不超过7成人的长达5分钟的提问中全部回答正确 但是到目前为止还没有出现完全通过图灵测试的机器 但已有电脑在测试中 骗 过了测试者 最终将会出现能够骗过大多数人的电脑吗 问题4什么是人工智能 2012年6月底 在英国著名的布莱切利庄园举行了一场国际人工智能机器测试竞赛由俄罗斯专家设计的 叶甫根尼 电脑程序脱颖而出 其29 2 的回答均成功地 骗过 了测试者 被视为世界上最接近人工智能的机器但距离人类级人工智能的目标仍然较远 问题4什么是人工智能 AI的先驱者之一美国CMU的西蒙 HerbertSimon 最令他惊讶的是让计算机做 难 的事情是多么的容易 而做 容易 的事情是多么的 难 例如2011年 IBM公司研制的Watson软件系统能以每称翻100万本书的速度从存储的2亿页百科全书 字典 文学作品中搜索答案 人类望尘莫及理解一个故事呢 问题5什么是计算机系统 一种能按照事先存储的程序自动 高效地对数据进行输入 处理 存储和输出的系统 计算机系统 ComputerSystem 硬件 软件 问题6什么是软件 人类驾驭计算机的手段之一是编写软件 OS Office IE 软件分为系统软件和应用软件两大类 问题7程序和软件有区别吗 程序 Program 为了实现特定目标或解决具体问题而用计算机语言编写的指令的有序集合程序就是软件的全部吗 软件包含程序 数据和文档程序 数据和文档三者之间的关系 厨师 软件开发人员 烹饪方法 软件中的程序 菜谱 程序中的文档 食材 软件中的数据 整个烹饪过程 软件的实现过程 问题8人与计算机交流用什么语言 如果你想成为周游世界的旅行家 那么大概需要学习用6912种言 BrianHayes 计算机与人之间的交流计算机与人类之间的交流无法使用自然语言人类只能主动学习使用非自然语言 即计算机专用的语言 问题9计算机能读懂什么语言 计算机只能识别二进制指令机器语言 MachineLanguage 用机器语言编写的1 1程序 问题10如何让程序员远离二进制呢 用助记符代表机器指令的操作码用一个汇编器 Assenbler 将这些符号翻译成机器可识别 可执行的二进制指令 汇编过程汇编语言低级语言 与计算机硬件的距离的级别较低 对硬件依赖性强 问题11如何实现更有效的人机交流 设计更贴近人类自然语言和数学语言的计算机语言高级语言 High levelLanguages 高级 在哪里可以在一个更高的级别上进行编程不像低级语言那样依赖于硬件更远离机器语言更易学易用 具有可移植性 高级语言的发展历程 1954年约翰 巴克斯发明第一个高级语言FORTRAN语言 据不完全统计至今有2500种影响最大 寿命最长的非C语言莫属 高级语言的分类 C语言的设计者 KenThompson DennisM Ritchie C语言的诞生始末 1969年 ken梦想能遨游宇宙 设计了一款模拟在太阳系航行的电子游戏 SpaceTravel 1971年Dennis加入游戏在PDP 7小型机上开发 因为这台机器免费 但免费的机器没有操作系统玩游戏之前 先给PDP 7做个操作系统 命名为UNIX 20世纪60年代 Ken和Dennis在贝尔实验室开发UNIX操作系统 汇编编写UNIX太慢 而一般的高级语言难以实现汇编语言的某些功能 怎么办 Dennis改造B语言 设计了一种新的高级语言 命名为 C语言 把UNIX的90 以上代码用C改写1983年 因为UNIX和C语言的巨大成功 ken和Dennis共同获得当年度的计算机界最高奖 图灵奖 C语言的诞生始末 问题12为什么要学习C语言 是一种高级语言 很多流行语言 新生语言都借鉴了它的思想 语法从C 到Java 再到C 学好C是学习这些流行语言的基础交流 笔试 面试时最常见的语言几乎无所不能几乎没有不能用C语言实现的软件没有不支持C语言的系统 问题13选择语言的标准是什么 适合的才是最好的C语言最适合哪些应用 编写系统软件 例如操作系统 和工具软件运行效果要求较高的系统设备驱动程序 嵌入式系统 Embeddedsystems 工业机器人 家用机器人 智能手机和智能家电等高性能 实时系统 如何学好C语言 练习 练习 再练习 第1章C语言程序设计概述 主要内容 C语言简介 C语言集成开发环境 程序与算法 计算机程序设计的基础知识 用计算机解决问题 首先要从具体的问题中抽象出一个适当的数学模型 考虑数据的组织方式 然后再依据该数学模型设计出相应的算法 根据设计好的算法选择某一种程序设计语言编写程序 再对程序进行上机调试 直至得到求解问题的结果 数学模型是针对参照某种事物系统的特征或数量依存关系 采用数学语言表述出的一种数学结构 从广义理解 数学模型包括数学中的各种概念 各种公式和各种理论 现实问题 数学问题 算法分析 程序设计 编码调试 运行结果 1 1程序与算法 1 程序 2 算法 程序 采用某种计算机程序设计语言对解决某个问题的方法进行具体实现的一组有序指令集合 算法 描述一个可用计算机实现的问题的求解方法 程序设计 将人们制定的算法用程序设计语言表达出来 并在计算机上执行求得计算结果的过程 1 1程序与算法 计算机能解决实际问题是依靠程序的运行 而算法是程序设计的基础 是程序的核心 当一个算法用计算机程序设计语言描述时 就是程序 计算机科学家沃思提出 程序 算法 数据结构 对运算操作的描述 3 算法与程序的关系 对运算数据的描述 1 1程序与算法 4 算法的表示 常用的算法描述方法有以下4种 1 用自然语言描述算法 2 用传统流程图描述算法 3 用N S流程图描述算法 4 用伪代码描述算法 传统的流程图采用的符号 起止框输入 输出框判断框处理框 流程线连接点注释框 用传统流程图描述算法 用传统流程图描述算法 顺序结构 例1 有两个数a b 计算两数的和 传统的流程图 scanf d d 用传统流程图描述算法 选择结构 例2 有两个数a b 将较大的数输出 传统的流程图 结束 采用双分支if else语句实现 if a b printf d a elseprintf d b 例3 有10个数据元素 如a 0 a 1 a 9 求其中的最大值 采用循环语句实现 max a 0 i 2 while imax max a i i i 1 printf d max 用传统流程图描述算法 循环结构 否 算法的策略 穷举算法回溯算法递归算法分治算法迭代算法并行算法 计算规律 算法复杂度 时间复杂度空间复杂度 算法的特征 确定性可行性有穷性输入输出 结构化程序设计 1 2程序设计的分类及常用程序设计语言 1 程序设计的分类 结构化程序设计的思想就是采用自顶向下 逐步求精及模块化的程序设计方法 将待开发的软件系统划分为若干个相互独立的模块 使得大软件的开发变得明确而简单 任何程序都可以使用顺序 选择和循环三种基本控制结构来实现 主要强调的是程序的易读性 常用的结构化程序设计语言 Basic pascal C等 把程序看成工作在数据上的一系列过程或函数的集合 过程接受数据输入并产生输出结果 面向对象程序设计 C Java VB C Smalltalk Ada Eiffel ObjectPascal等 面向对象优点 1 稳定性好 2 可重用性好 3 较易开发大型软件产品 4 可维护性好 常用的面向对象程序设计语言 面向对象设计是一种把面向对象的思想应用于软件开发过程中 指导开发活动的系统方法 对象是由数据和操作组成的封装体 从客观实体抽象得到 一组具有相似性质的对象抽象成一个类 而继承性是对具有层次关系的类的属性和操作进行共享的一种方式 所谓面向对象就是基于对象概念 以对象为中心 以类和继承为构造机制 来认识 理解 刻画客观世界和设计 构建相应的软件系统 脚本语言 最近时期 一些既支持面向对象程序设计 又支持面向过程的程序设计语言悄然浮出水面 它们中的佼佼者有Python Ruby等等 脚本语言是为了缩短传统的编写 编译 链接 运行 edit compile link run 过程而创建的计算机编程语言 如JavaScript VBScript等 脚本语言的特点是语法简单 一般以文本形式保存 并且不需要编译成目标程序 在调用的时候直接解释 这可以当做是脚本语言的判断标准 比如说JavaScript 只需要用记事本新建一个Html文件 在里面加上一段脚本就可以了 在浏览器打开Html文件时自然会调用JS脚本 1 3C语言的主要特点 语言简洁 紧凑 使用方便 灵活可以对硬件进行操作丰富的数据类型和运算符目标代码质量高 执行快程序可行植性好 C是结构化的语言 1 4C语言程序结构 thisisasimplecprogram includevoidmain printf C语言程序结构 n 程序说明 1 main 是C语言程序中的主函数 标识符void说明该函数的类型为空 即函数执行后不产生函数值 2 和 是main 函数体的标识符 C语言中的函数都是由函数名和函数体两部分组成 函数体由一对大括号括起来 一个简单的C程序 注意 函数是C语言程序结构的基本单位一个C程序可以由一个 主函数 或多个函数 主函数和其他函数 组成 函数之间是相互独立的 它们之间仅有调用关系 3 语句printf是C编译系统提供的标准函数库中的输出函数 其函数信息包含在头文件stdio h中 因此需要用 include文件包含命令将stdio h包含进来 其功能是 在此处将stdio h文件与当前的源程序连成一个程序文件 1 4C语言程序结构 3 一个C程序必须且只有一个主函数 main函数 无论主函数在程序的开头 最后或其它位置 程序首先从main 开始执行 4 C语言程序的书写格式 一行可以写一条或多条语句 每条语句后面必须有一个分号 来标志该语句的结束 1 4C语言程序结构 5 由 开头的行称为宏定义或文件包含 是C语言中的编译预处理命令 末尾无 号 每个编译命令需要单独占一行 6 C语言中注释信息格式为 和 标识程序中的注释部分 良好的注释可以增加程序的可读性 有利于程序的维护 7 C语言中的标识符和关键字 1 4C语言程序结构 标识符与关键字 标识符 用于标识某个量的符号是由字母 A Z a z 数字 0 9 和

温馨提示

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

评论

0/150

提交评论