c语言程序设计2第二讲(第一章下+第二章上).ppt_第1页
c语言程序设计2第二讲(第一章下+第二章上).ppt_第2页
c语言程序设计2第二讲(第一章下+第二章上).ppt_第3页
c语言程序设计2第二讲(第一章下+第二章上).ppt_第4页
c语言程序设计2第二讲(第一章下+第二章上).ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

实践是能力赖以生长的土壤 高级语言程序设计 主讲教师 贾彩燕计算机与信息技术学院计算机科学与技术系cyjia 第一章程序设计与C语言 下 主要内容 程序和程序语言程序和程序语言算法及其描述工具程序开发过程问题与程序设计 1 4 1程序 直观理解 程序 program 通常指完成某些事务的一种既定方式和过程 例1 到图书馆借参考书 1 进入图书馆 2 查书目 3 填写索书单 4 如果书未借出那么 交图书馆工作人员取书 办理借书手续 到5 5 如果还需借其它书 回到2 否则到6 6 离开图书馆 例2 计算n的阶乘 includeintmain inti 1 n 定义i和n变量 并为一i赋初值1 longp 1 因阶乘取值范围较大 故p定义长整型 并赋初值1 printf Pleaseentern scanf d 一些直观特征 按部就班地进行 开始与结束 完成某项具体任务 需要用某种记法形式描述 计算机程序需要用某种精确定义的形式描述 是在一些基本动作的基础上描述的 不同的描述粒度 细节程度 程序 程序程序规定了计算机执行的动作和动作的顺序 如同开会的议程 每周的课程安排表一样 一个程序应包括以下两方面的内容 对数据的描述 在程序中要指定数据的类型和数据的组织形式 即数据结构 对操作的描述 即操作步骤 也就是算法 解决问题的方法和步骤 数据是操作的对象 操作的目的是对数据进行加工处理 以得到期望的结果 程序 数据结构 算法著名计算机科学家NikiklausWirth作为程序设计人员 必须认真考虑和设计数据结构和操作步聚 硬件层面上的程序是机器指令的序列 程序执行 将程序存入内存 通知CPU第一条指令的地址 命令它 开始 一般情况下 CPU执行完一条指令后 自动取出下一条指令 并如此继续下去 转跳指令明确指定下一条指令的位置 人可以基于转跳指令描述复杂的执行流程 人命令计算机去执行一个程序 计算机就会一丝不苟地按这个程序的内容 一条一条指令执行 直至程序结束 指令执行到了最后 或者遇到明确的停止指令 程序的执行 算法 解决问题的方法和步骤 例1 用公式y x2 2x 3计算x 0 1 2 3 100所对应的y值 使用如下算法 1 置x为0 2 置x的上界n 100 3 当x n时 重复执行3 1 3 2 3 3步 否则 算法停止 3 1 用公式计算y值 3 2 打印一组x和y的值 3 3 x值增加1 1 4 2算法 算法的5个特性 有穷性即算法通过有限步骤后能够结束确定性无二义性 算法必须具有清晰的定义 不能存在任何的模糊有0个或多个输入有一个或多个输出可行性即算法的每一步都是可执行的同一个问题可以有多种算法 算法的描述工具 流程图 传统流程图 用一些图框表示各种操作 形象直观 易于理解ANSI规定一些常用的流程图符号 流程图 ANSI AmericanNatronalStandardsInstitute 标准 起止框 选择框 处理框 输入输出框 注释框 连接点 流程线 算法的描述工具 流程图 一个流程图包括以下几部分表示相应操作的框带箭头的流程线框内外必要的说明文字 x n x 0 n 100 计算y x x 2 x 3打印x yx x 1 开始 结束 真 假 算法的描述工具 N S图 N S图 流程图 x 0 n 100 x n 计算y x x 2 x 3打印x yx x 1 算法的描述工具 伪码 伪码begininitializextozeroinitializento100whilex ncalculateyprintx yaddonetoxend 例2 求1 2 100的和 i 100 sum 0 i 1 sum sum ii i 1 开始 结束 真 假 printsum 传统流程图 例2 求1 2 100的和 beginsum 0 i 1 whilei 100sum sum i i i 1 printsumend sum 0 i 1 i 100 sum sum 1i i 1 printsum N S图 伪代码 课堂练习1 请为2 4 6 200设计算法并画流程图 课堂练习2 判断某一年是否为闰年能被400整除能被4整除 但不能被100整除 起床刷牙洗脸吃饭早自习 拿饭碗去食堂排队买饭吃饭洗碗离开食堂 排队选饭选菜付款 程序 分解实例 早起活动 程序设计过程 自顶向下逐步细化 编写程序不应该从第一个细节开始逐步分解 直至分解到程序语言提供的功能 程序设计思想自顶向下 逐步细化从问题出发 从高层开始设计程序 逐步分解程序功能 直至可以用程序语言实现 结构化三种基本结构 顺序 选择 循环 的组合模块化函数 结构化程序设计的三种基本结构 顺序 选择 循环 和改进的流程图 1 顺序结构 A B 入口 出口 特点 无条件顺序执行A B语句或语句串A B可能是其他结构 2 选择结构 A B 入口 出口 特点 要么执行A 要么执行B条件P满足执行A不满足执行BA B可能是空语句 条件P Y N 结构化程序设计的三种基本结构 顺序 选择 循环 和改进的流程图 3 循环结构a 当型循环 while b 直到型循环 do while 特点 条件P满足执行A 再测试条件 不满足结束先判断 后执行有可能A一次也没执行 a 当型循环 while 结构化程序设计的三种基本结构 顺序 选择 循环 和改进的流程图 3 循环结构a 当型循环 while b 直到型循环 do while 特点 条件P不满足执行A 再测试条件 满足结束先执行 后判断A至少执行一次 A 入口 条件P Y N 出口 b 直到型循环 do while 一般一个算法既可以用while型也可以用do while型实现 结构化程序设计的三种基本结构 顺序 选择 循环 和改进的流程图 N S结构图表示 A 顺序结构 选择结构 当P成立 当型循环 A 直到P成立 直到型循环 主要内容 程序和程序语言程序和程序语言算法及其描述工具程序开发过程问题与程序设计 1 4C程序的加工和执行 用C语言写出的程序称为源程序 不能直接执行 为执行C程序 必须先把它转换为可执行程序 这种转换称为C程序的加工 是C语言系统的主要功能 C程序加工通常分两步 编译 编译程序处理源程序 生成机器语言目标模块 目标文件 目标模块不能执行 缺少必要的C程序运行系统和库功能 连接 连接程序把目标模块与运行系统 库模块组合起来 构成完整的可执行程序 程序代码的录入 生成源程序 c 语法分析查错 翻译生成目标程序 obj 与其它目标程序或库链接装配 生成可执行程序 exe 不同C系统启动程序加工的方式不同 集成程序开发环境 IDE IntegratedDevelopmentEnvironment 是支持软件开发过程的软件系统 IDE把编程所需软件集成起来统一管理和使用 采用窗口菜单技术 提供编程用编辑环境 通过菜单提供编译 连接 执行程序等命令 C的运行环境 TurboC TC VisualC VC 程序调试和排误 调试 Testing 和排除错误 排错 Debugging 是编程的必经阶段 初学者的观点 我写的程序肯定没问题 照书上写的 是系统或者计算机有问题程序中的错误是人的错误 排除程序错误就是排除自己在程序设计中所犯错误 错误可分为两类 语法错误程序形式不符合语言规定 C语言系统在加工时能指出程序里的这类错误 逻辑错误 链接错误程序形式正确 能完成加工 产生可执行程序 但程序工作不正常 或在执行中出问题 或计算结果 或执行效果 不合要求 常见Bug 违反环境要求 死循环 异常 逻辑错误 语言系统查出错误时 将产生一些 错误信息 行 指明发现位置和错误类型 供人参考 注意 应仔细阅读系统报错信息 检查所指位置附近的源程序 找到实际错误并予以排除 基本原则 集中精力排除系统发现的第一个错误 两个问题 1 实际错误可能出现在指定错误位置前面很远处 2 一个实际错误有时会导致许多出错信息行 应注意警告信息 Warning 警告常表示隐藏较深的错误 必须认真弄清原因 主要内容 程序和程序语言程序和程序语言算法及其描述工具程序开发过程问题与程序设计 1 5问题与程序设计过程 程序设计是智力劳动 编一个程序就是解决一个问题 用计算机解决问题的过程可分为三步 分析问题 设计一种解决问题方案 算法设计 用某种程序语言严格描述这一解决方案 编程 在计算机上试用程序 看它能否解决问题 调试 算法是核心 是灵魂 程序是外壳 分析抽象实现问题 解决方法 精确描述 算法 程序 源程序 算法 由若干条指令组成的有穷序列 满足一定条件 程序 是算法用程序设计语言的具体实现 程序设计语言 程序 计算机翻译 机器语言 执行程序设计语言 设计方法 程序程序 算法 数据结构 程序设计方法 总结 掌握语法规则 体会程序设计语言结构 理解算法 掌握程序设计的方法和技巧 能剖析和理解经典算法 养成良好的程序设计习惯 编制复杂程序 高级语言程序设计是一门实践性较强的课程 必须多上机练习 积累编程经验 学习要求 第二章数据对象与计算 上 问题1 读入两个整数 输出它们的乘积m x y问题2 输入三角形的三边长 求三角形面积area s s a s b s c s a b c 2 思考 数据如何输入给计算机 计算机如何计算 结果如何输出 x y a b c 定义 类型 输入 如何写公式 表达式 计算 结果以什么形式给出 屏幕显示 用计算机解决需考虑什么问题 提出问题 问题1 读入二个整数 输出它们的积 inputtwonumbers outputtheproduct includevoidmain intx y m printf Pleaseinputxandy n scanf d d Pleaseinputxandy82 8 16 运行结果 已知三角形三边边长求三角形的面积 include includevoidmain doublea b c s area printf Pleaseinputa bandc n scanf lf lf lf Pleaseinputa bandc3 4 6a 3 00 b 4 00 c 6 00 s 6 50area 5 33 运行结果 问题2 输入三角形的三边长 求三角形面积area s s a s b s c s a b c 2 主要内容 第二章 数据与对象 基本字符 标识符和关键字数据类型基本类型与数据表示基本输入输出运算符 表达式与计算数学函数库及使用本章学习目标学习写最简单的C程序 顺序结构程序 并能调试和运行 2 1基本字符 标识符 关键字 基本字符包括 数字 0 9 大小写字母 a z A Z 其他一些可打印 显示 字符 如标点符号 运算符号 括号等 特殊字符 空格 换行 制表符 空白字符 起分隔作用 增删空白一般不影响程序的意义 应利用空白字符排列程序格式 使程序的形式更好地反映程序结构和它所实现的计算过程 1 基本字符 C程序是基本字符的序列 任何语言都有基本字符序列集合 双引号内的除外 在C语言中用来对变量 符号常量 函数 数组等数据对象命名的有效字符序列统称为标识符 简单地说 标识符就是一个名字 形式 字母 数字的连续序列 字母开头 下划线 看作字母标识符对字母大小写敏感 a和A是不同字母 ABC Abc AbC和abc是4个不同标识符 a b c s x y 变量的名字 用户自定义sqrt int printf scanf 标准函数名字 语言已定义 2 标识符 标识符示例 abcdsinBeijingC Programminga3b06a3b400nwhile f2048sx211 12aabc 例 x3 5 其中x3是一个标识符例 ab 400 xy xareavolume尽量采用能说明程序对象意义的标识符 通常将以下划线开始的标识符保留给系统用 autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile 特殊标识符集 ANSIC共32个 有特定意义 不能用作一般名字 C99有扩充 3 关键字 主要内容 基本字符 标识符和关键字数据类型基本类型与数据表示基本输入输出运算符 表达式与计算数学函数库及使用本章学习目标学习写最简单的C程序 顺序结构程序 并能调试和运行 2 2数据与类型 类型是计算机科学的一个核心概念一个类型是程序里可用的一个数据对象集合 C基本数据类型包括字符 整数 实数类型等 同类型所有数据对象的性质相同 能做同样操作 数据都属于某种类型 数据类型确定了该类型数据的可能取值范围 C基本类型 长双精度longdouble 在程序运行过程中 其值不能改变的量称为常量 常量分两种 直接常量或字面常量 整型常量 实型常量 字符常量 字符串常量例 整数类型的常量 简称整数 3 1415926符号常量 用一个标识符代表一个常量例 definePI3 1415926 基本类型的类型名由一个或者几个关键字组成 例 char 字符型 int 整型 float 单精度浮点型 double 双精度浮点型 基本类型名系统已经定义好 用户直接使用 关键字 1 常量 2 基本类型 符号常量示例 求n includeintmain inti 1 n longp 1 printf Pleaseentern scanf d 求n include defineN5intmain inti 1 longp 1 while i N p p i i printf d ld n N p return0 3 变量 定义形式数据类型名变量名1 变量名2 标识符 例 inta 1 int是整型名 int代表整数类型数据的集合 2 a是标识符 代表变量名 3 a中可以存储任意想存的表达范围内的整数 程序执行过程中可以改变可以赋值的量 如何定义一个实型的变量 如何定义一个字符型的变量 主要内容 基本字符 标识符和关键字数据类型基本类型与数据表示整数类型和整数的表示实数类型和实数的表示字符类型和字符的表示数据的外部表示 内部表示与转换基本输入输出运算符 表达式与计算数学函数库及使用本章学习目标学习写最简单的C程序 顺序结构程序 并能调试和运行 2 3C基本类型 一 整数类型和整数的表示 整数类型 int短整型 shortint简写short长整型类型 longint 简写long short和long都是关键字 不同整数类型所用编码位数可能不同 表示数的范围也不同 一般编码位数short不少于int int不少于long 1 整数类型 C语言里有多个整数类型 常用 整数类型 整型 短整型和长整型 2 整型常量 整数 整数写法 十进制 首字符非0 除非本身是0 例 12340768204719992000 长整数写法 加后缀l或L 不能有间隔 123L304l25278L1l0L小写l易与数字1混淆 建议用大写 整数可以加正负号 2 整数表示范围编码长度 表示范围 由具体C系统确定 规定 long的范围不小于int 微机上一些早期C系统中整数用16位 表示范围是 32768 32767 215 215 1 长整数用32位表示 范围是 2147483648 2147483647 231 231 1 VC6 0IDE short2字节 16位 int和long4字节 32位 3 整数的八进制和十六进制表示整数可以用八进制和十六进制形式写 八进制 0开始的数字序列 只允许用0 701230625405310765432L 十六进制 0 x或0X开头的数字序列 用字母a f或A F表示其余6个数字0 x20730 xA3B50XABCD0 xF0F00000L 常量的十进制 八进制和十六进制表示形式只是整数的不同书写形式 是为编程方便 如何转化为十进制 二 实数类型和实数的表示 2 常用的标准表示浮点数32位表示 约7位有效数字双精度数用64位表示 大约16位有效数字长双精度数用64位或80位表示 系统确定 约19位有效数字 1 实数类型单精度浮点数类型 浮点类型 float双精度浮点数类型 双精度类型 double长双精度类型 longdouble实型常量 实数 浮点数 双精度数 长双精度数 指数表示 科学表示法 十进小数表示法 浮点数在计算机内部是按照指数形式存储 系统把一个浮点型分成小数部分和指数部分 3 实数写法基本实数类型是double 十进小数形式 数字和小数点组成 必须有小数点 指数形式 整数部分 小数部分和指数部分组成3 23 62E 32 45e17 float加后缀f或F longdouble加L实数前可以有正负号整数类型和实数类型统称算术类型 浮点型数据的舍入误差 例1 includevoidmain floata b 换成double型试试 a 123456 789e5

温馨提示

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

评论

0/150

提交评论