1、如何对 GeoGebra 的列表数据进行排序?于春泉列表(序列)对象是 GeoGebra 中十分重要的离散型数据对象,是非常有用的代数定义方法。排序是处理和使用这些数据的常用方法,笔者对此做些学习和归纳。1. 直接在指令列输入 sort、reverse等命令排序附图 11.1. 一维数值列表升序排列我们先创建数值列表(序列)对象 list1,再从命令输入框输入 Sortlist1命令并确认。然后,利用菜单项“选项代数描述 命令”及“选项 代数描述数值”分别显示运行结果(1.2 及以后各项显示方法相同) 。显然,列表 lists 排列为升序。附图 1.1.1附图 1.1.21.2. 字符串列表按
2、字母顺序排列先创建字符串列表对象,再排序,字符串按字母顺序排列。附图 1.2.1附图 1.2.21.3. 点列表对象按 x 坐标顺序排列先创建点的序列列表对象,再排序。排列结果显示,列表 lists 是按数据点的 x 坐标顺序排序。附图 1.3.1附图 1.3.21.4. 点列表对象按 y 坐标顺序排列如 1.3 所述,对点列表(如 list1)排序,系统默认的排序参数变量是 x 坐标。若要以 y 坐标为排序参数变量,需要用 Zip命令创建有关 y 坐标参数变量的列表(如list2) ,并将其作为命令 Sort , 中的参数,即 Sortlist1,list2。附图 1.4.1附图 1.4.2
3、1.5. 按其他参数变量排序如下所示,我们是想把多项式列表 List1 中幂指数做升序排列。这只需先创建有关多项式幂指数的升序列表,再将其作为 Sort命令的第二个参数,即可排序。附图 1.5.1附图 1.5.21.6. 反序排列先创建列表对象(列表 1=Sequence9) ,再用反序命令(Reverse)排序。附图 1.6.1附图 1.6.2点列表的默认反序排列参数变量也是 x 坐标。如要以 y 坐标为排序参数变量,需要自定义 y 坐标参数变量的列表,先用 Sort , 排序,再用 Reverse命令求其反序(如下表中的 list4) 。附图 1.6.3附图 1.6.42. 利用 Java
4、Script 脚本语言排序Geogebra 编程过程,有时也需要对已有的列表数据或 JavaScript 数组进行排序。2.1. 对已有列表数据排序这种排序比较简单,只需在 JavaScript 对话框中调用 Sort命令即可。例如,我们先创建一个数值滑杆控件 n 和一个列表对象 list0,再用数值 n 乘以 list0,得到列表 list1,最后用脚本语句对 list1 随 n 的变化动态排序。这只需在 n 的属性 脚本对话框中输入下列 JavaScript 语句即可。cmd=”Sortlist1”;ggbApplet.evalComand(“list2=(”+cmd+”)”);我们滑动滑
5、杆控件,便可看到列表 list1 的动态排序运行结果。附图 2.1.1附图 2.1.22.2. JavaScript 数组数据排序为说明这种方法,我们先创建一个“数组排序”按钮,再在其属性(JavaScript 脚本)对话框中输入:var arrls;arrls = 66, 7, 1, 5, 8, 3, 6, 26;ggbApplet.evalCommand(“list0=“+arrls+“);function NumAscSort(a,b)return a-b;function NumDescSort(a,b)return b-a;arrls.sort(NumDescSort);ggbApplet.evalCommand(“list1=“+arrls+“);arrls.sort(NumAscSort);ggbApplet.evalCommand(“list2=“+arrls+“);输入这些代码目的,是创建一个数组,并把其数据按升序和降序排列。运行结果是:附图 2.2.1其中 list0 是创建的 JavaScript 数组列表,list1 是降序排列,list2 是升序排列。当然,排序方法也可选用冒泡、插入、选择等其他排序方法。