描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111554417丛书名: 计算机科学丛书
内容简介
本书介绍如何使用C编程语言求解工程问题。书中从通用的5步方法论入手,以犯罪现场调查、地形导航、飓风等级测量等众多热点技术领域的工程问题为应用对象,生动、有趣地讲解了C语言中的基本操作符、标准输入/输出、基本函数、控制结构、数据文件、模块化编程、数组以及指针等重要概念。本书内容翔实,具有很强的操作性和实践性,可作为高等院校工程和科学计算相关专业的教材,也可作为初学者在C语言编程知识与实际工程应用之间搭建桥梁的参考书。
目 录
目 录Engineering Problem Solving with C, Fourth Edition出版者的话译者序前言工程应用项目第1章 工程问题求解 1犯罪现场调查 11.1 21世纪的工程学 11.1.1 现代工程学取得的成就 11.1.2 不断变化的工程环境 51.2 计算机系统:硬件与软件 61.2.1 计算机硬件 71.2.2 计算机软件 71.3 工程问题求解方法论 11本章小结 13习题 14第2章 简单的C程序 18犯罪现场调查:法医人类学 182.1 程序结构 182.2 常量和变量 212.2.1 科学计数法 232.2.2 数值数据类型 232.2.3 字符型数据 242.2.4 符号常量 262.3 赋值语句 262.3.1 算术运算符 282.3.2 运算符优先级 292.3.3 上溢和下溢 312.3.4 自增运算符和自减运算符 322.3.5 缩写赋值运算符 322.4 标准输入和输出 332.4.1 输出函数printf 342.4.2 输入函数scanf 372.5 解决应用问题:根据骨骼长度估算身高 382.6 数值方法:线性插值 412.7 解决应用问题:海水的冰点 442.8 数学函数 472.8.1 基本数学函数 472.8.2 三角函数 48*2.8.3 双曲函数 492.9 字符函数 502.9.1 字符输入/输出 502.9.2 字符比较 512.10 解决应用问题:速度计算 522.11 系统边界 55本章小结 56习题 58第3章 控制结构和数据文件 63犯罪现场调查:人脸识别与监控视频 633.1 算法开发 633.1.1 自顶向下设计 643.1.2 结构化编程 653.1.3 多种解决方案评估 673.1.4 条件错误 673.1.5 测试数据的生成 673.2 条件表达式 683.2.1 关系运算符 683.2.2 逻辑运算符 693.2.3 优先级和结合性 703.3 选择语句 713.3.1 简单if语句 713.3.2 if/else语句 723.3.3 switch语句 743.4 解决应用问题:人脸识别 763.5 循环结构 793.5.1 while循环 793.5.2 do/while循环 803.5.3 for循环 813.5.4 break语句和continue语句 843.6 解决应用问题:波互作用 853.7 数据文件 913.7.1 输入/输出语句 923.7.2 读取数据文件 943.7.3 生成数据文件 100*3.8 数值方法:线性建模 102*3.9 解决应用问题:臭氧测量 105本章小结 108习题 111第4章 用函数实现模块化程序设计 117犯罪现场调查:虹膜识别 1174.1 模块化 1174.2 自定义函数 1194.2.1 函数示例 1204.2.2 函数定义 1224.2.3 函数原型 1244.2.4 参数列表 1254.2.5 存储类型和作用域 1274.3 解决应用问题:计算虹膜边界 1284.4 解决应用问题:冰山追踪 1334.5 随机数 1374.5.1 整数序列 1384.5.2 浮点数序列 1414.6 解决应用问题:仪器可靠性 142*4.7 数值方法:求多项式的根 1474.7.1 多项式的根 1474.7.2 增量搜索技术 149*4.8 解决应用问题:系统稳定性 150*4.9 宏 155*4.10 递归 1584.10.1 阶乘运算 1594.10.2 斐波那契数列 160本章小结 162习题 163第5章 数组和矩阵 169犯罪现场调查:语音分析和语音识别 1695.1 一维数组 1705.1.1 定义和初始化 1705.1.2 计算和输出 1725.1.3 函数参数 1745.2 解决应用问题:飓风等级 1765.3 解决应用问题:分子量 1805.4 统计测量 1845.4.1 简单统计分析 1845.4.2 方差和标准差 1865.4.3 自定义头文件 1885.5 解决应用问题:语音信号分析 1885.6 排序算法 1935.7 搜索算法 1955.7.1 无序数列 1965.7.2 有序数列 1965.8 二维数组 1995.8.1 定义和初始化 1995.8.2 计算和输出 2015.8.3 函数参数 2035.9 解决应用问题:地形导航 205*5.10 矩阵和向量 2085.10.1 点积 2085.10.2 行列式 2095.10.3 转置 2105.10.4 矩阵加减法 2105.10.5 矩阵乘法 211*5.11 数值方法:联立方程组求解 2125.11.1 图像阐释 2135.11.2 高斯消元法 215*5.12 解决应用问题:电路分析 217*5.13 多维数组 221本章小结 222习题 224第6章 指针编程 230犯罪现场调查:DNA分析 2306.1 地址和指针 2306.1.1 地址运算符 2316.1.2 指针赋值 2326.1.3 地址运算 2356.2 指向数组元素的指针 2376.2.1 一维数组 2386.2.2 二维数组 2396.3 解决应用问题:厄尔尼诺-南方涛动现象 2416.4 函数调用中的指针 2436.5 解决应用问题:地震监测 2466.6 字符串 2506.6.1 字符串定义与输入/输出 2516.6.2 字符串函数 2516.7 解决应用问题:DNA测序 254*6.8 动态内存分配 256*6.9 快速排序算法 259本章小结 262习题 263第7章 利用结构体编程 267犯罪现场调查:指纹识别 2677.1 结构体 2677.1.1 定义和初始化 2687.1.2 输入和输出 2697.1.3 结构体的运算 2707.2 使用结构体的函数 2717.2.1 结构体作为函数参数
前 言
前 言Engineering Problem Solving with C, Fourth Edition从简单函数估计到非线性方程组求解,工程师需要利用计算机解决各种各样的问题。为完成这些工作,C语言已经成为许多工程师和科学家的选择,不仅是因为它强大的指令和数据结构,而且还因为它很容易被用于实现系统级操作。既然C语言是许多新入行的工程师们在工作中不得不面对的编程语言,那么我们就在此对C语言做一个详细介绍。本书将包括以下内容: 展示一种用于求解工程问题的通用方法。 对C语言基础进行详细介绍,因为C语言已经成为众多工程师和科学家的重要工具。 通过提供多种多样的有趣的工程实例和应用,说明使用C语言求解问题的过程。 为了清晰地表述以上内容,本书第1章介绍了解决工程问题的5步过程,这在本书后面的内容里会一直用到。第2~7章对使用C语言来求解工程问题进行了基本介绍。第8章简单介绍了使用C++进行面向对象的程序设计,因为面向对象程序设计在工程和科学的诸多领域中日渐普及,并且很可能会在以后的工作中遇到。我们用大量工程和科学学科中的例子来贯穿这些章节。对于这些例子的求解方法,则主要是通过使用前述的5步过程和ANSI C(关于ANSI C++会在第8章介绍)来实现。其中ANSI C是由美国国家标准协会设计的标准。 第4版中的变化新版的主题是犯罪现场调查(CSI)。学习犯罪现场调查背后的技术不仅非常有趣,而且还为本书提供了一些很好的编程问题。在本书中,我们将用C语言程序方法解决这些问题。 修改了1.2节,加入了对诸如云计算和内核等当前热点话题的讨论。 增加了彩色插图来定义犯罪现场调查的重要领域——生物特征识别。生物特征识别是指通过物理特征或行为特征来进行身份识别。插图中讨论了指纹、人脸识别、虹膜识别、DNA以及语音识别的技术。 每章都以犯罪现场调查技术的一张配图和相关讨论开始。除第1章以外,后面的每一章里都增加了相关的节以讲解技术的应用。除了讲解C语言的主要功能以外,还将介绍法医人类学、人脸识别与监控视频、虹膜识别、语音分析和语音识别、DNA分析、指纹识别以及手势识别等相关技术。在这些应用部分,我们会设计相应的C程序来解决犯罪现场调查中遇到的技术问题。 基于每个工程应用提出的问题,后面都增加了“修改”练习题以对原问题进行扩展。 根据的C++标准,更新了第8章中关于C++的材料。 预备知识本书假设读者先前没有任何计算机编程经验。对于数学的预备知识是高等代数和三角函数。当然,如果读者使用过其他的计算机语言和软件工具,则可以跳过开头的预备材料以便更快地阅读内容。 课程结构本书可以作为理工类相关专业本科生一个学期的课程教材。其中涉及的基本内容包括数学计算、字符数据、控制结构、函数、数组、指针和结构体等。学习过其他计算机编程语言的学生应该可以在一学期内完成这些内容。如果是在短学时课程中对C语言进行初步学习,可以仅学习书中的必修章节(可选章节在目录中已用“*”标出)。下面介绍使用本书的三种方式及对应的推荐章节: C语言基础。许多基础入门类课程除了向学生介绍编程语言外,还会介绍一些计算机工具。对于这些课程,建议涵盖必修部分的第1~5章。这些内容向学生介绍了C语言的基本功能,通过一定程度的学习之后,学生能够使用数学计算、字符数据、控制结构、函数和数组编写大规模的程序。 使用C语言解决实际问题。如果要通过一学期的课程教会学生掌握C语言,那么建议讲授第1~7章的全部必修章节。这些章节囊括了C语言的所有基本概念,包括数学计算、字符数据、控制结构、函数、数组、指针和结构体。 使用C语言和数值分析方法求解工程问题。书中许多章节都包含了常见的数值分析方法,比如线性插值、线性模型、求多项式的根、解联立方程组等。这些都为需要使用数值分析来完成课程作业的学生提供了强有力的工具。为了达到这样的课程目的,需要学习第1~7章的所有内容。 许多学生在读到有关C++中面向对象特性的附加内容时可能会很感兴趣,这里还是建议首先将第1~7章的所有必修内容学习完毕,后再来了解第8章的内容。 解决问题的方法论对于工程和科学问题的求解是本书不可或缺的重要部分。第1章介绍了利用计算机解决工程问题的5步处理过程。这5步处理过程是本书作者在她学术生涯早期提出的,并且由她班里或使用本书的数以千计的学生成功使用。不仅如此,这个成功的问题求解过程同时也被很多其他作者采纳。这5步分别为: 1)清楚地描述问题。 2)描述输入/输出信息。 3)手动计算一个简单例子。 4)设计算法并将它转换为计算机程序。 5)使用多种数据测试解决方案。 为了不断强化求解问题的能力,每次解决工程问题的过程中,都要清晰地标识出这5步中的每一步。除了经典的5步法之外,书中还使用了分解提纲、伪代码和流程图来完成自顶向下的程序设计并且将算法逐步求精。 工程和科学应用本书的重点是将现实生活中的工程与科学的实例和问题相结合。其中涉及的工程应用包罗万象、种类繁多,下面是书中给出的例子:
评论
还没有评论。