第二章 测量程序基本算法.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 测量程序基本算法 本章重点 算法的概念及特性,数据文件的建立、读写,矩阵运算,排序算法,坐标方位角的计算 2.1 算法(Algorithm)及其表示 2.1.1 概念 广义地讲:算法是为完成一项任务所应尊循的一步一步的、规则的、精确的、无歧异的描述,它的总步数是有限的。 狭义地讲:算法是解决一个问题采取的方法和步骤的描述。 例1:找出三个数中的最大的数。 假如三个数已存放在数组a(2)中了,用Max存储最大的数。 算法设计如下: 1)比较a(0)与a(1),将大的数放到Max中; 2)比较Max与a(2),若Max小于a(2),将a(2)赋值给Max。 例2:输入10个数,输出其中最大的数。 算法设计如下: 1)输入一个数,存入变量A中,将记录数据个数的变量N赋值为1,即N=1; 2)将A存入表示最大值的变量Max中,即Max=A; 3)再输入一个值给A,如果AMax 则 Max=A, 否则Max不变; 4)让记录数据个数的变量增加1,即N=N+1; 5)判断N是否小于等于10,若成立则转到第(3)步执行,否则转到第(6)步; 6)输出max。 2.1.2 算法的特性 有穷性 对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每一步骤都能在有限时间内完成。 确定性 对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明白其含义以及如何执行。 可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现它。 有输入 作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已经被嵌入算法中。 有输出 它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。 2.1.3算法设计的原则 设计算法时,通常应考虑达到以下目标: 1、正确性 对算法是否“正确”的理解可以有以下四个层次: a.程序中不含语法错误; b.程序对于几组输入数据能够得到出满足要求的结果; c.程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果; d.程序对于一切合法的输入数据都能得出满足要求的结果; 2、可读性 算法主要是为了人的阅读与交流,其次才是为计算机执行。因此算法应该易于人的理解;另一方面,晦涩难度的程序易于隐藏较多错误而难以调试; 3、健壮性 当输入的数据非法时,算法应当恰当地作出反应或进行相应处理,而不是产生莫名其妙的输出结果。并且,处理出错的方法不应是中断程序的执行,而应是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理。 4、高效率与低存储量需求 通常,算法的效率指的是算法执行时间;存储量指的是算法执行过程中所需的最大存储空间。两者都与问题的规模有关。 2.1.4 算法的表示 1)用自然语言及伪代码来表示 自然语言:是指人们日常使用的语言,可以是汉语、英语或其它语言。 伪代码:是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。 例1用伪代码表示 Begin 算法开始 If a(0)a(1) 则 a(0)-Max 否则 a(1)-Max If a(2)Max 则 a(2)-Max End 算法结束 2)用传统流程图来表示 1、传统流程中的基本符号 2、三种基本结构的表示 循环结构 三种基本结构的特点: 只有一个入口 只有一个出口 不存在死语句 不存在死循环 3)用N—S流程图表示 将全部算法写在一个矩形框内,在矩形内还可包含其它从属于它的框。 三种基本结构的N—S图表示: 循环结构 2.2 测量程序中几种常用算法 2.2.1 数据文件操作(读写文件) 数据在计算机里的存储格式五花八门。如Image,它可以以Bmp、Jpeg、Tif等格式来存储;又如对于GPS数据文件,不同的仪器型号,它的数据记录格式一般是不一样的。 测量程序处理的对象主要为野外采集原始数据。(外业观测数据、已知数据以及网形数据)。计算的开始、结束以及计算过程中,会涉及数据的读取、存储(中间计算结果)以及输出(成果)。那么我们进行程序设计时以哪种形式的文件来存储数据呢?数据在存储到文件中又怎样来组织呢? 2.2.2 矩阵运算 对矩阵运算进行编程实现时,一般需在内存中申请一块连续的空间来存储矩阵中各个元素。在C++语言中,可以定义一个指针来指向内存中所申请的

文档评论(0)

fc86033 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档