您的当前位置:首页正文

2011.4基础班笔记-整理5

2022-11-21 来源:星星旅游
数组 成绩 0-100 共性

X y z I j k…普通变量-不需要定义,直接使用 1.定义数组

Dime 数组名(总个数) Dime a(50) Dime a(1000) 空

A(i) i=1 to 50 a(1) a(2) … A(50) 2.初始化 1)input For i=1 to 50

Input “请输入成绩” to a(i) Endfor

2)rand():0-1

随机产生30个60-100整数-成绩,平均分 Int(rand()*(终值-初值+1)+初值) Dime a(30) For i=1 to 30

A(i)=int(rand()*(100-60+1)+60)

endfor

3.输出 例子 1. 将一个一维数组进行逆序存放。

1) 随机产生n个两位的整数,n由键盘输入 2) 将这组数据逆序存放, 3) 并显示逆序存放后的结果。本身10-99 Input “n=” to n

Dime a(n) -1 定义 for i=1 to n

a(i)=int(rand()*(99-10+1)+10) endfor 2. 初始化 for i=1 to int(n/2) t=a(i)

a(i)= a((n+1)-i) a((n+1)-i)=t

endfor 3.具体操作 for i=1 to n ?a(i)

Endfor 4. 输出结果 return n=5

5/2=int(2.5) a(1) a(2) a(3) 10 45 87 35 66 90 6 a(i)-a((6+1)-i) i=1,2,3 x,y t=x x=y y=t dime a(6) for i= 1 to 6 a(i)=int(rand()*(99-10+1)+10 endfor for i=1 to 3 t=a(i) a(i)=a((6+1)-i) a((6+1)-i)=t endfor for i=1 to 6 ?a(i) Endfor Return 回文数

a(4) 90 87 a(5) 66 45 a(6) 35 10

7-i a(1)-a(6) 1+6=7 6=7-1 a(2)-a(5) 2+5=7 5=7-2 a(3)-a(4) 3+4=7 4=7-3

6/2=3 循环

For i=1 to 3

A(i)-a((6+1)-i) i=1,2,3 T=a(i)

A(i)=a((6+1)-i) a((6+1)-i)=t Endfor x-y

A(1)-a(6) 1+6=7 6=7-1 7-i A(2)-a(5) 2+5=7 5=7-2 A(3)-a(4) 3+4=7 4=7-3

30 最大值和下标

随机产生10个60-100的整数,找出其中的最大值和下标。 Dime a(10) for i=1 to 10

A(i)=int(rand()*(100-60+1)+60) endfor

从键盘输入10个60-100的整数,找出其中的最大值和下标。 Dime a(10) for i=1 to 10

Input “” to a(i) endfor 1. 定义数组 2. 初始化 1) Input-键盘 2) 随机函数-rand()

Dime a(10) For i=1 to 10

A(i)=int(rand()*(100-60+1)+60) endfor M=a(1) P=1

For i=2 to 10 If mM=a(i) P=i

Endif Endfor

?”最大值:”,m

?”下标:”,p Return a(1) a(2) a(3) a(4) a(5) 10 45 87 90 66 M=90 P=4 1. 第一个元素赋给m,第一个元素的下标赋给p 2. 依次让m和后续元素比较,只要后面的元素大于m,就将后续元素的值赋给m,其下标赋给p 3. 比较结束,最大值-m,下标-p m=A(1) p=1

for i=2 to 5

if mm=a(i) p=i

endif endfor ?m ?p

X y z 从键盘

随机产生20个60-100的整数,并找出其中最接*均值的数。最小值 Dime a(20) S=0

For i=1 to 20 A(i)=… S=s+a(i) Endfor Ave=s/20

M=abs(a(1)-ave) P=1

For i=2 to 20

If m>abs(a(i)-ave) then

M=abs(a(i)-ave) P=i

Endif Endfor ?a(p) Return

A(5)=64.01-64=0.01

Abs(a(i)-ave) m=0.01 p=5 a(5) abs(a(1)-ave) abs(a(2)-ave) …

abs(a(20)-ave)

dime a(20) for i=1 to 20

a(i)=int(rand()*(100-60+1)+60) endfor

for i=1 to 19 for j=1 to 20-i

if a(j)>a(j+1) then t=a(j)

a(j)=a(j+1) a(j+1)=t endif

endfor endfor

for i=1 to 20 ?a(i) Endfor Return

找出其中最接*均值的数。

算法:冒泡 A(1) 9 7 A(2) 7 2 2 6 2 3 2 3 2 3 A(3) 2 6 3 6 A(4) 6 3 7 A(5) 3 9 1轮 2轮 3轮 10 1)10个元素,9 N

For i=1 to 9 -轮数

For J=1 to 10-i -两两数据比较

If a(j)>a(j+1) then 前一个数据大于后一个数据,交换 T=a(j)

A(j)=a(j+1) A(j+1)=t Endif

Endfor endfor

I=1轮 a(5), a(1)-a(4)

A(j)-a(j+1) j=1,2,3,4 1+4=5 4=5-i A(1)-a(2) A(2)-a(3) A(3)-a(4)

A(4)-a(5) I=2轮 a(1)-a(4)

A(j)-a(j+1) j=1,2,3 2+3=5 3=5-i a(1)-a(2)

4轮 6 7 9 a(2)-a(3)

a(3)-a(4) a(4) 剩余 a(1)-a(3) i=3轮 (1)-a(3)

a(j)-a(j+1) j=1,2 3+2=5 2=5-i A(1)-a(2)

A(2)-a(3) a(3) 剩余a(1)-a(2) I=4轮a(1)-a(2)

A(j)-a(j+1) j=1 4+1=5 1=5-i A(1)-a(2) a(2) 剩余a(1) 1. 5(n)个元素,比较4(n-1)轮 i=1 to n-1 2. 每一轮两两数据进行比较,大的数据沉下来, J=1 to n-i 3. 每一轮排序结束,剩余元素中的最大数据沉下来

因篇幅问题不能全部显示,请点此查看更多更全内容