请问VB如何随机大小写字母?
vb吧
全部回复
仅看楼主
level 1
祁蔫 楼主
第4版的《VB语言程序设计》184页的作业
要求的是随机产生的是大小写字母,而且不分大小写,录入都算正确,这个大佬们怎么解决呢?
2020年06月17日 14点06分 1
level 1
祁蔫 楼主
这个样子的
2020年06月17日 14点06分 2
level 1
祁蔫 楼主
DDDDDDDDDDDDDD
2020年06月17日 14点06分 3
level 15
大写字母就是ASCII码在65~90之间的字符,小写字母就是ASCII码在97~122之间的字符
先产生一个这个范围内的随机数,再用Chr函数转换成对应的字符,就是随机字母了
2020年06月17日 15点06分 4
在吗
2020年06月18日 08点06分
level 7
定义一个数组存放52个字母[滑稽] 然后用rnd和int组合产生1到52的随机正整数 就是定义麻烦的很 应该可以吧? 我只是一个无情的顶帖机器[阴险]可不要当真
2020年06月17日 15点06分 5
谢谢大佬的提醒!
2020年06月18日 00点06分
过一下我试一试看
2020年06月18日 00点06分
level 11
也可以两次生成随机数,第一次0到25对应26个大写字母,第二次0到1若为一则用Lcase转为小写字母
2020年06月18日 00点06分 6
另,输出字母不用数组辅助,用chr()函数,大写字母A~Z为65~90,小写字母a~z为97~122。
2020年06月18日 00点06分
当然第一次可以直接生成65~90范围内的随机数
2020年06月18日 00点06分
@余思培 哦受教了!我那个老师要求的是一次性输出随机大小写字母呢,而且确准率要求的是不分大小写字母,都是对的。
2020年06月18日 00点06分
@祁蔫 你也可以合并起来生成范围为[65,90]∪[97~122]的随机数,如果你老师所谓的一次性是一行的话,那也可以直接Chr((int(Rnd*26)+65)+int(Rnd*2)*32)
2020年06月18日 01点06分
吧务
level 13
nZM = Int(Rnd * 58 + 65)
If nZM >= 91 And nZM <= 96 Then nZM = nZM + 7
cZM = Chr(nZM) ' 字符型变量 cZM 的值,就是随机大小写字母
2020年06月18日 01点06分 9
请问这个是放在哪里的?
2020年06月18日 01点06分
这几句命令就是产生【随机字母】的,你看哪里需要就放在哪里。哈哈
2020年06月18日 01点06分
@Luosen56 那大佬有没有看到8楼发的代码嘛~您觉得这个可以放到哪里?我是新手,对此有点不太懂
2020年06月18日 02点06分
8 楼已经被贴吧度娘吞了。
2020年06月18日 02点06分
level 1
祁蔫 楼主
这个样子的
2020年06月18日 06点06分 10
提醒一下,你的双引号里面都多打了空格;另外你这个代码是一共产生60个字母,大小写交替出现的
2020年06月19日 00点06分
@初音✨七奈 我这个已经解决了,谢谢大佬的帮忙。另外准确率控件如何设置不分大小写都是对的呢?
2020年06月19日 00点06分
@祁蔫 在比较时,可以用UCase函数转换成大写,或者LCase函数转换成小写,这样大小写就统一了
2020年06月19日 00点06分
@初音✨七奈 原来是这样的,受教了!我刚测试了,是对的!我又有一个问题,请问如果打字时错了一个字怎么样把结果不变成0,就错一个字扣1分之类的
2020年06月19日 01点06分
level 1
祁蔫 楼主
DDDD
2020年06月19日 00点06分 11
level 15
Dim s1 As String, s2 As String
Dim i As Integer, n As Integer, c As Integer
s1 = UCase(Text1.Text)
s2 = UCase(Text2.Text)
n = Len(s2)
For i = 1 To n
If Mid(s1, i, 1) = Mid(s2, i, 1) Then c = c + 1
Next i
Text4.Text = Format(c / n, "0%")
2020年06月19日 01点06分 12
谢谢您,受教了[吐舌]
2020年06月19日 02点06分
level 1
多谢楼主大大,网友大大解惑!
2020年06月23日 13点06分 13
1