首页 program_ch5

program_ch5

举报
开通vip

program_ch5 目录 第五章 自定义函数 ......................................................................................................................... 1 5.1 MATLAB函数简介 .........................................................................................................

program_ch5
目录 第五章 自定义函数 ......................................................................................................................... 1 5.1 MATLAB函数简介 ........................................................................................................... 1 5.2 在MATLAB中传递变量:按值传递机制...................................................................... 6 例 5.3 ................................................................................................................................. 7 5.3 选择性参数 ...................................................................................................................... 14 测试 5.1 ........................................................................................................................... 16 5.4 用全局内存分享数据 ...................................................................................................... 17 例 5.4 ............................................................................................................................... 18 5.5 在函数调用两次之间本地数据的存储 .......................................................................... 22 例 5.5 运行平均数 ......................................................................................................... 22 5.6 函数的函数(function functions), .................................................................................. 26 例 5.6 ............................................................................................................................... 27 5.7 子函数和私有函数 .......................................................................................................... 29 5.8 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf .................................................................................................................................. 29 5.9 练习 .................................................................................................................................. 30 5.1 .................................................................................................................................... 30 5.2 .................................................................................................................................... 30 5.3 .................................................................................................................................... 31 5.4 .................................................................................................................................... 31 5.5 .................................................................................................................................... 31 5.6 .................................................................................................................................... 31 5.7 .................................................................................................................................... 31 5.8 .................................................................................................................................... 31 5.9 .................................................................................................................................... 31 5.10 .................................................................................................................................. 31 5.11 .................................................................................................................................. 31 5.12 .................................................................................................................................. 32 5.13 .................................................................................................................................. 32 5.14 .................................................................................................................................. 32 5.15 .................................................................................................................................. 33 5.16 .................................................................................................................................. 33 5.17 .................................................................................................................................. 33 5.18 .................................................................................................................................. 34 5.19 .................................................................................................................................. 35 5.20 .................................................................................................................................. 35 5.21 .................................................................................................................................. 35 5.22 .................................................................................................................................. 35 5.23 .................................................................................................................................. 36 5.24 .................................................................................................................................. 36 5.25 .................................................................................................................................. 37 5.26 .................................................................................................................................. 37 1 第五章 自定义函数 在第三章中,我们强调了好的编程习惯的重要性。我们进行开发的基本手段是自上而 下的编程方法。在自上而下的编程方法中,它开始于对所要解决问题的精确陈述和定义输 入量和输出量。下一步,我们在大面上进行算法的描述,然后把算法分解成一个一个的子 问题。再然后,程序员把这一个个子问题进行再一次的分解,直到分解成简单而且能够清 晰理解的伪代码。最后把伪代码转化为MATLAB代码。 尽管我们在前面的例子中,按照上面的步骤进行了编程。但是产生的结果在某种程度 上还是受限制的。因为我们必须把每一个子问题产生的MATLAB代码嵌入到一个单独的 大程序中。在嵌入之前我们无法对每一次子问题的代码进行独立地验证和测试。 幸运的是,MATLAB有一个专门的机制,在建立最终的程序之前用于独立地开发与调 试每一个子程序。每一个子程序都可以独立函数的形式进行编程,在这个程序中,每一个 函数都能独立地检测与调试,而不受其他子程序的影响。良好的函数可以大大提高编程的 效率。它的好处如下: 1.子程序的独立检测 每一个子程序都可以当作一个独立的单元来编写。在把子程序联合成一个的大程序之 前,我们必须检测每一个子程序以保证它运转的正确性。这一步就是我们熟知的单元检 测。在最后的程序建立之前,它排除了大量的问题。 2.代码的可复用性 在许多的情况下,一个基本的子程序可应用在程序的许多地方。例如,在一个程序的 许多地方,要求对一系列按由低到高的顺序进行排序。你可以编一个函数进行排序,然后 当再次需要排序时可以调用这个函数。可重用性代码有两大好处:它大大提高了整体编程 效率,它更易于调试,因为上面的排序函数只需要调试一次。 3.远离意外副作用 函数通过输入参数列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf (input argument list)从程序中读取输入值,通过输出参数列表 (output argument list)给程序返回结果。程序中,只有在输入参数列表中的变量才能被函 数利用。函数中,只有输出参数列表中的变量才能被程序利用。这是非常重要的,因为在 一个函数中的突发性编程错误只会发生错误的函数的变量。一旦一个大程序编写并发行, 它还要面临的问题就是维护。程序的维护包括修补错误,修改程序以适应新或未知的环 境。作维护工作的程序员在一般情况下不会是程序的原作者。如果程序编写的不好,改动 一处代码就可能对程序全局产生负面影响。这种情况的发生,可能是因为变量在其他部分 被重新定义或利用。如果程序员改变这个变量,可能会导致后面的程序无法使用。 好的函数的应用可以通过数据隐藏使问题最小化。在主函数中的变量在函数中是不可 见的(除了在输入变量列表中的变量),在主程序中的变量不能被函数任意修改。所以在函 数中改变变量或发生错误不会在程序的其他部分发生意外的副作用。 好的编程习惯 把大的程序分解成函数,有很多的好处,例如,程序部分的独立检测,代码的可复用 性,避免意想不到的错误。 5.1 MATLAB函数简介 到目前为止,我们看到的所有的M文件都是脚本文件。脚本文件只是用于存储 MATLAB语句。当一个脚本文件被执行时,和直接在命令窗口中直接键入MATLAB语句 2 所产生的结果是一样的。脚本文件分享命令窗口中的工作区,所以所有的在脚本文件运行 之前定义的变量都可以在脚本文件中运行,所有在脚本文件中创建的变量在脚本文件运行 之后仍然存在工作区。一个脚本文件没有输入参数,也不返回结果。但是所有脚本文件可 以通过存于工作区中的数据进行交互。 相对地,MATLAB函数是一种特殊形式的M文件,它运行在独立的工作区。它通过 输入参数列表接受输入数据,它通过输出参数列表返回结果给输出参数列表。MATLAB函 数的基本形式如下: function [outarg1, outarg2, ...] = fname(inarg1, inarg2, ...) %H1 comment line %Other comment lines ... (Executable code) ... (return) function语句标志着这个函数的开始。它指定了函数的名称和输入输出列表。输入函数 列表显示在函数名后面的括号中。输出函数列表显示在等号左边的中括号中。(如果只有一 个输出参数,中括号可以省略。) 输入参数列表是名字的列表,这些名字代表从调用者到函数的值。这些名字被称作形 参。当函数被调用时,它们只是从调用者得来实际变量的占位符而已。相似地,输出参数 列表也形参组成,当函数结束运行时,这些形参是返回到调用者的值的占位符。 在一个表达式中,调用一个函数需要用到实参列表。在命令窗口直接(或在脚本文件 中,另一个函数中)键入函数的名字就可以调用这个函数了。当调用一个函数时,第一个 实参的值用在第一个形参的位置,而且其余的形参和实参都一一对应。 函数的执行从函数的顶部开始,结束于 return语句或函数的终点。因为在函数执行到 结尾就会结束,所以 return语句在大部分的程序中没有必要使用。在输出参数列表中每一 个项目都必须出现在 function语句中的左边。当函数返回时,存储于输出函数列表的值就 会返回给调用者,用于下一步的运算。 在一个函数中的初始注释行有特定的目的。在 function语句的第一个行注释被称为 H1 注释行。它应当是对本函数功能的总结。这一行的重要性在于,通过 lookfor命令它能被搜 索到并显示出来。从 H1注释行到第一个空行或第一个可执行性语句可以通过 help命令或 帮助窗口搜索到。它们则应包含如何使用这个函数的简单总结。 下面是一个自定义函数的简单例子。函数 dist2用于计算笛卡尔坐标系中点(x1,y1) 与点(x2,y2)之间的距离。(把以下代码保存成 dist2.m文件) function distance = dist2 (x1, y1, x2, y2) %DIST2 Calculate the distance between two point % Function DIST2 calculates the distance between % two points (x1, y1) and (x2,y2) in a cartesian % coordinate system. % % Calling sequence: % res = dist2(x1, y1, x2, y2) % % Define variables: % x1 --x-position of point 1 % y1 --y-position of point 1 % x2 --x-position of point 2 % y2 --y-position of point 2 % distance --Distance between points % % Record of revisions: % Date Pragrammer Description of change % ======== ========== ================ % 12/15/98 S.J.Chapman Original code % 3 % Calculate distance. distance = sqrt((x2-x1).^2 + (y2-y1).^2); 这个函数有 4个输入参数各和 1个输出参数。一个简单的利用这个函数的例子显示如 下: % Script file: test_dist2.m % % Purpose: % This program test2 function dist2. % % Record of revisions: % Date Pragrammer Description of change % ======== ========== ================ % 12/15/98 S.J.Chapman Original code % % Define variables: % ax --x-position of point a % ay --y-position of point a % bx --x-position of point b % by --x-position of point b % % Get input data. disp('Calculate the distance between two points:'); ax = input ('Enter x value of point a:'); ay = input ('Enter y value of point a:'); bx = input ('Enter x value of point b:'); by = input ('Enter y value of point b:'); % Evaluate function result = dist2 (ax, ay, bx, by); % Write out result. fprintf('The distance between points a and b is %f \n', result); 当脚本文件被执行时,它的结果显示如下: >> test_dist2 Calculate the distance between two points: Enter x value of point a:1 Enter y value of point a:1 Enter x value of point b:4 Enter y value of point b:5 The distance between points a and b is 5.000000 通过手动运算我们可知程序运算的结果是正确的。 函数 dist2也支持MATLAB帮助子系统。如果你键入“help dist2”,将会得到的结果 是: >> help dist2 DIST2 Calculate the distance between two point Function DIST2 calculates the distance between two points (x1, y1) and (x2,y2) in a cartesian coordinate system. Calling sequence: res = dist2(x1, y1, x2, y2) Define variables: x1 --x-position of point 1 y1 --y-position of point 1 4 x2 --x-position of point 2 y2 --y-position of point 2 distance --Distance between points Record of revisions: Date Pragrammer Description of change ======== ========== ================ 12/15/98 S.J.Chapman Original code Calculate distance. 相似地,键入“lookfor dist2”后将会产生如下的结果: >> lookfor dist2 DIST2 Calculate the distance between two point test_dist2.m: % Script file: test_dist2.m >> lookfor distance DIST2 Calculate the distance between two point 为了仔细观察工作区在函数执行前后的变化,我们将在MATLAB调试器中加载函数 dist2和脚本文件 test_dist2。在函数加载前,加载中,加载后设置断点(如图 5.1所示)。 当程序中止在函数调用之前的断点,它的工作区如图 5.2(a)所示。注意工作区中只有 变量 ax,ay,bx和 by。当程序中止在函数调用过程中的断点,它的工作区如图 5.2(b)所 示。注意工作区中只有变量 x1,x2,y1,y2和 distance。当程序中止在函数调用后的断 点,它的工作区如图 5.2(c)所示。注意工作区中原来的变量又重复出现,再加上函数返回 的变量 result。这些图显示了MATLAB调用M文件的过程中工作区的变化。 5 图 5.1 M 文件和函数 dist2 将会被加载到调试器,在函数调用前,调用过程中,调用后设 置合适断点 6 图 5.2(a) 图 5.2(b) 图 5.2(c) 图 5.2(a)在函数调用之前的工作区(b)函数调用过程中的工作区(c)函数调用之后的 工作区 5.2 在 MATLAB中传递变量:按值传递机制 maltab程序与它们函数之间的交互用是按值传递机制。当一个函数调用发生时, MATLAB将会复制实参生成一个副本,然后把它们传递给函数。这次复制是非常重要的, 因为它意味着虽然函数修改了输入参数,但它并没有影响到调用者的原值。这个特性防止 7 了因函数修改变量而导致的意想不到的严重错误。 这一特性将在下面的函数中得到说明。这个函数中有两个输入参数:a和 b。在它的计 算中,它修改了变量的值: function out = sample(a, b) fprintf('In Sample: a = %f, b = %f %f\n',a,b); a = b(1) + 2*a; b = a .* b; out = a + b(1); fprintf('In Sample: a = %f, b = %f %f \n',a,b); 下面是调用这个函数的检测程序: a = 2; b = [6 4]; fprintf('Before sample: a = %f, b = %f %f\n', a, b); out = sample(a, b); fprintf('After sample: a = %f, b = %f %f\n',a,b); fprintf('After sample: out = %f \n', out); 当这个程序被执行将产生如下的结果: >> test_sample Before sample: a = 2.000000, b = 6.000000 4.000000 In Sample: a = 2.000000, b = 6.000000 4.000000 In Sample: a = 10.000000, b = 60.000000 40.000000 After sample: a = 2.000000, b = 6.000000 4.000000 After sample: out = 70.000000 注意,a和 b在函数 sample内都改变了,但这些改变对调用函数中的值并没有任何的 影响。 C语言的使用者对按值传递机制比较熟悉,因为 C应用它把标量值传递给函数。尽管 C语言不能用按值传递机制传递数组,所以对在 C语言函数中的形参数组进行意想不到的 修改将会导致在调用程序时产生错误。MATLAB改进了按值传递机制,既适于标量,又适 应于数组(在MATLAB中参数传递过程中的执行要远比上面讨论中指出的要复杂的多。 正如上面指出的,与按值传递相联系的复制将花去大量的时间,但是保护程序以至于不产 生错误。实际上,MATLAB用了两种方法,它先对函数的每一个参数进行分析,确定函数 的那些参数进行了修改。如果函数没有修改这个参数,它将不会对此参数进行复制,而是 简单地指向程序外面的外面的变量,如果函数修改了这个参数,那么这个复制就会被执 行)。 图 5.3 在笛卡尔平面内的一点 P,既可以用直角坐标系来描述,又可以有极坐标来描述 例 5.3 直角坐标与极坐标的转换 在笛卡尔平面上的一点的坐标既可以通过直角坐标(x,y)来描述,也可以通过极坐 标(r,θ)来描述,如图 5.3所示。两套坐标体系的关系如下式所示: x = r cosθ (5.1) y = r sinθ (5.2) 22 yxr += (5.3) x y P x y θ r O 8 x y1tan −=θ (5.4) 编写两个函数 rect2polar和 polar2rect,用来实现两坐标体系的转换。其中 θ单位于为 度。 答案: 我们现在应用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的问题解决方法来创建函数。注意 matab的 trigonometric(三角)函数 的参数的单位是弧度。所以在解决这个问题时,我们必须把度转化为弧度,反之亦然。基 本的度与弧度的转换关系如下: 180o = π radians (5.5) 1.陈述问题对这个问题的简单陈述为: 编写一个函数,把直角坐标系描的笛卡尔平面内的一个坐标转化对应的极坐标,角 θ 的单位为度。反之,把极坐标系内的一个坐标转化对直角坐标。角 θ的单位也为度。 2.定义输入输出量 函数 rect2polar的输入量是直角坐标系(x,y)中的一个点。这个函数的输出量是极坐 标(r,θ)中的一个点。函数 polar2rect的输入量是极坐标(r,θ)中的一个点。此函数的 输出量是直角坐标系(x,y)中的一个点。 3.定义算法 这些函数是非常简单的,所以我们能直接的写出它们的伪代码。函数 polar2rect的伪代 码如下: x ← r * cos(theta * pi/180) y ← r * sin(theta * pi/180) 函数 rect2polar的伪代码将会用到函数 atan2,因为函数的取值范围覆盖了笛卡尔平面 的所有象限。(通过MATLAB的帮助系统查找这个函数。) 4.把算法转化为MATLAB语句 函数 polar2rect的MATLAB代码如下所示 function [x, y] = polar2rect(r, theta) %POLAR2RECT Convert rectangular to polar coordinates % Function POLAR2RECT accepts the polar coordinates % (r, theta), where theta is expressed in degrees, % and converts them into the rectangular coordinates (x, y) % % Calling sequence: % [x, y] = polar2rect(r, theta) % Define variables: % r --Length of polar vector % theta --Angle of vector in degrees % x --x-position of point % y --y-position of point % Record of revisions: % Date Programmer Description of change % ====== =========== ================ % 09/19/00 S.J.Chapman Original code x = r * cos(theta * pi/180); y = r * sin(theta * pi/180); 函数 rect2polar的MATLAB代码如下所示 function [r, theta] = rect2polar(x, y) %RECT2POLAR Convert rectangular to polar coordinates % Function RECT2POLAR accept the rectangular coordinates % (x, y) and converts them into the polar coordinates % (r, theta), where theta is expressed in degrees. % 9 % Calling sequence: % [r, theta] = rect2polar(x, y) % % Define variables: % r --Length of polar vector % theta --Angle of vector in degrees % x --x-position of point % y --y-position of point % % Record of revisions: % Date Programmer Descriptoin of change % ==== ========= =============== % 09/19/00 S.J.Chapman Original code r = sqrt( x .^2 + y .^2); theta = 180/pi * atan2(y, x); 注意这两个函数中都包含了帮助信息,所以在应用MATLAB的帮助子系统中,或使 用 lookfor命令中它们将正常的运作。 5.检测程序 为了检测这些程序,我们将在MATLAB命令窗口中直接运行它们。我们将用边长分 别为 3,4,5的三角进行检测,这个三角在初中我们就非常的熟悉了。在这个三角形中最 小的角约为 36。87度。我们将在四个象限对函数进行检测,以保证在任何情况下转换都是 正确的。 >> [r, theta]=rect2polar(4,3) r = 5 theta = 36.8699 >> [r, theta]=rect2polar(-4,3) r = 5 theta = 143.1301 >> [r, theta]=rect2polar(-4,-3) r = 5 theta = -143.1301 >> [r, theta]=rect2polar(4,-3) r = 5 theta = -36.8699 >> [x, y]= polar2rect(5,36.8699) x = 4.0000 y = 3.0000 >> [x, y]= polar2rect(5,-143.1301) x = -4.0000 y = -3.0000 >> [x, y]= polar2rect(5,143.1301) 10 x = -4.0000 y = 3.0000 >> [x, y]= polar2rect(5,-36.8699) x = 4.0000 y = -3.0000 在笛卡尔坐标的四个象限内得到的结果均是正确的。 例 5.2 数据排序在许多的科研和工程应用中,随机输入一组数据并对它进行由低到高排序或 由高到低进行排序是十分必要的。假设你是一个动物学家,你正在研究大量的动物,并想 要鉴定这些动物最大的 5%。 解决这个问题的最直接的方法是对这些动物的大小按照降序进行排列,取其前 5%。对 数据进行升序或降序排列似乎是一件非常容易的工作。毕竟,我们经常作这样的事。有一 个简单的例子,把数据(10,3,6,4,9)按升序排列成(3,4,6,9,10)。我们应当怎 样做呢。我们首先应当浏览整个输入数据列表(10,3,6,4,9)找出其中的最小值 (3),然后浏览剩下的输入数据(10,6,4,9)并找到下一个最小值(4),然后继续重复 上面的步骤,直到所有的列表中的所有数都能排完。 实际上,排序是一个非常困难的工作。当值的个数增加时,用上面简单的排序方法进 行运算所消耗的时间将会迅速增加,因为每排一个数就要浏览一个遍输入值。对于大的数 据集合,这个方法因太耗时,而不用。更糟糕的是,如果有大量的数据占有计算机的大部 分内存我们将如何排序。开发大数据集合的高效排序技术是一个相当活跃的研究领域,它 已经成为了一个新的科目。 在这个例子中,我们将尽可能简单的算法来说明排序的内容。这个最简单的算法叫做 选择性排序(selection sort)。它只是对应上面描述方法的计算机执行。选择性排序的基本 算法如下: 1.浏览被排序数的列表,并找出其中的最小值。把最小值与排在最前面的数进行交 换。如要排在最前面的数就是这个数表最小值,什么也不用做。 2.从这个数据列表的第二个数开始浏览找到第二个最小的数。把这个数与当前排在第 二个数进行交换。如果当前排在第二位的数就是下一个最小值,那么什么也不用做。 3.从数据列表的第三个数开始找到第三个最小的数。把这个数与当前排在第三个数进 行交换。如果当前排在第三位的数就是第三个最小值,那么什么也不用做。 4.重复以上步骤直至最后一位置排完。当最后一个位置排完后,排序结束。 注意:如果我们要对 N个数进行排序,这个排序算法要进行 N-1次浏览才能完成排序。 这个步骤的说明如图 5.4所示。因为有 5个数进行排序,所以要对数据进行 4次浏 览。首先对整个数据列表进行浏览,得到最小值 3,把 3置于第一位,故与 10进行交换。 从第二位开始浏览,得到第二个最小值 4,与 10交换。从第三位进行浏览,得到最小值 6,6恰在第三位上,不用交换。从第四位开始浏览,得到最小值 9,与排在第 4位的 10交 换。排序结束。 性能提示 选择性编程算法是一种极易理解的编程算法,但它的效率是极低的。我们绝不能用它 进行大数据集合的排序(例如含有 1000 个元素的数组)。这个几年里,计算机专家已经发 展了许多高效的排序算法。内置于 MATLAB 的 sort 和 sortrows 函数是非常高效的,在实际 工作中我们应当应用这些函数。 11 图 5.4 选择性排序的一个简单例子。 我们将开发一个程序,读取从命令窗口读取一个数据集,对它进行升序排列,并出排 序后的结果。这个排序将会由独立的自定义函数来完成。 答案: 这个程序必须提示使用者提供输入数据,对其进行排序,并输出排序结要。这个程序 的设计过程如下: 1.陈述问题我们刚才没有指定要排序的数据类型。如果数据是数字,那么问题的陈述 如下。开发一个程序,它能够读取在命令窗口中输入的任意类型的数字,用独立的自定义 函数对读取的值进行排序,并在命令窗口写出排序结果。 2.定义输入输出量这个程序的输入值是在命令窗口键入的数字值。这个程序的输出量 是写在命令窗口中的排序结果。 3.设计算法这个问题可以分解为三大步: Read the input data into an array Sort the data in ascending order Write the sorted data 第一大步是读取数据。我们必须提示使用者输入输入数据的个数,然后读取数据。因 为我们知道所要读取的数的确切个数,所以可以用 for循环主读取合适的数据。它的伪代 码如下: Prompt user for the number of data values Read the number of data values Preallocate an input array for ii = 1:number of values Prompt for next value Read value end 下一步,我们必须要用独立的函数对数据进行排序。我们需要对数据进行 naval-1次浏 览,每一次找出一个最小值。我们将用一个指针来寻找每一次浏览的最小值。一量最小值 被找到,如果它不在列表的顶端,它就与列表顶端的元素进行交换。伪代码如下: for ii = 1:nvals -1 % Find the minimum value in a(ii) through a(nvals) iptr ← ii for jj = ii +1 to nvals if a(jj) < a(iptr) iptr ← a(iptr) end end 12 % iptr now points to the min value, so swap a(iptr) % with a(ii) if iptr ~= ii. if ii ~= iptr temp ← a(ii) a(ii) ← a(iptr) a(iptr) ← temp end end 最后一步是输出排序结果。这个步骤的伪代码不需要重复。最终的伪代码是这三大步 伪代码的联合。 4.把伪代码转化为MATLAB语言选择性排序的MATLAB代码如下所示: function out = ssort(a) %SSORT Selection sort data in ascending order % Function SSORT sorts a numeric data set into % ascending order. Note that the selection sort % is relatively inefficient. DO NOT USE THIS % FUNCTION FOR LARGE DATA SETS. Use MATLAB's % "sort" function instead. % Define variables: % a --Input array to sort % ii --Index variable % iptr --Pointer to min value % jj --Index variable % nvals --Number of values in "a" % out --Sorted output array % temp --Temp variable for swapping % Record of revisions: % Date Programmer Description of change % ==== ========== ===================== % 12/19/98 S. J. Chapman Original code % Get the length of the array to sort nvals = size(a,2); % Sort the input array for ii = 1:nvals-1 % Find the minimum value in a(ii) through a(n) iptr = ii; for jj = ii+1:nvals if a(jj) < a(iptr) iptr = jj; end end % iptr now points to the minimum value, so swap a(iptr) % with a(ii) if ii ~= iptr. if ii ~= iptr temp = a(ii); a(ii) = a(iptr); a(iptr) = temp; end end % Pass data back to caller out = a; 调用选择性排序函数的程序如下: % Script file: test_ssort.m % % Purpose: 13 % To read in an input data set, sort it into ascending % order using the selection sort algorithm, and to % write the sorted data to the Command window. This % program calls function "ssort" to do the actual % sorting. % % Record of revisions: % Date Programmer Description of change % ==== ========== ===================== % 12/19/98 S. J. Chapman Original code % % Define variables: % array --Input data array % ii --Index variable % nvals --Numberof input values % sorted --Sorted
本文档为【program_ch5】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_790779
暂无简介~
格式:pdf
大小:910KB
软件:PDF阅读器
页数:39
分类:理学
上传时间:2011-07-22
浏览量:25