一、 数组的定义
DIMENTION 数组名(数值表达式1,[数组表达式2...]) 定义后单元默认值为.F. 二、一维数组
1、定义一个一维数组:
dime a(10) ---定义一个10数组,且所有单元默认值为.F. 2、赋值: 例如: a=''
a(1)=20
a(3)={^2002/09/23} a(7)=.T. ....
循环赋值: dime a(10) i=1
do while i<=10
input '请输入数:' to a(i) i=i+1 enddo 或者是: for i=1 to 10
input '请输入数:' to a(i) Endfor
3、显示值: for i=1 to 10 a(i) endfor
使用do while大家思考 方法2:list memo like a 二、二维数组 例如:dime s(5,4) 1、赋值: 例如: s=0 s(3,4)=.t.
s(12)=‘AYA' && 相当于S(3,4)=‘AYA' 2、循环赋值 for i=1 to 5 for j=1 to 4
input '输入值:' to a(i,j) endfor endfor
3、显示值: for i=1 to 5
for j=1 to 4 a(i,j)+space(2) endfor endfor
三、举例
输入10 个数,将它们按照从大到小的顺序排列 算法研究:
方法1:连续的两两比较
方法2:将每个数和最后一个数比较 程序 clear
dime a(10) '输入10个数: ' for i=1 to 10
input \请输入: \ endfor for i=1 to 9 for j=1 to i
if a(j)>a(i+1) t=a(i+1) a(i+1)=a(j) a(j)=t endif endfor endfor
list memo like a
例2:将1、2、3、…10顺序输入一维数组,实现顺序输出和逆序输出。DIME A(10) FOR I=1 TO 10
A(I)=I ENDFOR
FOR I=1 TO 10
A(I) ENDFOR
FOR J=10 TO 1 STEP –1
A(J) ENDFOR
例3:排序问题 (要求:不一定能编写,但是重点地方能填空,基本方法要能理解)
输入5 个数,将它们按照从大到小的顺序排列 算法: (软件技术支持 第263页) 稳定的算法:
插入法排序(将一个数据插入到已经排列好的序列中) 冒泡排序(比较每次产生最大数) 归并排序(两两合并 [ ] [ ] [ ] [ ] ) 不稳定的算法:(相同数据位置可能交换)
选择排序(通过交换位置,最小的放在第一,次小的第二……) 实现算法:
冒泡排序
n个数要比较n-1趟
(2) 每趟要比较的次数为 : n-趟数
(3)每次比较: 如果当前数 a(j)大于后一个数 a(j+1) 那么就交换,否则不交换 clear dime a(5) '输入5个数: ' for i=1 to 5
input \请输入: \ endfor
for i=1 to 4 && 外循环是行(趟数), 内循环是列(比较次数) for j=1 to 5-I if a(j)>a(j+1)
t=a(j+1)
a(j+1)=a(j)
a(j)=t
endif endfor endfor
FOR I=1 TO 5 A(I) ENDFOR
对N个数排序(从小到大) clear
input \请问你想对多少个数进行排序 \ dime a(n)
'请输入',n,'个数: ' for i=1 to n
input \请输入: \ endfor
for i=1 to n-1
for j=1 to n-i
if a(j)>a(j+1)
t=a(j+1)
a(j+1)=a(j) a(j)=t
endif
endfor endfor
算法二:每次比较将当前数和最后一个数据比
clear input “请问你想对多少个数进行排序 ” to n dime a(n)
'请输入',n,'个数: ' for i=1 to n
input \请输入: \ endfor
for i=1 to n-1
for j=1 to n-i
if a(j)>a(n-i+1)
t= a(n-i+1)
a(n-i+1)=a(j) a(j)=t
endif endfor endfor
list memo like a 算法三: clear
input “请问你想对多少个数进行排序 ” to n dime a(n)
'请输入',n,'个数: ' for i=1 to n
input \请输入: \ endfor
for i=1 to n-1
for j=1 to n-i