学员学习c语言基础.ppt

上传人:sh****n 文档编号:7453234 上传时间:2020-03-21 格式:PPT 页数:52 大小:764KB
返回 下载 相关 举报
学员学习c语言基础.ppt_第1页
第1页 / 共52页
学员学习c语言基础.ppt_第2页
第2页 / 共52页
学员学习c语言基础.ppt_第3页
第3页 / 共52页
点击查看更多>>
资源描述
语言程序设计 第一章程序设计及 语言概述 1 1程序设计的概念1 2算法的概念及常用算法描述1 3结构化程序设计方法1 4面向对象的程序设计方法1 5 语言的产生及发展1 6 语言的特点1 7简单 程序介绍1 8本章要点小结 1 1程序设计的概念 1 1 1程序设计语言的发展1 1 2程序设计的概念 程序是由一条条指令组成的 而所有指令的集合就称为程序设计语言 一 机器语言 在PDP 11机上 0110000000000001 1 1 1程序设计语言的发展 可由机器直接识别并执行的二进制数指令称为机器语言指令 而所有机器语言指令的集合就称为这台计算机的机器语言 优点 可以直接被机器理解和执行 缺点 不直观 不易读写 不易理解和记忆 不易查错 是一种 面向机器 的语言 二 汇编语言 0110000000000001 由符号和数字组成的指令称为汇编语言指令 而汇编语言指令的集合称为这台计算机的 汇编语言 优点 直观 易理解 缺点 不能被计算机直接识别和执行 必须通过汇编程序将汇编语言指令翻译成二进制代码的机器语言指令 特点 不再面向机器 而是 面向解题过程 的 三 高级语言 所谓高级语言 是指以更接近于人们的自然语言和数学公式编写程序的语言 如C Basic Fortran等 把高级语言的源程序翻译成机器语言的目标程序有两种方式 1 编译方式 2 解释方式 自1954年产生第一种高级语言 Fortran以来 产生了数百种不同类型的高级语言 1 1 2程序设计的概念 程序设计就是用计算机语言来编写程序的过程 什么是程序呢 著名的计算机科学家沃思提出一个公式 算法 数据结构 程序 程序的两大要素 算法 即问题的求解过程 也就是计算机的工作步骤 这是对操作的描述 数据结构 即在程序中数据的类型和组织形式 这是对数据的描述 1 2算法的概念及常用算法描述 1 2 1算法的概念1 2 2算法的表示1 2 3常用算法描述 1 2 1算法的概念 广义的说 为解决一个问题而采取的方法和步骤就称为算法 包含两大要素 1 计算机所能执行的操作 算术运算 逻辑运算 关系运算 函数运算 位运算 I O操作等 2 控制结构 即如何控制构成算法的各种操作的执行顺序 按照结构化程序设计原则 一个程序由三种基本控制结构组成 1 顺序结构 按语句书写的先后次序执行的程序结构 2 选择 分支 结构 根据指定条件的判断结果从若干组语句中选择一组执行 3 循环结构 根据判断给定条件是否满足 决定是否继续执行程序中的某一模块 1 2 2算法的表示 计算机通常采用三种方法来表示 自然语言传统的程序流程图N S流程图 自然语言表示法 例如 求两数之和 输入a b两数 求和sum a b 输出两数之和sum 注意 用自然语言表示的每一个操作步骤必须是计算机所能实现的 特点 通俗易懂 但文字冗长 易出现歧义 较少使用 传统的程序流程图 用一些图形符号形象直观的描述算法 ANSI规定了常用的程序流程图符号 例1 1输入三个数a b c 输出其中的最大者 开始 传统的程序流程图 特点 绘制简单 描述直观 缺点 1 不易表示算法或程序的层次结构 2 用箭头表示的控制流可能引起随意的转移控制 3 可能诱使人们过早地考虑局部程序的控制结构而忽视全局性的程序结构 4 不易表示数据结构和程序模块间的关系 N S图 提供了描述三种基本逻辑结构的图形工具 与传统的程序流程图对照描述如下 一 顺序结构 图1 3顺序结构 二 选择 分支 结构 图1 4选择结构 N S图 由分支结构派生出来的多分支结构 图1 5多分支结构 N S图 三 循环结构 图1 6当型循环结构 1 当型循环结构 先判断循环条件是否满足 当条件满足 执行一遍循环体 再判断循环条件 仍满足再执行一遍循环体 直到不满足条件 则退出循环 执行循环体后的下一语句 若第一次判断条件就不满足 则一次也不执行循环体 图1 7直到型循环结构 2 直到型循环结构 先执行一遍循环体 再判断循环条件是否满足 如不满足再执行一遍循环体 直到条件满足 则退出循环 执行循环体后的下一语句 这种循环结构至少要执行一遍循环体 循环结构 1 2 3常用算法描述 下面给出两个常用算法的举例 例1 3描述n 的值的算法 图1 8求n 的N S图 例1 4描述求的算法 设a 0 1 3结构化程序设计方法 荷兰学者E W dijkctra提出了结构化程序设计 structuredprogramming 的理论 成为70年代后程序设计的主流方法 它提出了一些大家都要遵循的原则 这些原则可以归纳为32个字 自顶向下 逐步细化 基本结构 组合而成 清晰第一 效率第二 书写规范 缩进格式 1 4面向对象的程序设计方法 70年代后 软件开发的手段和方法越来越不能适应开发大型系统软件的要求 因而出现了 软件危机 针对这种情况 1972年由Xerox公司首先推出著名的面向对象的程序设计语言Smalltalk 1983年美国Bell实验室的B Stroustrup在C语言基础上 扩充引进了面向对象的概念 推出了C 语言 它与C语言完全兼容 是目前使用最为广泛的一种面向对象的程序设计语言 面向对象的程序设计方法 1 对象 object 是数据以及对数据施加的操作结合在一起所构成的独立实体的总称 对象可以用来表示各种信息 如数据 字符串 矩阵 堆栈等 一 基本概念 2 类 class 是对一组具有相同数据和相同操作的对象的描述 即对一组对象的抽象概括 而每个对象都是某个类的一个具体实例 面向对象的程序设计方法 3 实例 Instance 实例是由某个特定类所描述的一个对象 一般而言 对象 和 类的实例 是同义 4 消息 message 是对某个对象执行类中所定义的某个操作的请求 消息中仅指明执行何种操作 不指明如何执行这种操作 发送消息是让对象实施操作的唯一途径 5 方法 method 方法是在类中所定义的过程 对象通过调用方法来完成预期的操作 1 封装性 对象的数据和加工处理该数据的方法紧密结合封装为一个整体 对用户而言 仅看到对象的外特性 即该对象能接受的消息和有那些处理能力 对于对象的内特性 如使用的算法和内部私有数据 是看不到的 也不需了解 3 多态性 对同样发送的一条消息 根据不同的接受对象可能引起不同的反应 面向对象的程序设计方法 二 基本特点 2 继承性 一个类的上层可以有父类 下层可以有子类 组成一个层次结构 一个类可以直接继承其父类的全部描述 且这种继承具有向下传递性 即某个类的对象除具有该类所描述的性质外 还具有该类之上的全部基类所描述的相关性质 语言的产生和发展与UNIX操作系统分不开 操作系统的编写需要即具有高级语言的优点 又具有低级语言的特点的语言 语言是在 语言的基础上发展而来的 而 语言又是由 语言发展而来的 1963年 英国的剑桥大学推出了CPL CombinedProgrammingLanguage 语言 它比Algol60更接近硬件一些 但规模比较大 难以实现 1 5 语言的产生及发展 所谓 语言是指高级语言Algol60 它是一种面向问题的高级语言 离硬件比较远 不宜用来编写系统软件 一 语言的产生 1967年 英国剑桥大学的MartinRichads对CPL语言作了简化 推出了BCPL basicCPL 语言 1973年 Bell实验室的D M Ritchie在 语言的基础上设计了 语言 语言既保留了B语言的精炼 接近硬件的优点 又克服了过于简单 无数据类型等缺点 同年 K Thompson和D M Ritchie合作用 语言改写Unix操作系统获得巨大成功 1970年 美国Bell实验室的KenThompson以BCPL语言为基础 设计出了简单而且接近硬件的 语言 并且用 语言写了第一个Unix操作系统 在PDP 7上实现 语言的产生 到1978年以后 C语言已先后移植到大 中 小及微型机上 得到广泛的使用 1978年 BrianW Kernighan和DennisM Richie合著了 TheCProgrammingLanguage 一书 这本书成为后来广泛使用的 语言的基础 被称为标准 1983年 美国国家标准协会ANSI重新制定了新的 语言标准 即ANSIC 到1987年 ANSI又公布了新的标准 87ANSIC 1990年 国际标准化组织ISO接受87ANSIC为ISOC的标准 二 语言的发展 1 6 语言的特点 1 C语言本身既有一般高级语言的特点 又有低级语言 汇编语言 的特点 2 C语言是一种结构化的程序设计语言 它具有实现顺序 分支 循环三种基本结构化控制的语句 3 C语言简洁 紧凑 使用方便灵活 只有32个保留字 9种控制语句 书写形式自由 4 数据类型丰富 有整型 实型 字符型 数组型 指针型 结构体型 共用体型和枚举型等 语言的特点 5 运算功能强 有32种运算符 包括了算术运算 关系运算 逻辑运算 位运算 指针运算等 6 目标代码质量高 运行速度快 7 可移植性强 8 语法限制不太严格 程序设计自由度大 1 7简单 程序介绍 简单 程序介绍 函数体由一对大括号括起来 函数体的范围以 开始 结束 本例中主函数内只有一条输出语句 例 main printf ThisisaCprogram n Eg101 c printf是C语言的标准输出函数 内的字符串按原样输出 n 是换行符 即输出完后回车换行 本程序的作用是在屏幕上输出信息 ThisisaCprogram main 表示主函数 每个C程序必须有一个main函数 称为主函数 main是函数名 不能更改 表示这是一个函数 括号为空表示函数没有参数 表示语句结束 简单 程序介绍 例1 6 main 主程序 inta b sum 定义变量 a 2 b 3 sum a b printf sumis d n n Eg102 c 1 表示注释部分 以 开始 以 结束 注释部分可以加在程序的任意位置 仅起帮助阅读程序的作用 对编译和运行程序不产生任何影响 2 第3行为声明部分 定义变量a b sum 并且指定为整型 int 变量 3 第4行为赋值语句 简单 程序介绍 例1 6 main 主程序 inta b sum 定义变量 a 2 b 3 sum a b printf sumis d n sum Eg102 c 4 printf为标准输出函数 d 表示 十进制整数类型 在执行输出时 此位置上代以一个十进制整数值 由 后边的内容提供 此处代以sum的值 其它内容原样输出 因此 本程序的运行结果为 sumis5 简单 程序介绍 scanf是C语言的标准输入函数 f 是格式输入符号 表示用户输入的数据应该是实数 的含义是 取地址 调用average函数 求出平均值并赋值给变量aver return语句将aver1的值返回给主调函数main 返回值是通过函数名average带回到main的调用处 例1 7从键盘上输入三个数 求该三个数的平均值floataverage floata1 floatb1 floatc1 floataver1 aver1 a1 b1 c1 3 return aver1 main floata b c aver printf pleaseinputa b c scanf f f f Eg103 c 简单 程序介绍 includeintmax intx inty intz if x y z x elsez y return z main inta b c scanf d d Eg104 c 关于 程序基本结构的说明 一 程序的构成 1 一个 程序由一个或多个函数构成 程序中应至少包含一个main函数 函数是 语言的基本单位 可以说 语言是函数式语言 2 一个 程序总是从main函数开始执行 而不论main函数在整个程序中的位置如何 一般说来 又随着main函数的结束而整个程序结束 关于 程序基本结构的说明 3 被某一函数调用的函数可以是系统提供的库函数 也可以是用户根据需要自己编制设计的函数 4 如果调用库函数 则要用include命令行 以向系统提供必要的信息 语言本身没有输入输出语句 输入和输出操作由库函数scanf和printf等函数来完成 对输入输出实行函数化 关于 程序基本结构的说明 每个语句和数据定义的最后必须有一个分号 分号是 语句的必要组成部分 1 函数首部 即函数的第一行 包括函数名 函数类型 函数属性 函数参数 形参 名 参数类型 二 函数的构成 一个函数由两部分构成 关于 程序基本结构的说明 floataverage floata1 floatb1 floatc1 2 函数体 即函数首部下面 内的部分 如果一个函数内有多对大括弧 则最外层的一对大括弧为函数体的范围 例如 例1 7中的average函数首部为 注意 一个函数名后面必须跟 作为函数的标志 main 关于 程序基本结构的说明 变量定义 数据声明 部分 定义在本函数中用到的变量或数组的数据类型 dump 函数体内一般又分为两部分 执行部分 由若干语句组成 完成函数所规定的功能 关于 程序基本结构的说明 1 函数首部后面不要加分号 2 程序的书写格式自由 一个语句可以写在多行上 一行内也可以写几个语句 但是都必须用 作为每个语句的结束标志 三 源程序的书写格式和程序风格 3 为了清晰的表现出程序的结构 建议采用锯齿形格式 4 可以用 对 程序的任何部分作注释 1 8本章要点小结 机器语言 汇编语言 高级语言 程序的两大要素 算法的表示 结构化程序设计方法 面向对象程序设计的基本概念和特点 语言的产生和发展 简单 程序介绍 本章作业 一 书面作业 附加1 参照例题 编写一个C程序 在屏幕上输出以下信息 Verygood 附加2 编写一个程序 输入a b c三个数 输出其中最大者 二 上机作业 调试附加1 2 第一章结束
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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