课件编号7004579

2020浙江高考信息技术VB算法与程序专项练习专题三 算法的综合运用

日期:2024-05-03 科目:信息技术 类型:高中试卷 查看:98次 大小:2253312Byte 来源:二一课件通
预览图 1/4
算法,2020,浙江,高考,信息技术,VB
  • cover
专题三 算法的综合运用 1.幸运数。一组由1开始的奇数数列为:1,3,5,7,9,11,13,15,17,19,21,23,25,……此数列的第二项为3,将此数列的第3n个数删除,留下的数为:1,3,7,9,13,15,19,21,25,……,新数列的第三项为7,将新数列的第7n个数删除,留下的数为:1,3,7,9,13,15,21,25,……,若一直重复上述步骤,最后剩下的数就是幸运数: 1,3,7,9,13, 15, 21, 25, 31, 33, 37, 43, 49, 51,…… 下列程序的功能是找出1000以内的幸运数,但加框处代码有错,请改正。 Private Sub Command1_Click() Dim a(500) As Integer, b(500) As Integer Dim i As Integer, m As Integer, k As Integer Dim top As Integer, bott As Integer ′产生由1开始的奇数数列,依次存储在数组a中,代码略 top=2: bott=500 Do While top0 Then    b(k) =a(i)    k=k+1 End If  Next i    ———(2)  top=top+1  For i=1 To bott    a(i) =b(i)  Next i Loop For i=1 To bott Listl.AddItem Str(a(i)) Next i End Sub 解析 a数组每次都在更新,因此b数组的下标每次总是从1开始。每一遍下来,数组中总是要减少k-1个数。 答案 (1)K=1 (2)bott=k-1 2.如图所示加密程序:在文本框Text1中输入明文,单击命令按钮“加密”,在文本框Text2中输出密文。加密算法思路如下: 1)只针对英文字符和数字进行加密,其余字符不变; 2)将原文中的小写字母转换为大写字母; 3)根据第2步所得结果,若是英文字符,则逐个后移4位(例如:A→E,Z→D),若是数字,则逐个前移2位(例如:3→1,1→9)。 综上所述:原文为Jim is at room 4!,加密后输出密文为:NMQ MW EX VSSQ 2! (1)程序代码如下,请填空。 Private Sub Command1_Click() Dim str1 As String, str2 As String, ch As String Dim i As Integer, j As Integer, n As Integer str1 = Text1.Text: str2 = ”———: n = Len(Text1.Text) For i = 1 To n ch = Mid(str1, i, 1) If ch >= ”a” And ch <= ”z” Then    _____①_____ End If If ch >= ”A” And ch <= ”Z” Then ch = Chr((Asc(ch) - Asc(”A”) + 4) Mod 26 + Asc(”A”)) ElseIf ch >= ”0” And ch <= ”9” Then ch=Chr((__②_____ ) Mod 10+Asc(”0”)) ′ End If str2 = str2 + ch Next i Text2.Text = str2 End Sub (2)若在Text1中输入的明文为:Num 15*,则程序运行后在Text2中输出的密文为:_____。 解析 当ch是小写字母时转大写字母,大写字母ASCII值比小写小32。数字从0至9,构成一个环,因此先利用ASC函数把ch转0-9的数字,前移是-2,但可能会出现负数那只能加10。 答案 (1)①ch = Chr((Asc(ch) - 32)) ②Asc(ch)-Asc(”0”)-2+10 或Val(ch)+8 (2)RYQ 93* 3.使用VB程序研究“回文素数在素数表中的位置”,程序运行界面如下图所示。程序将10000以内的全部素数按顺序保存到数组a中,在文本框中输入需要查找的回文数,单击“查找”按钮Command1,在标签Label1中显示该回文素数在全部素数中的位置。 实现上述功能的程序如下,加框处的代码有错,请改正。 Dim a(1 To 10000) As Integer Dim n As Integer Private Sub Form_Load() ′将1000以内的素数从小到大依次存入数组a中 ′将素数的个数存入变量n中 End Sub Private Sub Command1_Click() Dim i As Integer, j As Integer, mid As Integer Dim key As Integer, flag As Boolean key = Val(Text1.Text) If key > 10000 Or Not hws(key) Then  MsgBox ”输入的数据不是10000以内的回文数” Else i=1:j ... ...

~~ 您好,已阅读到文档的结尾了 ~~