- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CChapter4_computation
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第4章计算 Bjarne Stroustrup /Programming * 摘要 这一讲,我将讲解计算的基础。尤其是,我们将讨论表达式、如何在一组值上重复某种计算(循环)、如何根据条件在两种动作之间选择(选择). 我还将展示如何利用函数对一个子计算过程命名,这样做同时也得到了一个独立的模块。为了能够完成更实用的计算,我还将介绍vector 类型以存取一个值的序列。 选择、循环、函数、向量类型(vector) Stroustrup/Programming * 总览 计算 什么是可计算的? 如何最佳地计算它? 抽象、算法、试探法、数据结构 语言的构造和概念 顺序执行 表达式和语句 选择 循环 函数 向量 Stroustrup/Programming * 这些内容的大多数,你已经知道 例如: 你知道如何做算术运算 d = a+b*c 你知道如何做选择 “if this is true, do that; otherwise do something else ” 你知道如何“循环” “do this until you are finished” “do that 100 times” 你知道如何用函数 “go ask Joe and bring back the answer” “hey Joe, calculate this for me and send me the answer” 今天我演示给你们的大多数只是给你们已经知道的内容定义词汇表和句法。 Stroustrup/Programming * Computation Input: 来自键盘、文件、其它输入设备、其它程序、程序的其他部分 Computation – 我们的程序对输入做什么处理以产生输出 Output: 到显示器、文件、其它输出设备、其它程序、程序的其它部分 (input) data (output) data data Code, often messy, often a lot of code Stroustrup/Programming * 计算 我们的工作是表达计算 正确地 简单地 高效地 我们的基本手段被称作“分而治之”(Divide and Conque it) 将大的复杂的计算分解为许多小的简单的计算(化整为零) 另一个基本手段是抽象 (Abstraction) 提供一个高层概念以隐藏细节 数据的组织经常是好的代码的关键 输入/输出的格式 协议 数据结构 注意我们对结构和组织的强调 仅仅通过写很多语句,你并不能学会写出漂亮的代码 Stroustrup/Programming * 语言特性 每一个语言特性之所以存在是为了表达一个基础的概念 例如 + : 加法 * : 乘法 if (expression) statement else statement ; 选择结构 while (expression) statement ; 循环结构 f(x); 函数/操作 … 我们组合这些语言特性来编写程序 Stroustrup/Programming * 表达式 // 计算面积: int length = 20; // 最简单的表达式: 一个字面值 (这里是 20) // (这里它用以去初始化一个变量) int width = 40; int area = length*width; // 一个乘法 int average = (length+width)/2; // 加法和除法 应用通常的优先级规则: a*b+c/d 指 (a*b)+(c/d) 而不是 a*(b+c)/d. 如果有疑虑,请用括号;如果很复杂,也请用括号。 不要写出过度复杂的表达式: a*b+c/d*(e-f/g)/h+7 // 太复杂了 选择望文生义的名字 Stroustrup/Programming * 表达式 表达式由操作符和操作数构成 操作符定义了做什么 操作数定义了操作符要操作的数据 布尔类型: bool (true and false) Equality operators: = = (equal), != (not equal) Logical operators: (and), || (or), ! (not) Relational operators: (less than), (greater than), =, = 字符类型: char (e.g., a, 7, and @) 整型: short, int, long arithmetic operators: +
您可能关注的文档
最近下载
- 2025-2030中国牛仔服装行业市场深度发展趋势与前景展望战略研究报告.docx
- 八大特殊作业安全管理培训(最新版课件).pptx
- 酒店管理专业人才需求调研报告.doc VIP
- 个人业绩相关信息采集表含政治表现、最满意、主要特点、不足.pdf VIP
- 新22J09 附属建筑-标准图集.docx VIP
- 世界各国语言.doc VIP
- 《新媒体传播》课件.ppt VIP
- 2025年安全员c2考试试题库(答案+解析).docx
- GBT45001-2020SO45001:2018 职业健康安全管理体系要求及使用指南.pdf VIP
- 部编版六年级上册道德与法治教案:感受生活中的法律知识.docx VIP
文档评论(0)