版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./一、字符处理11、算法说明1>加密解密最简单的加密方法是:将每个字母加一序数,例如5,这时:"A"→"F","a"→"f","B"→"G","b"→"g"……"Y"→"D","y"→"d","Z"→"E","z"→"e"解密是加密的逆操作。界面如下:代码如下:Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:2>统计问题提出统计字符或者数字出现的次数。算法说明以字符统计为例,设基本问题如下:请统计一段文本中英文字母在文本中出现的次数。<不区分大小写>如:Iamastudent.得到:A:2d:1e:1I:1m:1n:1s:1t:2u:1分析:由于不区分大小写,因此可定义一个大小为26<下标:0-25>的数组,每个元素依次记录A、B、C…Z字母出现的次数。A<0>存放字母a出现的次数A<1>存放字母b出现的次数A<2>存放字母c出现的次数A<3>存放字母d出现的次数…譬如:aabdc代码如下:以下是引用片段:
Option
Explicit
Private
Sub
Command1_Click<>
Dim
i
As
Integer,
j
As
Integer
Dim
zimu<25>
As
Integer
Dim
allStr
As
String
Dim
aStr
As
String
allStr
=
UCase<Text1.Text>
For
i
=
1
To
Len<Text1.Text>
aStr
=
Mid<allStr,
i,
1>
If
aStr
>=
"A"
And
aStr
<=
"Z"
Then
zimu<Asc<aStr>
-
Asc<"A">>
=
zimu<Asc<aStr>
-
Asc<"A">>
+
1
End
If
Next
i
For
i
=
0
To
25
If
zimu<i>
<>
0
Then
j
=
j
+
1
Text2.Text
=
Text2.Text
&
Chr<i
+
Asc<"A">>
&
":"
&
str<zimu<i>>
&
"
"
If
j
Mod
5
=
0
Then
Text2.Text
=
Text2.Text
&
Chr<13>
&
Chr<10>
End
If
Next
i
End
Sub解题技巧熟练运用字符处理函数,对于一些数论题,譬如逆序数等也可将数字通过CStr函数转换为字符后,利用字符处理函数来解题。2、实战练习1>补充代码<2003秋二<8>>下面程序的功能是统计文件中英文字母<不区分大小写>出现的个数。Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:2>补充代码<2000秋二<6>>下面程序的功能是:统计当前盘当前文件夹中的顺序文件data.txt中共有多少个单词,约定连续出现的字母定义为一个单词。以下是引用片段:
Option
Explicit
Private
Sub
Form_Click<>
Dim
Char<>
As
String,
St
As
String,
Tem
As
String
Dim
Idx
As
Integer,
Js
As
Long,
Flen
As
Long
Dim
F
As
Boolean,
W
As
String
*
1
<1>
Flen
=
LOF<10>
St
=
Input<Flen,
#10>
Js
=
1
Do
While
Js
<=
Flen+1
W
=
Mid<St,
Js,
1>
If
<2>
Then
Tem
=
Tem
+
W
F
=
True
ElseIf
F
=
True
Then
Idx
=
Idx
+
1
ReDim
Preserve
Char<Idx>
Char<Idx>
=
Tem
Tem
=
<3>
F
=
False
End
If
<4>
Loop
"共有";
Idx;
"个单词"
For
Js
=
1
To
Idx
Char<Js>
Next
Js
End
Sub排序11、算法说明1>初等数学递推法又称为"迭代法",其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都在旧值的基础上递推出新值,并由新值代替旧值。问题:猴子吃桃子小猴子有若干桃子,第一天吃掉一半多一个;第二天吃掉剩下的一半多一个…..;如此,到第七天早上要吃时,只剩下一个桃子。问小猴子一开始共有多少桃子?分析:可以最后一天桃子数推出倒数第二天的桃子数;再从倒数第二天推出倒数第三天桃子数………..设第n天桃子数为xn,前一天桃子数是:xn-1,则有关系:xn=xn-1/2-1程序如下:Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:穷举法又称枚举法,即将所有可能情况一一测试,判断是否满足条件,一般用循环实现。问题:百元买鸡问题。假定小鸡每只5角;公鸡每只2元;母鸡每只3元。现在有100元,要求买100只鸡,编程列出所有可能的购鸡方案。分析:设母鸡、公鸡、小鸡分别x、y、z只,则有:x+y+z=1003x+2y+0.5z=100程序一:以下是引用片段:
Private
Sub
Command1_Click<>
Dim
x%,
y%,
z%
For
x
=
0
To
100
For
y
=
0
To
100
For
z
=
0
To
100
If
x
+
y
+
z
=
100
And
3
*
x
+
2
*
y
+
0.5
*
z
=
100
Then
x,
y,
z
End
If
Next
z
Next
y
Next
x
End
Sub程序二<优化>以下是引用片段:
Private
Sub
Command1_Click<>
Dim
x%,
y%
For
x
=
0
To
33
For
y
=
0
To
50
If
3
*
x
+
2
*
y
+
0.5
*
<100
-
x
-
y>
=
100
Then
x,
y,
100
-
x
-
y
End
If
Next
y
Next
x
End
Sub2>高等数学求积分近似计算积分:s=∫13<x3+2x+5>dx代码如下:以下是引用片段:
Public
Function
f<ByVal
x!>
'被积函数
f
=
x
*
<x
*
x
+
2>
+
5
End
Function
Public
Function
trapez<ByVal
a!,
ByVal
b!,
ByVal
n%>
As
Single
'b、a分别为积分上下限,n为等分数
Dim
sum!,
h!,
x!
h
=
<b
-
a>
/
n
sum
=
<f<a>
+
f<b>>
/
2
For
i
=
1
To
n
-
1
x
=
a
+
i
*
h
sum
=
sum
+
f<x>
Next
i
trapez
=
sum
*
h
End
Function调用:以下是引用片段:
Private
Sub
Command1_Click<>
trapez<1,
3,
30>
End
Sub数论综合题此类题目比较广泛,必须给以足够重视。历年题目有:平方数、零巧数、拟互满数、回文数、酉完数、完数、幸运数、逆序数以与无暇素数、超级素数、因子和等。排序21>补充代码<2002秋二<10>>找出由两个不同数字组成的平方数,并将结果按图中的格式显示在列表框List1中。Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:1>编程题<2004秋上机试卷08>一个正整数被称为奇妙平方数,如果此数的平方与它的逆序数的平方互为逆序数。例如,12^2=144,21^2=441,12与21互逆,144与441互逆,12就是奇妙平方数。找出1-300以内所有的奇妙平方数。1、算法说明1>顺序查找逐个元素找,如果有,则记录位置,然后跳出循环;否则,查找失败。代码如下:Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:2>二分法查找顺序查找效率低下,当数组有序排列时,可以使用二分法查找提高效率。算法思想:代码如下:以下是引用片段:
Private
Sub
birSearch<a<>,
ByVal
low%,
ByVal
high%,
ByVal
Key,
index%>
Dim
mid
As
Integer
If
low
>
high
Then
'没有查找到
index
=
-1
Exit
Sub
End
If
mid
=
<low
+
high>
\
2
'取查找区间的中点
If
Key
=
a<mid>
Then
'查找到,返回下标
index
=
mid
Exit
Sub
ElseIf
Key
<
a<mid>
Then
'查找区间在上半部分
high
=
mid
-
1
Else
low
=
mid
+
1
'查找区间在下半部分
End
If
Call
birSearch<a,
low,
high,
Key,
index>
'递归调用查找函数
End
Sub调用方法:以下是引用片段:
Private
Sub
Command1_Click<>
Dim
a<11>
a<1>
=
5:
a<2>
=
13:
a<3>
=
19:
a<4>
=
21:
a<5>
=
37
a<6>
=
56:
a<7>
=
64:
a<8>
=
75:
a<9>
=
80:
a<10>
=
88:
a<11>
=
92
Dim
ind
As
Integer
Call
birSearch<a,
LBound<a>,
UBound<a>,
21,
ind>
ind
End
Sub2、实战练习补充代码<2002春二<9>>C盘根目录下stu.txt文件中以下的格式保存着学生XX与班号信息。本程序的功能是:读取该文件中的数据,再利用InputvBox输入要查找的学生XX,通过顺序查找,给出找到或找不到的信息。附图是某同学被找到时显示的信息窗口。X文,机械01李明,机械01王文卉,机械01…何宇宙,电子02Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:1、算法说明数组中元素的插入和删除一般是在已固定序列的数组中插入或删除一个元素,使得插入或删除操作后的数组还是有序的。基本思路:首先要找到插入位置或要删除的元素。1>插入代码如下:Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:2>14710131619222528K删除代码如下:以下是引用片段:
Dim
a<>
as
integer
….
ReDim
a<1
to
n>
…
For
i=k+1
to
n
a<i-1>=a<i>
Next
I
Redim
preserve
a<1
to
n-1>2、实战练习C盘根目录下文件Data4.txt的内容是:2,4,6,8,10,1,3,5,7,9。下面程序的功能是将文件后半部分的奇数分别按序插入到前半部分的适当位置,得到的新数列是:12345678910。<实现方法:第一次调整后的数列是:12468103579第二次调整后的数列是:12346810579>。Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:补充代码下面程序得功能是将无序数组中相同得数只保留一个,其余得删除,并输出经过删除后的数组元素,删除相同数是通过将该数组元素后面的元素在数组内依次前移替换前一个元素的值实现的。数组各元素的值从文件data.txt中读取。以下是引用片段:
Option
Explict
Option
Base
1
Private
Sub
Form_Click<>
Dim
I
As
Integer,J
As
Integer,K
As
Integer
Dim
A<>As
Integer,T
As
Integer,M
As
Integer
Open
"c:\my
documents\2000test\data.txt"
For
Input
As
#1
Do
While
<1>
I=I+1
Redim
Preserve
A<I>
Input
#1,A<I>
Loop
M=1:T=
<2>
Do
While
M
I=M+1
Do
While
I<=T
If
A<I>=A<M>Then
For
J=1
To
<3>
A<J>=A<J+1>
Next
J
T=T-1
Else
I=
<4>
End
If
Loop
M=M+1
Loop
Redim
Preserve
A<T>
For
I=1
To
T
A<I>;
Next
I
End
Sub2、实战练习1>补充代码下面是一个采用拉锯式排序法对数组元素按升序进行排序的程序,所谓"拉锯式排序法"是这一遍把最小的元素从下到上送到最上的位置,下一遍则是从上到下把最大的元素送到最下的位置。Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:
Option
Base
1
Private
Sub
Command1_Click<>
Dim
a<10>
As
Integer,i
As
Integer
For
i
=
1
To
102>编程题把文本框输入的字符串按降序添加到列表框中。约数因子1、算法说明1>最大公约数:用辗转相除法求两自然数m、n的最大公约数。<1>首先,对于已知两数m、n,比较并使得m>n;<2>m除以n得余数r;<3>若r=0,则n为求得的最大公约数,算法结束;否则执行步骤<4><4>mßnnßr再重复执行<2>譬如:10与5分析步骤:m=10n=5r=mmodn=0所以n<n=5>为最大公约数24与9分析步骤:Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:所以n<n=3>为最大公约数算法实现循环实现以下是引用片段:
Private
Function
GCD<ByVal
m
As
Long,
ByVal
n
As
Long>
As
Long
Dim
temp
As
Long
If
m
<
n
Then
temp
=
m:
m
=
n:
n
=
temp
Dim
r
As
Long
Do
r
=
m
Mod
n
If
r
=
0
Then
Exit
Do
m
=
n
n
=
r
Loop
GCD
=
n
End
Function递归实现以下是引用片段:
Private
Function
GCD<ByVal
m
As
Long,
ByVal
n
As
Long>
As
Long
Dim
temp
As
Long
If
m
<
n
Then
temp
=
m:
m
=
n:
n
=
temp
Dim
r
As
Long
r
=
m
Mod
n
If
r
=
0
Then
GCD
=
n
Else
m
=
n
n
=
r
GCD
=
GCD<m,
n>
End
If
End
Function2>最小公倍数m×n÷最大公约数3>互质数最大公约数为1的两个正整数解题技巧该算法需要识记!这种类型题目的扩展是约数和因子题型。2、实战练习1>补充代码给定一个十进制正整数,找出小于它并与其互质的所有正整数<所谓互质数是指最大公约数为1的两个正整数,下图是程序执行画面>。Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:2>编程题生成一个三行八列的二维数组A<3,8>,其中前两行元素产生的方法是:用初值X1=26与公式Xi+1=<25×Xi+357>Mod1024,产生一个数列:X1、X2、、X16。其中X1~X8作为A的第一行元素;X9~X16作为A的第二行元素;A的第三行元素值取前两行同列元素的最大公约数。最后按图示格式显示在图片框中。进制转化11、算法说明1>十进制正整数m转换为R<2-16>进制的字符串。思路:将m不断除r取余数,直到商为0,将余数反序即得到结果。算法实现:Word-WRAP:break-word"bgColor=#f3f3f3>以下是引用片段:2>R<2-16>进制字符串转换为十进制正整数。思路:R进制数每位数字乘以权值之和即为十进制数。算法实现:以下是引用片段:
Private
Function
Tran<ByVal
s
As
String,
ByVal
r
As
Integer>
As
integer
Dim
n
As
Integer,
dec
As
Integer
s
=
UCase<Trim<s>>
For
i%
=
1
To
Len<s>
If
Mid<s,
i,
1>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清明节教师国旗下讲话稿
- 幼儿园玩小花片教案中班
- 人工施工维修合同
- 有关抵押借款合同8篇
- 《螺钉和螺母的装配工具命名法gbt+4625-2022》详细解读
- 《modbus+tcp安全协议规范gbt+41868-2022》详细解读
- 专题7.4 光的干涉、衍射和偏振现象包含双缝干涉测光的波长实验
- 理解热电偶的工作原理
- 铝模工考试卷及答案
- 施工电梯司机入场安全教育资料(整套)
- 2023年生态环境综合行政执法考试参考题库(400题)
- DB12-T 3034-2023 建筑消防设施检测服务规范
- 湖南长郡中学2024届高考化学五模试卷含解析
- 基于单片机的智能家居控制系统设计
- 建筑隔震工程监理要点
- 2022年西昌房地产市场报告
- 声乐与合唱艺术基础教程PPT完整全套教学课件
- 《卖油翁》中学语文课本剧剧本(通用6篇)
- 2023年新疆公务员考试行测真题及参考答案
- 旅游开发与规划智慧树知到答案章节测试2023年曲阜师范大学
- CAD中图块的创建使用课件
评论
0/150
提交评论