在数组中查找数据.ppt
江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.3在数组中查找数据在数组中查找数据启东中学启东中学 李振飞李振飞高中信息技术选修课程高中信息技术选修课程算法与程序设计算法与程序设计江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.3.1什么是数组VB中数组的定义格式:中数组的定义格式:数组是一组相同类型的变量集合,集合中的每个元素都是独立的变量,它们通过数组序号被引用。l数组的定义:数组的定义:Dim 数组名(常量)as 数据类型例如:Dim studentarr(49)as integer江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课例题 For i=0 to 49 Print Studentarr(i)Next例如:数组 studentarr已经存放了50名学生的成绩,我们在屏幕上可以显示出每个学生的成绩:实现的代码如下:每个数组的下标是从0开始的!江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.3.2顺序查找实例:实例:简单的字符加密与解密的处理。简单的字符加密与解密的处理。l顺序查找是查找算法中最简单、易行的算法。顺序查找是查找算法中最简单、易行的算法。1.问题描述江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课2.问题分析字符密文加密解密江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现这样几个步骤来完成(1)常量与数组的定义(2)数组的初始化(3)字符的加密处理(4)字符的解密处理江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现(1)常量与数组的定义Public Const charNum As Integer=52Public aryCode(charNum)As StringPublic aryEncode(charNum)As String江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现(2)数组的初始化Private Sub Form_Load()Dim i As Integer aryCode(0)=Chr(32)For i=1 To 26 aryCode(i)=Chr(64+i)Next For i=27 To charNum aryCode(i)=Chr(97+i-27)Next For i=0 To charNum aryEncode(i)=Chr(-22879+i)NextEnd Sub江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现(3)字符的加密处理 Dim i As Integer,j As Integer Dim strChar As String txt2.Text=For i=1 To Len(txt1.Text)strChar=Mid(txt1.Text,i,1)For j=0 To charNum If strChar=aryCode(j)Then Exit For Next If j charNum Then strChar=aryEncode(j)End If txt2.Text=txt2.Text+strChar Next江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现(4)字符的解密处理密文的解密功能:与加密相似,它是密文的解密功能:与加密相似,它是从密码字符串中取出一个字符,找到从密码字符串中取出一个字符,找到其在密码字符表中的位置,找到后用其在密码字符表中的位置,找到后用源码字符表中相应位置的字符替换,源码字符表中相应位置的字符替换,否则仍用原字符。否则仍用原字符。方法:江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课3.编程实现结果如下图所示:江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课4.学生实践学生动手实践,实现本例中密文的解密功能 Dim i As Integer,j As Integer Dim strChar As String txt3.Text=For i=1 To Len(txt2.Text)strChar=Mid(txt2.Text,i,1)For j=0 To charNum If strChar=aryEncode(j)The Exit For Next If j max Then max=scoreArr(i)If scoreArr(i)min Then min=scoreArr(i)sum=sum+scoreArr(i)Next Text2.Text=max Text3.Text=min Text4.Text=(sum-max-min)/8实现代码:江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课练习:“明日之星英语演讲大赛”计分问题:实现结果:江苏省启东中学江苏省启东中学一师一优课江苏省启东中学一师一优课谢谢大家谢谢大家