第三章算法与程序实现2课件-高中信息技术浙教版必修1_第1页
第三章算法与程序实现2课件-高中信息技术浙教版必修1_第2页
第三章算法与程序实现2课件-高中信息技术浙教版必修1_第3页
第三章算法与程序实现2课件-高中信息技术浙教版必修1_第4页
第三章算法与程序实现2课件-高中信息技术浙教版必修1_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法与程序设计——方卫龙1.编写VB程序,实现如下功能:在文本框Text1中输入一串字符,单击"查看"按钮后,在列表框显示每个字符对应的内码。运行界面如图所示。(1)代码"List1.Additem"中"Additem"是______(填:对象/方法/事件/事件处理过程)(2)为实现上述功能,请在划线处填入合适的代码。PrivateSubCommand1_Click()DimsasString,chasStringDimiasInteger,nasIntegers=Text1.TextFori=1to________ch=Mid(s,i,1)_____________List1.Additemch+“内码为:"+Str(n)NextiEndSub六、字符串问题(三)字符与内码方法Len(s)n=Asc(ch)2.编写VB程序,实现如下功能:在文本框Text1中输入一串字符,单击"转换"按钮CmdConver,V把该字符串中所有出现的大小写字母进行转换(即大写字母替换成小写字母,小写字母替换成大写字母),转换后的结果输出到文本框Text2中,同时在标签Label1中输出字母转换的次数。(1)下面代码事件处理过程名是_________________________。(2)为实现上述功能,请在划线处填入合适的代码。PrivateSubCmdConver_Click()DimsasString,tasString,chasString,iasInteger,kasIntegers=Text1.textt="":k=0Fori=1tolen(s)ch=Mid(s,i,1)IFch>="a"andch<="z"Thench=Chr(Asc(ch)-32)'小写字母a的ASCII码为97________ch>="A"andch<="Z"Thench=Chr(Asc(ch)+32)‘大写字母A的ASCII码为65Elsek=k+1Endift=t&chNextiText2.Text=tLabel1.Caption=_________________EndSub(3)下列代码与虚线框代码功能相同的是_____________(单选:A.ch>=97andch<=122B.Asc(ch)>=97andAsc(ch)<=122C.Chr(ch)>=97andChr(ch)<=122)六、字符串问题(三)字符与内码CmdConver_ClickElseIFStr(Len(s)-k)B3.编写VB程序,实现如下功能:在文本框Text1中输入一个字母,单击"产生回文字母"按钮Command1,在标签Label2中显示相应的回文字符串。例如:若输入的是大写字母"G",则产生从"A"开始的回文字母"ABCDEFGFEDCBA";若输入的是小写字母"g",则产生从"a"开始的回文字母"abcdefgfedcba".(1)观察运行界面,选项中没有用到的控件是______(选填:A.B.C.D.)。(2)请完善下列程序代码:PrivateSubCommand1_Click()DimnasInteger,iasInteger,initasInteger,masString,sasStringm=Text1.Text:s=""Ifm>="a"andm<="z"Theninit=Asc("a")Ifm>="A"andm<="Z"Theninit=Asc("A")n=Asc(m)-init+1Fori=1to_______IFi<=nThens=s+Chr(Asc(m)+i-n)Else______________EndifNextiLabel2.Caption=sEndSub六、字符串问题(三)字符与内码D2*n-1S=s+Chr(Asc(m)+n-i)不会4.VB程序计算某单词的"分值",具体功能:在文本框Text1中输入一个英文单词,"计算"按钮Command1,在列表框List1中显示计算的结果。字母A至Z对应1至26的分值(即:A=1,B=2…,Z=26,小写字母同理),程序运行的界面如图所示:(1)观察程序界面和代码,除窗体外使用了__________(填数字)类控件。(2)实现上述功能,在划线处填入合适的代码。PrivateSubCommand1_Click()DimsasString,xasString,ssasStringDimtasInteger,nasInteger_______________t=0:ss=""Fori=1tolen(s)x=Mid(s,i,1)Ifx>="a"andx<="z"Thenn=Asc(x)-96'小写字母a的ASCII值97_____________________________n=Asc(x)-64'大写字母A的ASCII值65ElseList1.additems&"该单词输入有误!"Endif_______________IFi<>len(s)Thenss=ss+Str(n)+"+"Elsess=ss+Str(n)+"="NextiList1.additems+":"+ss+Str(t)EndSub六、字符串问题(三)字符与内码4S=Text1.textElseifx>=“A”Andx<=“Z”Thent=t+n1.编写"单词查询"程序,实现如下功能:在文本框Text1中输入一段英文文本(以“.”为结束符)。在文本框Text2输入一个英文字母,单击"获取单词"按钮Command1,在列表框List1依次显示Text1中包含该英文字母表的所有单词。程序运行界面如图所示。(1)程序运行时文本框Text1显示为"请输入英文短句",可在Form_Load事件过程中添加代码_______(单选:A.Text1.Caption="请输入英文短句"/B.Text1.text="请输入英文短句"/C.Text1.additem="请输入英文短句")(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。PrivateSubCommand1_Click()DimsasString,tmpasString,casString,nasInteger,iasIntegerDimflagasBoolean,cntasIntegers=Text1.Textn=len(s)flag=FalseList1.ClearFori=1tonc=Mid(s,i,1)Ifc>="a"andc<="z"orc>="A"andc<="Z"Then______________Ifc=Text2.Textflag=True:cnt=cnt+1ElseIfflagThenList1.additemtmptmp=""______________EndifNextiIfcnt=0ThenList1.additem"找不到符合条件的单词。"EndifEndSub(3)若文本框Text2中输入"M",单击"获取单词"按钮后,列表框List1中显示的单词个数是_________。六、字符串问题(四)字符与统计Btmp=tmp+cflag=False12.用VB编写求句子中最长单词的程序。输入要求:句子以"."结束:单词之间用空格分隔,单词没有缩写形式和其它特殊形式。运行界面如图所示,程序功能:在文本框Text1中输入待统计的句子,单击"统计"按钮Command1,将结果显示在文本框Text2和Text3中。(1)结合运行界面,当前窗体中共使用了_________类对象(填数字)。(2)根据题意将下列程序补充完整。PrivateSubCommand1_Click()Dimiasinteger,kasInteger,sasString,chasStringDimmaxasInteger,ssasString'max存储句子中最长单词的长度'ss存储句子中最长的单词s=Text1.Texti=1:k=0:max=0:ch=""DoWhilech<>"."ori<=len(s)ch=Mid(s,i,1)Ifch<>""andch<>"."Then___________Elsek=0EndifIf____________Thenmax=kss=Mid(s,i-k+1,k)Endifi=i+1LoopText3.Text=ssText2.Text=Str(max)EndSub六、字符串问题(四)字符与统计3k=k+1max>kText1Text2Text3Command1Label23.设计VB程序,输入一段由字母和标点符合组成的英文句子(以"."为结束符),统计单词个数和单词平均长度。程序界面如图所示。为实现上述功能,请在划线处填入合适的代码。PrivateSubCommand1_Click()DimsasString,cntasInteger,iasIntegerDimnasInteger,numasSingle,aveasSingles=Text1.Text:n=len(s)num=0:ch=0:cnt=0Fori=1tonc=Mid(s,i,1)If__________________Thencnt=cnt+1Elseifc>="A"andc<="Z"Thencnt=cnt+1ElseIfcnt>0Thennum=num+1ch=ch+cnt___________EndifEndifNextiIfcnt>0Thennum=num+1:ch=ch+cnt_____________Label1.Caption="总共有"+Str(num)+"个单词,平均长度为"+Str(ave)EndSub六、字符串问题(四)字符与统计c>=“a”andc<=“z”cnt=0ave=ch/num4.密码强度检测。编写VB程序,实现如下功能:在文本框Text1中输入要检测的密码,单击"检测"按钮Command1,则在标签Label3中输出检测结果.将密码字符分为数字、字母和其他符号三类。密码强度的检测方法为:若密码位数少于8位,则不进行强度检测,给出提示"密码位数不能少于8位,请重新输入!".若密码位数在8位以上,则进行强度检测;若密码字符属于同一类字符,则密码强度为"弱";若密码字符属于不同的二类字符,则密码强度为"中等";若密码字符属于不同的三类字符,则强度为"强".(1)当前编辑的对象的属性窗口如图b所示,则其对象为_____。程序代码"PrivateSubCommand1_Click()"中"Click"是____(填:对象/方法/事件/事件处理过程。)(2)为实现上述功能,请在程序划线处填入合适的代码。PrivateSubCommand1_Click()DimpasswordasString,stasStringDimiasInteger,nasInteger,tj1asInteger,tj2asInteger,tj3asIntegerpassword=Text1.Textn=len(password)If____________ThenLabel3.Caption="密码位数不能少于8位,请重新输入!"Elsetj1=0:tj2=0:tj3=0:i=1DoWhile______________st=Mid(password,i,1)Ifst>="0"andst<="9"Thentj1=1Elseifst>="a"andst<="z"orst>="A"andst<="Z"Thentj2=1Elsetj3=1Endifi=i+1LoopIftj1+tj2+tj3=3ThenLabel3.Caption="强"Elseif__________________ThenLabel3.Caption="中等"ElseLabel3.Caption="弱"EndifEndifEndSub六、字符串问题(四)字符与统计Label3事件n<8i<=ntj1+tj2+tj3=2数组的定义:.数组中数据累加和统计数组中最大值(以知识点1数组为例子)七、数组

数组是用于储存多个相同类型数据的集合,由数组名和下标两部分构成。数组是程序设计的核心,而数组下标操作运算则是算法的灵魂。无论是接下来的排序算法,还是查找算法,本质上都是对数组下标进行操作。Dim数组变量名(A1toA2)as元素的类型变量S用于存储数组中所有正数之和变量c用于存储数组中正数的个数s=0Fori=1tonIfa(i)>0Thens=s+a(i)EndifNextiC=0Fori=1tonIfa(i)>0Thenc=c+1EndifNexti变量k用于存储数组中最大元素的值变量k用于存储数组中最大元素的下标k=a(i)Fori=2tonIfa(i)>kThenk=a(i)NextiText1.Text=Str(k)文本框Text1显示__32___k=1Fori=2tonIfa(i)>a(k)Thenk=iNextiText1.Text=Str(k)文本框Text1显示__6___数组a(i)、a(i+1)……a(j)中最大值和最大值下标数组相邻元素差值的最大值。④数组中所有大于key的元素中的最小值。例如a(1),a(2),a(3),a(4),a(5),a(6)的值分别为12,7,9,13,18,2时,所有大于10的元素中最小值为12。七、数组k=a(i)Fori=i+1tojIfa(I)>kThenk=a(i)Nexti变量k用于存储数组中最大元素的值k=iFori=i+1tojIfa(I)>a(k)Thenk=iNexti变量k用于存储数组中最大元素的下标k=a(2)-a(1)Fori=3tonIfa(i)-a(i-1)>kThenk=a(i)-a(i-1)Nextiflag=TrueFori=1tonIFa(i)>keyThenIfflagora(i)<minThenmin=a(i):flag=FalseEndifNexti七、数组(一)数组选择题1.有8个数据:46,78,12,55,17,9,33,80依次存放在数组d(1)到d(8)中,k=1程序段如下所示:Fori=2to8Ifd(i)<d(k)Thenk=iEndIFNextiText2.Text=Str(k)程序运行时,单击命令按钮Command1,则文本框Text2显示的是()A.9B.6C.80D.82.有如下VB程序段Dima(0to10)asIntegern=10Fori=0ton/2a(i)=2*i+1NextiFori=nto6Step-1a(I)=a(n-i)NextiText1.Text=Str(a(n-3))n的值为10,程序执行后,Text1中显示的内容是()A.3B.5C.7D.93.有如下VB程序段Fork=1to10f=kmod2Iff=0Thena(k)=0Elsea(k)=1Forj=1tokIff=0Thena(k)=a(k)+1Elsea(k)=a(k)*jNextjNextk执行该程序段后,数组元素a(4)的值为()A.6B.4C.2D.14.有VB编写的程序如下:Dima(0to9)asInteger,tasLongt=Val(Text1.Text)DoWhilet<>0a(tmod10)=1t=t\10LoopFori=0to9x=x+a(i)NextiText1中输入的10242048则程序执行后x的值为()A.14B.235C.25D.234√√√√1.数字个数统计。编写VB程序,实现如下功能:在文本框Text1中输入仅由ASCII码字符组成的字符串(长度不超过100),单击"统计"按钮Command1,在列表框List1中输出字符串中包含的不同数字及其相应的个数,程序运行效果如图所示。(1)为方便调试,要让程序每次运行时文本框Text1中的初始内容为"ab12*{}78ab12()778ab34",应修改文本框Text1的_________属性。(2)实现上述功能的VB程序如下,请在划线处填入合适代码。PrivateSubCommand1_Click()Dima(0to9)asInteger'数组元素a(i)中存储数字的个数DimsasString,chasString,tasIntegerFori=0to9a(i)=0Nextis=Text1.TextFori=1toLen(s)____________Ifch>="0"andch<="9"Thent=Val(ch)__________EndifNextiFori=0to9Ifa(i)<>0ThenList1.additem"数字:"+Str(i)+",共"+_______+”个“NextiEndSub七、数组(二)数组与字符处理Textch=Mid(s,i,1)a(t)=a(t)+1Str(a(i))2.对英文字母进行加密的规则:用26个互不重复的ASCII字符作为密钥,字母"A"用密钥中第1个字符代替,字母"B"用密钥中第2个字符代替,其他字母用类似方法进行加密。现编写一个验证密钥合法性的程序。在文本框Text1中输入密钥,单击"验证"按钮Command1,在文本框Text2中输出相应的信息.(1)实现验证功能事件的过程名称是____________________。(2)为实现上述功能,请在划线处填入合适代码。PrivateSubCommand1_Click()DimiasInteger,chasString,sasStringDimmy(0to127)asBoolean'0-127表示128个ASCII字符的ASCII值s=Text1.TextFori=0to127my(i)=FalseNextiIf___________________ThenText2.Text="密钥长不足26个字符!"ElseFori=1to26ch=Mid(s,i,1)______________Ifmy(t)=FalseThenmy(t)=TrueElseText2.Text="密钥中有重复字符!"ExitSubEndif_____________Text2.Text="密钥正确!”EndifEndSub七、数组(二)数组与字符处理Command1_ClickLen(s)<26t=Asc(ch)Nexti3.小林编写了一个实现英文句子每个单词首字母大写功能的VB程序,运行界面如图所示。文本框Text1显示原文内容,单击"首字母大写"按钮Command1后,Text2显示首字母大写的结果。实现上述功能的VB程序如下,请在划线处填入合适的代码。PrivateSubCommand1_Click()Dima(1to1000)asString,sasString,resultasStrings=Text1.Textn=Len(s)Fori=1tona(i)=Mid(s,i,1)NextiIfa(1)>="a"anda(1)<="z"Then_________________________result=a(1)Fori=2ton-1If______________________and(a(i)<"A"ora(i)>"Z")ThenIfa(i+1)>="a"anda(i+1)<="z"Thena(i+1)=Chr(Asc(a(i+1)-32)Endifresult=result+a(i)Else_____________________EndifNextiText2.Text=result+a(n)EndSub七、数组(二)数组与字符处理a(1)=Chr(Asc(a(1))-32(a(i)<“a”ora(i)>“z”result=result+a(i)1.二进制十六进制,从文本框TextB输入二进制整数,单击"转换"按钮,将二进制转换为十六进制并显示在文本框TextH中。程序界面如右图所示:转换方法,先从右往左将二进制分割成4位一组,若最左边的一组不足4位,则用0将高位补足,然后将每4位二进制转换为1位十六进制数。(1)观察程序代码,"转换"按钮的对象名为___(A.TextB/B.TextH/C.Command1/D.Convrt/E.转换)(2)为实现上述功能,请在划线处填入合适的代码。PrivateSubConvert_Click()Constzf="0123456789ABCDEF"Dima(1to100)asInteger,tempasInteger,sasString,resasString,nasInteger,rasIntegerres="":s=TextB.Text:n=Len(s)Fori=1tona(i)=Val(Mid(s,i,1))Nextit=n\4Ifnmod4=0Thenr=4:t=t-1Else______________temp=0Fori=1tor'将最高的r位转换为十六进制temp=temp*2+a(i)Nextires=Mid(zf,temp+1,1)Fori=1tot'将t组4位二进制转换为十六进制temp=0Forj=1to4temp=temp*2+_______________Nextjres=res+Mid(zf,temp+1,1)NextiTextH.Text=resEndSub(3)若在文本框TextB中输入"101000111",则单击"转换"按钮后的输出结果为______________。七、数组(三)数组与进制运算Dr=nMod4(r=n-t*4)a(j+r+4*(i-1))1472.编写VB程序采用逢二进一的方法模拟"写二进制数"过程。程序功能如下:在文本框Text1中输入一个不大于100的数字n,点击"写二进制数"按钮,在列表框List1中逐一显示1到n之间所有的二进制数。(1)可用右图中所示"控件工具箱"中的_______(填编号)添加用于列表框。(2)补充代码PrivateSubCommand1_Click()Dimd(1to7)asInteger'数组d用于存储二进制数值的每一位的值n=Val(Text1.Text)Fori=1to7d(i)=0NextiFori=1ton'最低位加1后,"逢二进一"处理进位,从而产生下一个二进制数__________d(k)=d(k)+1s=""Fork=1to6IFd(k)=2Thend(k+1)=d(k+1)+1______________Endif_______________NextkList1.AdditemStr(i)+""+str(d(k))+sNextiEndSub七、数组(三)数组与进制运算④k=1d(k)=0s=str(d(k))+s3.在计算机系统中,数值一般用补码来表示和存储,补码由符号位和数值位两部分组成,符号位用0表示正数,用1表示负数。例如,整数n(-128<=n<=127)用8位二进制补码的表示方法为:

正数:正整数补码的数值即其二进制表示。例:12的8位二进制表示00001100,最高位即符号位“0”表示正数。负数:除符号位外,所有位数取反,然后+1。例:-5的8位二进制补码表示方法如下,5对应7位二进制数为0000101(原码),所有位取反后为1111010(反码),再加1后为1111011(补码),再设置符号位为1,因此-5用8位二进制补码表示为11111011。小明设计了一个VB程序,点击“补码”按钮Command1,将文本框Text1中输入的整数n(-128<=n<=127)转换成相应的补码,并在文本框Text2中输出,请将划线处的代码补充完整。(1)-27用8位二进制补码表示为____________________(2)请在划线处填入合适的代码。七、数组(三)数组与进制运算符号位(1位)数值位(7位)第1位(最高位)第2~8位11100101PrivateSubCommand1_Click()DimnasInteger,aasInteger,iasInteger,m(1to8)asIntegerText2.Text=""n=Val(Text1.Text)Ifn>=0ThenFori=8to2step-1'计算二进制原码m(i)=nMod2n=n\2Nextim(1)=0Elsen=-nFori=8to2Step-1‘计算二进制反码m(i)=__________________________n=n\2Nextii=8DoWhilem(i)=1’加1计算_________________________i=i+1Loopm(i)=1m(1)=1'设置符号位EndifFori=1to8Text2.Text=Text2.Text&m(I)NextiEndSub(n+1)Mod2(或1-nmod2)M(i)=0(或m(i)=m(i)-11.双重数列是指两个数列交替排在一起而形成的一种数列律,位于偶数项的数字 构成另一种规律,现编写一个VB程序,实现如下功能:在文本框Text1中输入项数n,单击"求和"Command1按钮,求出双重数列0,2,1,4,1,6,2,8,3,10,5,12,8……前n项中的奇数项和,显示在文本框Text2中。程序运行界面如图所示。(1)代码"PrivateSubCommand1_Click()"中的Command_Click是__(A.对象名/B.过程名/C.事件名。)(2)实现上述功能的VB程序如下,请在划线处填入合适的代码PrivateSubCommand1_Click()DimsasInteger,nasInteger,a(1to100)asIntegern=Val(Text1.Text)a(1)=0:a(3)=1:s=1Fori=5tonStep2_____________s=s+a(i)Nexti________________EndSub(3)运行该程序,在文本框Text1输入9,运行程序后文本框Text2显示的是___________。七、数组(四)数组及下标运算BA(i)=a(i-2)+a(i-4)Text3.text=str(s)2.小明使用VB编写了一个按降序排名次的程序(当数据相同时,排名相同)。程序运行,随机产生n个[30,60]之间的随机数,并输出在列表框List1中,单击"排名"按钮Command1,在列表框List2中输出数据及其排名,程序运行界面如图所示。为了实现上述功能,请在划线处填入合适的代码。Constn=10Dima(1ton)asInteger,mc(1ton)asIntegerPrivateSubForm_Load()'随机产生n个[30,60]之间的随机数,保存在数组a中,并输出到列表框List1,代码略EndSubPrivateSubCommand1_Click()DimiasInteger,jasInteger,kasIntegerFori=1tonk=0Forj=1tonIf______________Thenk=k+1Nextj_______________NextiFor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论