- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 程序数据的结构、组织和管理;4.1 程序设计与算法;算法实例:求两个正整数的最大公约数的Euclidean算法;算法E(欧几里得算法)给定两个正整数 m 和 n,求出它们的最大公因子。;算法四元组(Q,I,Ω,F)一个算法应该在有限的步骤之后终止;欧几里得(Euclidean)算法的四元表示 ;优化后的欧几里得算法。;算法的特性:
输入(Input): 一个算法必须有 0 个或者多个输入
输出(Output):一个算法必须有 1 个或者多个输出。
确定性(Definiteness)一个算法的每个步骤必须精确的定义
有穷性(Finiteness)一个算法应该在有限的步骤之后必然要终止
有效性(Effectiveness )或能行性: 指它的所有运算必须是充分基本的.;;流程图;N-S图;伪代码 已知a变量放了一个值,b变量中放了另一个值,要求交换两个变量的值。;程序设计语言;算法的设计与评价
正确性
可读性
健壮性
高效性
常见的算法设计方法
穷举法
回溯法
递推法
递归
分治;什么是程序
在低级语言中,程序表现为一组指令和有关数据
在高级语言中,程序一般表现为一组说明和语句
程序的特征:
利用计算机解决实际问题的过程
明确问题的要求
建立数学模型
算法设计
编写程序
调试程序
运行及结果分析;程序设计语言的基本功能
引入标识符, 表示变量或常量
记住某些值, 用变量存储
执行一些运算, 表达式,算术/逻辑/关系/字串
进行信息传输, I/O
;程序设计语言的发展
面向机器的语言
机器语言:所有的数据、指令、符号和信息者是以二进制数的形式来表示的
如:1100 0110 表示加法运算
1101 0110 表示减法运算
汇编语言(符号语言):
用 ADD 代替1100 0110
用 SUB 代替1101 0110
由汇编程序进行这些代替
面向过程语言
侧重于问处理题过程,语言与具体的机器无关,与机器的具体实现无关;典型的面向过程语言:;4.1.2 程序设计的语言;程序设计语言的分类
按照语言的级别分:低级语言、高级语言
按照用途划分:通用语言、专用语言
按照语言的成分性质划分:顺序语言、并发语言、分布式语言
按照使用者的角度:面向机器的语言、面向过程的语言、面向对象的语言、可视化语言
按照使用方式划分:交互式语言、非交互式语言;面向对象的语言
C++、Delphi、Objective-C等
Smalltalk, Eiffel, CLOS等是纯OO
可视化语言
Visual Basic、 Visual Foxpro、Visual C++、 Visual Java等,用集成环境,包含编辑器,调试、编译、运行等工具,并通过直观的操作方式即可完成界面的设计工作——可视化编程(界面无需编程)。
可视化编程语言的特点主要表现在两个方面:
一是基于面向对象的思想
二是程序开发过程的步骤是:首先进行界面的绘制工作,然后基于事件编写程序代码。 ;程序设计语言提供的基本设施
数据类型
简单类型:整型、实型、布尔型、字符型、枚举型
结构类型:数组、字符串、记录、结构体、文件、日期
指针类型:
各种语句
基本语句:赋值语句、输入、输出语句等
选择结构语句:if…then、if…then…else、switch等
循环语句: for循环、当型循环(while循环)、直到型循环(do…while循环)
其他设施,如函数定义,过程定义;语言的翻译
翻译程序指的是这样一个程序,它能够把某一种语言程序(源语言程序)改造成另一种语言程序(目标语言程序),而两者在逻辑上是等价的
汇编程序:源语言是汇编语言,目标语言是机器语言,则翻译程序称为汇编程序
编译程序:源语言是高级语言,目标语言是机器语言/汇编语言,则翻译程序称为编译程序
解释程序:解释程序是另一类翻译程序,它同时处理源程序和数据,对源程序解释执行而不生成目标程序
;4.1.2 程序设计的语言;词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(也称单词符号,或简称符号)。在词法分析阶段工作所依循的是语言的词法规则.描述词法规则的有效工具是正规式和有限自动机 。实际编译器中的词法规则都是通过非常简单的所谓“正则语法”表达式描述的,
语法分析: 在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(语法范畴),如“短语”,“句子”, “子句”,“程序段”等.语法规则通常用较为简单的“上下文无关文法”描述.
;语义分析与中间代码的产生:这一阶段包括两方面的工作:首先对各种语法范畴进行静态语义检查,如果正确则进行另一方面的工作,即进行中间代码的翻译.通常使用属性文法描述语义规则所谓“中间代码”是一
文档评论(0)