网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月23日漏签0天
vb吧 关注:156,050贴子:1,166,288
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 14回复贴,共1页
<<返回vb吧
>0< 加载中...

求助!!!这道题怎么做,在线等 贼着急(#泪)1.某密钥的加

  • 只看楼主
  • 收藏

  • 回复
  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求助!!!这道题怎么做,在线等 贼着急
1.某密钥的加密规则是:对一串互不重复的大写字母进行加密,对其中所有的字母加3处理,即“A”变成“D”,“X”变成“A”,再将处理后的字母进行首尾对称互换,最后将前面两个字母转移到最后。现编写一个验证程序,检验输入的一串字符串是否符合加密条件。单击“检验”按钮 Commandl,若出现的是互不重复的一串大写字母,则在列表框 Listi中输出“该字符串符合加密条件!”,反之,则在列表框 Listi中输出重复的字母及该字母第二次出现的位置。程序运行的界面如图所示。


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
private sub command1_click()
dim s as string , i as integer , a(1 to 26) as integer , r as string
dim b(1 to 26) as string , c(1to100) as integer , j as integer
s = text1.text
lest1.clear
for i = 1 to 26
a(i )=0
next i
j=1
for i =1 to len(s)
r = mid(s , i , 1)
if a (asc(r)-64)=1 then
b(j)=r
c(j)=i
j=j+1
else


2026-02-23 12:52:08
广告
不感兴趣
开通SVIP免广告
  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
________________一___________________
end if
next i
if j =1 then list1.additem”该字符串符合加密条件”
for I= 1 to j-1
————————二__________________
next i
end sub
一处填a(asc(r)-64)=1
二处填list1.additem+b(i)+ “ “+str(c(i))


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我写的时候有换行 为什么发出来换行没了


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有大佬帮帮我吗 高中信息技术题


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2026-02-23 12:46:08
广告
不感兴趣
开通SVIP免广告
  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
dd有大佬能帮帮忙吗


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
dd


  • ╰つ兔桑丶
  • 求过二级
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
dd


  • 初音七奈
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不是有答案了吗?你想问这个答案怎么做出来的?
说实话,我是很讨厌这种代码填空题的,因为必须顺着写代码这家伙的思路来,要是跟不上人家的思路,那就直接完蛋
下面,我们来尝试一下搞懂这段代码的思路:
'前面的变量定义就略了,没有注释谁知道这些变量是干啥的,直接看下文
s = Text1.Text '变量s表示输入的字母串
List1.Clear '清空列表框
For i = 1 To 26
a(i) = 0
Next i
'上面这个循环把数组a的元素初始化为0,这在VB中其实没必要,VB已经帮你自动完成了
j = 1
For i = 1 To Len(s) '循环对字符串s的每一个字母依次处理
r = Mid(s, i, 1) '取出第i个字符
If a(Asc(r) - 64) = 1 Then '如果这个字母在数组a中对应的元素值为1,则……
b(j) = r '将这个字母存入数组b
c(j) = i '将它出现的位置存入数组c
j = j + 1 '将j后移一格,指向数组b和c的下一个空元素
'(所以前面的j=1是让j指向数组b和c的第一个空元素)
Else '否则……
'到这里,暂时还不知道a(Asc(r)-64)=1这个条件的含义,先跳过这个空继续往下看
End If
Next i
If j = 1 Then List1.AddItem "该字符串符合加密条件!"
'如果j=1,即数组b和c没有被放入元素;
'字符串符合加密条件,即字符串中没有重复的字母;
'因此,现在我们知道了,数组b表示重复的字母,数组c表示这些字母开始重复出现时的位置
'而数组a的元素等于1,表示对应的字母已经出现过了
'回到前面跳过的空处,这里是“这个字母还没有出现过”的操作,
'因此填 a(Asc(r) - 64) = 1 ,表示将这个字母的状态设置为“出现过了”
For i = 1 To j - 1 '循环将重复字母及其出现位置添加到列表框
'(如果j=1,则该循环不会执行)
List1.AddItem b(i) & " " & c(i) '这是该空的另一种填法
'(另外,你在3楼把答案抄错了,多写了一个加号)
Next i
-----吐槽分割线-----
这题我好像见过
这里面的数组定义得有点问题:
数组a只是个标记,用Boolean类型就可以了,用Integer的话,完全可以改成统计每个字母的出现次数的
数组b和c应该是搭配使用的,但是一个只有26个元素,另一个却有100个元素,这种不协调又是怎么回事……而且,只看b(1 To 26)这个定义,很容易误解为它也是表示26个字母的什么信息的,然而并不是


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 14回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示