給定一字符串(全部由小寫字母組成),有n個(gè)字符(1≤n≤100),將每個(gè)字符存入到數(shù)組a中,有以下兩種操作:
操作1:在文本框中分別輸入L,R,T(1≤L≤R≤n),對(duì)數(shù)組下標(biāo)為L(zhǎng)到R之內(nèi)(包含L和R)的字符做相應(yīng)的字符加密操作(1≤T≤100)。
操作2:在文本框中輸入M(1≤M≤n),在標(biāo)簽中輸出a(M)的值。
為了提高算法的效率,小明設(shè)計(jì)了如下算法,以n=10為例,將n個(gè)元素依次分[
]段([
]表示對(duì)
向下取整),每段的元素個(gè)數(shù)為[
],若最后有不足[
]個(gè)元素,則自成一段。給每段設(shè)置一個(gè)標(biāo)記,如下表所示。
數(shù)組下標(biāo) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
元素的值 |
p |
y |
t |
h |
o |
n |
j |
a |
v |
a |
段編號(hào) |
第一段 |
第二段 |
第三段 |
第四段 |
段標(biāo)記 |
1 |
2 |
3 |
4 |
(1)對(duì)于操作1,若輸入的L,R屬于同一段,則直接對(duì)a(L to R)的每個(gè)元素的ASCII碼進(jìn)行后移T位的操作。如輸入4,6,3,則第2段中的每個(gè)字符變?yōu)閗,r,q,操作后如下表所示。
數(shù)組下標(biāo) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
元素的值 |
p |
y |
t |
k |
r |
q |
j |
a |
v |
a |
段編號(hào) |
第一段 |
第二段 |
第三段 |
第四段 |
段標(biāo)記 |
1 |
2 |
3 |
4 |
(2)對(duì)于操作1,若輸入的L,R不屬于同一段,則對(duì)元素a(L)所在段中從a(L)開始到該段最后一個(gè)元素為止的每個(gè)字符的ASCII碼做后移T位的操作,并對(duì)元素a(R)所在段中從該段第一個(gè)元素開始到a(R)為止的每個(gè)字符的ASCII碼做后移T位的操作,對(duì)a(L)元素所在段的下一段開始到a(R)元素所在段的上一段為止的每個(gè)段標(biāo)記值增加T,這些段中的元素值保持不變。如在上表的基礎(chǔ)_上再輸入1,8,2,則第1段的3個(gè)字符和第3段中的前2個(gè)數(shù)都做相應(yīng)的字符后移2位的操作,第2段的段標(biāo)記值增加2,如下表所示。
數(shù)組下標(biāo) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
元素的值 |
r |
a |
v |
k |
r |
q |
l |
c |
v |
a |
段編號(hào) |
第一段 |
第二段 |
第三段 |
第四段 |
段標(biāo)記 |
1 |
2 |
3 |
4 |
(3)對(duì)于操作2,若輸入M的值為4,則輸出a(4)的值,若a(M)所在的段標(biāo)記為奇數(shù),a(M)的值為該數(shù)組元素的值,否則輸出a(M)對(duì)應(yīng)的大寫字母的值,如a(4)=H。程序運(yùn)行如下。請(qǐng)回答下列問(wèn)題:
(1)若數(shù)組元素為“p,y,t,h,o,n,j,a,v,a”,依次進(jìn)行以下3次操作后a(6)的值為
n
n
。
操作1:在文本框Text1,Text2,Text3中依次輸入1,8,3后,點(diǎn)擊按鈕Command1
操作1:在文本框Text1,Text2,Text3中依次輸入7,9,2后,點(diǎn)擊按鈕Command1
操作2:在文本框Text4中輸入6后,點(diǎn)擊按鈕Command2
(2)請(qǐng)?jiān)跈M線處填入合適的代碼。