初中信息技术vb常用算法(共20张PPT)

合集下载

VB常用算法总结大全详细版.ppt

VB常用算法总结大全详细版.ppt

m=n
n=r
Loop Until r = 0
Text3.Text = CStr(m) ‘输出最大公约数
End If
10End Sub
.精品课件.
7、关于循环嵌套(一个循环体内又包含了一个
个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃尚 存桃子的一半零一个,到第7天早上要吃时只剩下一个了,问小 猴那天共摘下了多少个桃子?
分析:这是一个“递推”问题,先从最后一天推出倒数第二天的 桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。
设第n天的桃子为xn,那么它前一天的桃子数是xn -1。
.精品课件.
3.穷举法
“穷举法”也称为“枚举法”或“试凑法”, 即将可能出 现的各种情况一一测试,判断是否满足条件,一般采用循环来 实现。
例百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每 只3元。现在有100元钱要求买100只鸡,编程列出所有可能的 购鸡方案。
设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方 程为: x+y+y=100
End sub
7
.精品课件.
5.最小、最大值
在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若 无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与 最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较
。例随机产生10个100~200之间的数,求最大值。
Private Sub Command1_Click() Max = 100 For i = 1 To 10
x = Int(Rnd * 101) + 100 Print x; If x > Max Then Max = x Next i Print Print "最大值="; Max End Sub

VB教程—排序算法复习(共23张PPT)

VB教程—排序算法复习(共23张PPT)
排序问题 1、冒泡法(起泡法) 2、顺序交换法 3、选择法 4、插入法
1、冒泡法
首先我们来看把最大的那个数放在最后位置上的方法: 假设有5个数,分别为10,2,6,7,4,存放在a(1)-a(5)中。
首先,从a(1)到a(5),相邻的两数两两进行比较,在每次比
较过程中,若前一个数比后一个数大,则交换两元素的内容。
Next i
思考:如果这5个数是2,4,6,7,10,简述程序执行流程。
1.冒泡法
改进算法: Dim a(1 To 5) As Integer For i = 1 To 5
a(i) = Val(InputBox("输入一个数")) Next i For i=1 to 4
flag=0 For j=1 To 5-i
第1轮: for j=2 to 5
if a(1)>a(j) Then t=a(1): a(1)=a(j) : a(j)=t
End if Next j
第2轮: for j=3 to 5
if a(2)>a(j) Then t=a(2): a(2)=a(j) : a(j)=t
End if Next j
第3轮: for j=4 to 5
Next i Print For i = 1 To n
Print a(i); Next i
2、顺序交换法
我们再来看一种将最小的数放在第一个位置的算法 先设定用a(1)存放最小值,然后用a(1)分别与其后
的每一个数a(j)(j=2..5)进行比较,在比较过程中 如果a(1)不是小的数,就将a(1)与a(j)互换。
算法:不急于交换,先找出a(1)到a(5)中最小数所在 的位置K,一遍扫描完之后,再把a(1)与a(K)互换。

初中信息技术vb逻辑运算+各种VB函数

初中信息技术vb逻辑运算+各种VB函数

布尔运算,也称逻辑运算,通常来测试真假值,即判断正误。

1、运算类型
与(AND)、或(OR)、非(NOT),用T表示真(正确),用F表示假(错误)那么布尔运算结果示例如下:
运算结果举例
T AND T T 2>1 AND 3>2
T AND F F 2>1 AND 2>3
F AND F F 1>2 AND 2>3
2、运算优先级
如加减乘除四则运算有运算顺序一样,逻辑运算顺序的为:NOT 、AND 、OR
示例:
2>3 or not 50<89 and 3=3
=F or NOT T and T
=F or F AND T
=F or F
=F
Vb函数汇总
求绝对值:abs()
例如:abs(-10)=10 括号中也可以使算式abs(-10*2)=20
求整数部分:int()
例如:int(2.548)=2
求平方根:sqr()
例如:sqr(9)=3
转换为数值:val()
例如:val(text1.text)将文本框1中的数据转换为可以计算的数值,y遇到字母自动返回,如val(a12)=0 val(12a)=12
例如弹出对话框:msgbox
例如:msgbox(“确定”)弹出一个有“确定”按钮的对话框
截取字符串:mid
例如:mid(“”,m,n)从双引号中字符串的第m个字母开始的n个字符串mid(”office”,2,3)=“ffi”
转变为字符:str()。

VB常用算法

VB常用算法

♫ 求素数(素数是指只能被自己与1整除的数) 求素数(素数是指只能被自己与1整除的数) 在给定区间范围内寻找素数 孪生素数(间隔为2的相邻素数 的相邻素数) 孪生素数(间隔为 的相邻素数)
♫ 最大公约数
求最大公约数(辗转相除法) 求最大公约数(辗转相除法) 求最小公倍数(乘积/最大公约数或直接求最小公 求最小公倍数(乘积 最大公约数或直接求最小公 倍数) 倍数) 求分数约分(同除以最大公约数) 求分数约分(同除以最大公约数) 判断互质数(两个数的最大公约数是1) 判断互质数(两个数的最大公约数是 )
VB 常用算法
常用算法
♫ 穷举法 不重复,不遗漏地列举出所有可能的情况, 不重复,不遗漏地列举出所有可能的情况,从中寻找满 足条件的结果。适合用穷举法来解决的问题应满足: 足条件的结果。适合用穷举法来解决的问题应满足: 有明显的穷举范围 且穷举的数目应该是有限的
范围内寻找满足某个条件的…数 如:在…范围内寻找满足某个条件的 数 范围内寻找满足某个条件的
♫ 关于数组处理(配合 循环) 关于数组处理(配合For循环 循环)
输入:生成由随机数组成的数组( 循环结构+ 输入:生成由随机数组成的数组(For循环结构+随机数生成公式) 循环结构 随机数生成公式) 允许有重复; 允许有重复 不允许有重复(判断每次生成的数与前面的数是否相同, 不允许有重复(判断每次生成的数与前面的数是否相同,如有 相同,则本次生成的随机数作废,重新生成); 相同,则本次生成的随机数作废,重新生成); 输出: 输出: 窗体、文本框、图片框、立即窗口( 窗体、文本框、图片框、立即窗口(Debug.Print) ) 一维数组: 一维数组: 排序(选择排序,冒泡排序) 排序(选择排序,冒泡排序); 查找(顺序查找、二分查找); 查找(顺序查找、二分查找); 找数组最大、最小的元素,并记录位置; 找数组最大、最小的元素,并记录位置; 删除数组中重复的元素; 删除数组中重复的元素; 二维数组: 二维数组: 找最大、最小元素,并记录位置; 找最大、最小元素,并记录位置; 求行和、列和; 求行和、列和; 求主、副对角线元素之和; 求主、副对角线元素之和; 周边元素之和; 周边元素之和; 求鞍点(在该行中最大,在该列中最小); 求鞍点(在该行中最大,在该列中最小); 求凸点(在该行中最大,在该列中也最大); 求凸点(在该行中最大,在该列中也最大); 如何转秩输出。 如何转秩输出。

(完整版)vb常用算法介绍

(完整版)vb常用算法介绍

一、累加算法如果在设计过程中遇到求1+2+3+……+100等连加问题时,就可以用累加算法来解决。

累加算法的一般做法是设一个变量 s,作为累加器使用,初值为0,设一个变量用来保存加数。

一般在累加算法中的加数都是有规律可循,可结合循环程序来实现. 一个循环程序的设计,如果以下三方面确定下来:变量的赋初值、循环体的内容、循环结束条件,那么根据循环语句的格式,就很容易写出相应的循环程序。

例:求1+2+3++100的累加和,并打印输出分析:设累加器S,初值为0,加数用变量I表示当I=1时,累加器S= S+I = 0+1=1当I=2时,累加器S= S+I =1+2= 3当I=3时,累加器S=S+I =3+3 =6当I=4时,累加器S=S+I =6+4 =10……当I=100时,累加器S=S+100=1+2+3+……+99+100=5050不难看出,I的值从1变化到100的过程中,累加器均执行同一个操作:S=S+I,S=S+I的操作执行了100次,所以该程序段可写成:Dim I As Integer, S As IntegerS = 0 ‘给累加器s赋初值For S = 1 To 100S= S + I ‘I既作为循环变量,又作为加数Next IPrint "1+2+……100=”; S考虑一下:语句Print ”1+2+……100=”; S可以放在循环体中吗?延伸一下:上述算法对数值型数据,执行的是累加操作,如果对字符串型数据,完成的是字符串的连接.例:从键盘上输入一串字符,要求将其加密后显示在文本框Text1中,加密的方法是将每一个字符转变为它的后一位字符,如:A转变为B,1转变为2。

分析:因为涉及对每一个字符做相应处理再连接成一个新串,所以可以用类似累加的算法。

定义一个变量str1用来接收输入的原始字符串,变量str2用来接收加密后的字符串,初值为空串。

可用Len()函数得出字符串的长度,用循环控制,从左向右逐个取字符,截取字符的功能可用函数Mid()完成,由于要做加密操作,可利用Asc()函数获得字符的Ascii码,用Chr()函数获得Ascii码对应的字符。

VB基础知识ppt课件

VB基础知识ppt课件
例如,声明String变量str后,当输入“str.”后自动出现其属性和方法列表 ,如下图所示。
可编辑课件PPT
12
二 .常量
常量是一种采用名称表示某个数值的方式,将无意义的单纯数字 用有含义的符号来表示,增强程序的可读性。在VB中提供了很多内部 常量,而且还允许用户自己建立常量。
字符型
非整数型 单精度浮点型 双精度浮点型
单个字符型
字符串型
布尔型 日期型
对象型
可编辑课件PPT
2
二 类型转换
在程序设计,不可避免地要进行各种混合运算,例如将整数和浮 点数进行混合运算。在进行运算时,不同数型的数据要先转换成同一 类型,然后再进行运算。在VB中,数据类型转换有两种形式,即隐式 类型转换和显式类型转换。
Byte
Short
Integer
Long
Decimal
Single
Double
可编辑课件PPT
4
2). 显式类型转换
显式类型转换使用类型转换关键字。VB提供了几个这样的关键字 ,它们将括号中的表达式强制转换为所需的数据类型。这些关键字的 行为像函数,但编译器生成内联代码,所以执行速度比使用函数调用 要稍微快一些。教材中表3.2给出了可用的转换关键字以及功能。
在代码的开头通过Option Explicit语句更改默认设置。如果使用 Option Explicit语句更改显示声明开关,该设置将重写项目属性和编译器 选项设置,但只针对该语句所在的源代码文件。使用Option Explicit语句 的语法格式为:
Option Explicit [On|Off]
在使用变量前,一般先声明变量名称及类型,以便系统为它分配 存储单元。在VB可以使用显式声明变量和隐式显式声明变量两种方 式来声明变量。

初二信息技术VB程序设计初步人教版原创PPT课件教案资料

初二信息技术VB程序设计初步人教版原创PPT课件教案资料
3
引入
(一)什么是程序
1、日常生活中的程序 如:运动会程序、工作程序、会议程序 参加运动会程序:8:30 运动会开幕式
9:00 50米短跑 9:30 800米长跑 …… 2、计算机程序是什么呢?是谁先提出的?
4
冯•诺依曼“存储程序设计”:
通过事先编写的“一系列控制命令”来控制计算机的 工作, 计算机由程序控制。
较易
较易
高级语言
不能
英文
通俗易懂 通用性强
6
种类
机器语言 汇编语言
高级语言
显示大写字 母“A”
பைடு நூலகம்
1011 0010 0100 0001 1011 0100 0000 0010 1100 1101 0010 0001 1100 1101 0010 0000
Mov dl,41 Mov ah,02 Int 21 Int 20
Private Sub Form_Click() End Sub
14
Private Sub Form_Click() r=5 pi=3.14 s=pi*r*r
Print “圆的半径为: ”; r ; “厘米” Print “圆的面积为: ”; s ; “平方厘米” End Sub (5)保存文件
15
练习: 做如图所示的一个三角形面积计算器
16
结束
9
2、用VB创建一个程序 (1)启动VB (2)创建工程:
10
11
工具栏
工具箱 窗体 窗口 工程 窗口
菜单栏
工程管理 窗口
属性窗口
窗体布局窗 口
12
(3)设计界面 将“form1”更名为“我的第一个程序”
在属性窗口,将 “Caption”中的 “Form1”更改为“我的 第一个程序”

VB程序实现算法三种基本结构课件 PPT

VB程序实现算法三种基本结构课件 PPT
VB程序实现算法三种基本结构
课前准备
➢ 算法:解决问题的方法和步骤
➢ 三种基本结构:
顺序结构 分支结构 (选择) 循环结构 (重复)
(1)基本知识点 基本知识点表格
(2)程序设计讲与练
• 例1:先后输入(使用r=inputbox(“”))两个正整数x,
y,把较大的数的值赋值给变量max并输出。
思考: 该题是什么结构?
流程图
分支结构
run
3.课内探究
要求
➢ 参照学案的表格,完成练习1、2 ➢ 程序的窗体已经创建,只需要补充代码 ➢ 注意控制时间
练习1-讲解(1)
Ø ①书写格式要规范,可增强程序
的可读性;
Ø ②关键词应用要正确,如 If 与
End If 的对称使用,Elseif 与 Else If 的区别;
• D. a=t : b=a : t=b
5.巩固练习(2)
• 练习4.右图程序的功能是( ) • • A.求输入的5个数的积 • B.求输入的6个数的最大值 • C.统计输入的数的个数 • D.求输入的6个数的积
感谢您的聆听!
Ø ③程序中”优秀”、”良好”、”
不合格” 中引号的正确使用。
练习1-讲解(2)
run
练习2-讲解(1)
Ø ①For与Next的对应,Do While
与Loop的对应;
Ø ②语句块中一定要有对循环变量
的控制。
用 For 还是 Do While?
练习2-讲解(2)
For
run run
练习2--拓展
• 假如问题改为: • 多少个月后存款量超过
500元?
run
run
4.知识点回顾
• 花1分钟回顾课堂内容

vb常见算法

vb常见算法

0
15
1
“凑”
F
2

10
3

F
4
5
5

F
6
0
= 30
“凑”的科学
1、一一列举、不能遗漏 2、根据条件找到符合条件的解
枚举算法
算法思想:“一一罗列,逐个判断”。一一列举问题所 有可能的情况,并根据题目的条件逐个做出判断,从中挑出 符合条件的解。
• 用VB实现枚举算法的一般格式 For 循环变量= 初值 To 终值 Step 步长
x1=(-b+sqr(b*b-4*a*c))/(2*a) x2=(-b-sqr(b*b-4*a*c))/(2*a) text1.text =“x1=“+str(x1) text2.text =“x2=“+str(x2) Else Print “方程无实数解” End If
解析算法
【解析】 用数学公式描述客观事物间的数量关系。 【解析算法】用解析的方法找出表示问题的前提条件与
翁* 5 +母* 3 +雏/3 = 100
x:(0~20) y:(0~33) z=100-x-y 5*x+3*y+z/3=100
For x = 0 To 20 For y = 0 To 33 z=100-x-y If 5*x+3*y+z/3=100 Then Print x,y,z End If Next y
i 的取值范围00~99 2、求密码X与i有怎样的规律可循?
X=25006+i*10 3、要满足什么条件可能密码X才是正确密码?
X是37或者67的倍数
小结
今天我们了解了两种算法:解析算法和枚 举算法。其实,常用算法还有:排序算法(冒 泡排序、选择排序)、查找算法(顺序查找、 对分查找)、递归算法等。

vb常用算法

vb常用算法

VB常用算法算法1 交换2个变量的值算法思想:若交换两个变量的值,必须引入第三个新的变量进行传递。

交换a,b的值: t=a:a=b:b=t或者t=b:b=a:a=t算法2 产生随机数算法思想:生成一个[a,b]区间的整数公式为Int(Rnd*(b-a+1))+a1.自动生成[0,100]之间的随机数: Int(Rnd*101)2.自动生成2位随机整数: Int(Rnd*90+10)例:自动产生10个100~999之间的随机整数,并放到数组a中Dim a(10 ) as integerFor i=1 to 10a(i) =Int(Rnd*900)+100Next i算法3判断一个数是否能被另一个数整除算法思想:可以用整除的定义(余数为0)或X除以Y等于X整除Y等表达式进行判断。

条件表达式可以为:X mod Y=0或X\Y=X/Y或Int(X/Y)=X/Y如果以上条件表达式为True,则表示X能被Y整除。

例题:统计0—100之间能被3整除的数的个数、累加和及其平均值。

s=0n=0For i=0 To 100If i mod 3=0 Thens=s+in=n+1End IfNext iPrint n,s,s/n算法4 求阶乘和累加和算法思想:使用循环语句,并用一个变量存放累加的中间及最终结果。

注:(1)累加求和时变量初值为0。

(2)计算阶乘时变量初值为1。

(3)统计计个数(计数)时可用一个变量作为统计个数的累加变量,每次加1即可。

(4)求平均值算法思想是先求和,再除以个数。

(5)条件求和(或计数):在循环语句中加入If-End If判断语句。

1.求1 ~n个自然数的阶乘s=1For i=1 to ns=s*iNext i2.求1 ~n个自然数的累加和s=0For i=1 to ns=s+iNext i例题:计算1到10之间所有整数的累加和以及10!。

n=10sum= 0prod= 1For i=1 To 10sum=sum+ iprod=prod* iNext iPrint sum,prod例题:统计1—100之间能被3和7整除的数的个数、并求它们的累加和。

VB递归算法PPT文档资料

VB递归算法PPT文档资料
递归算法
1
2
老和尚的故事…
从前有座山, 山里有座庙, 庙里有个老和尚, 给小和尚讲故事, 故事是什么呢?
从前有座山, 山里有座庙, 庙里有个老和尚, 给小和尚讲故事, 故事是什么呢?
从前有座山, 山里有座庙, 庙里有个老和尚, 给小和尚讲故事, 故事是什么呢?
3
案例一、小猴吃桃
• 有一天小猴子摘若干个桃子,当
End Function
10
递归
将要处理的问题划分为一个或多 个子问题,而处理子问题的方法与 处理原问题的方法是一样的,这样 的处理方法称为递归
11
递归算法小结
• 在程序中,递归算法表 现为函数在运行过程中 调用了自己。
• 每一次递归调用,在处 理问题的规模上都有所 缩小
• 在问题的规模极小时, 必须能给出直接的解答
从前有座山, 山里有座庙, 庙里有个老和尚, 给小和尚讲故事, 故事是什么呢?
这个过程算不算是递归? 怎么改才能算是递归?
13
拓展练习:求 n!
• n! = 1×2×3×4×……×n • n!=(n-1)! ×n • 1!=1
14
拓展练习:恶魔与农夫
• 有一位农夫不满于自己的贫困,一天,他正在抱怨上 天的不公平,一个恶魔出现在他的眼前.他对农夫 说:“我可以帮助你,你只要从桥上每走一次,你口袋 里的钱就会增加一倍.但是作为报酬,每次你要付给 我24法郎,如何?”农夫看了看自己口袋里的钱,不假 思索地答应了。但是三次之后,农夫身上连一毛 钱都没剩下。那么这个农民在遇见魔鬼以前有多 少钱呢?
zz是是xx除除yy得到的余数得到的余数公约数公约数elseelse公约数公约数的公约数endfunctiongysxintegerasintegerfunctiongysxintegerasintegerdimintegerdimgysgyselseelsegysgysendendfunctionendfunction11递归递归将要处理的问题划分为一个或多将要处理的问题划分为一个或多个子问题而处理子问题的方法与个子问题而处理子问题的方法与处理原问题的方法是一样的这样处理原问题的方法是一样的这样的处理方法称为的处理方法称为递归递归12递归算法小结递归算法小结在程序中递归算法表在程序中递归算法表现为现为函数在运行过程中函数在运行过程中调用了自己调用了自己

VB_常用算法

VB_常用算法

1.数据处理 (2)1.1冒泡法排序 (2)1.2选择法排序 (2)1.3顺序查找 (2)1.4折半查找 (3)1.5阶乖与规则数求和 (3)1.6最值与平均和素数 (4)1.7进制间转换 (5)2.字符处理 (5)2.1简单加密和解密 (5)2.2统计文本单词的个数 (6)2.3如果单词仅以空格作为分隔符: (6)2.4大写字符的统计 (7)2.5逐个字符处理 (7)3.图形处理 (7)3.1画出任意封闭曲线 (7)3.2画出任意封闭折线 (8)3.3根据条件画规则图形 (8)1.数据处理1.1冒泡法排序核心,挨着的两两比较For i = 1 To 10For j = 10 To i + 1 step -1If a(j) < a(j - 1) Thent = a(j): a(j) = a(j - 1): a(j - 1) = t //小数上沸END IfNext jPrint a(i);Next iN个数的For i = 1 To n - 1For j = 1 To n-iIf a(j) > a(j+1) Then //大数沉底temp=a(j)a(j)=a(j+1)a(j+1)=temp //大数沉底End ifNext jNext i1.2选择法排序核心,取第一个挨个的和后面的比较For i = 1 To n - 1p = iFor j = i + 1 To nIf a(p) > a(j) Then p = jNext jt = a(i)a(i) = a(p)a(p) = tNext i1.3顺序查找For p=1 to nIf x=x( p) Then exit forNext pIf p<=n thenprint “找到”,xelseprint “没找到”End if1.4折半查找find = False '判断是否找到的逻辑变量,初值为Falsetop = 1bot = n 'n 为数组下标的上界Do While top <= bot And Not findmid = (top + bot) / 2If x = a(mid) Thenfind = TruePrint "the position is "; midElseIf x < a(mid) Thenbot = mid - 1Elsetop = mid + 1End IfLoopIf (Not find) Then Print x; "has not found"1.5阶乖与规则数求和阶乖:Private Sub Command1_Click()Dim N, k, p, s As IntegerN = Val(Text1.Text)p = 1: s = 0For k = 1 To Np = p * ks = s + pNextLabel1.Caption = "1!+2!+...+" & N & "!=" & sEnd Sub 规则数据验证:2212121212134321=------nPrivate Sub Command1_Click()n = Val(Text1.Text)s = 3For k = 1 To nV = 2 ^ ks = s - 1 / VD = Abs(2 - s)Label1.Caption = DEnd Sub形如:1+21+321+4321+54321+。

VB递归算法 PPT课件

VB递归算法 PPT课件
End Sub
Function f(n as integer)as integer if n<=1 then f=1
Else f=n* f(n-1)
End if End function
观察如下VB程序段:
Function fx(n As Integer) As Long
If n = 1 Then
练习题
➢ 用递归算法求 1~n 个连续自然数的和
Function sum(n As Integer) As Integer If n = 1 Then sum = 1 Else sum = sum(n - 1) + n End If End Function
Private Sub Command1_Click() Dim n As Integer n = Val(Text1.Text) Text2.Text = Str(sum(n)) End Sub
fact = 1 ……
fact (3)=6 返回
fact (2)=2 返回
fact (1)=1 返回
递归算法的实现要点
➢ (1)有明确的结束递归的边界条件(又称终止条件)以及结束 时的边界值,可以通过条件语句(If语句)来实现
➢ (2)函数的描述中包含其本身,即能用递归形式表示,且递 归终止条件的发展。
If n <= 1 Then
fact = 1
Else
fact = n * fact (n - 1)
End If
End Function
Private Sub Command1_Click()
Dim y As Integer y = fact(3) Print y
End Sub

vb

vb

(-b+sqr(b^2-4*a*c))/(2*a) b+sqr(b^2))/
3.关系表达式和逻辑表达式
当使用关系运算符或逻辑运算符时,表达式又称为关系表达 当使用关系运算符或逻辑运算符时, 式或逻辑表达式。 式或逻辑表达式。 关系运算一般表示一个简单的条件。 关系运算一般表示一个简单的条件。 例如:age>20 、score>80、x+y>z等。 score>80、 例如: 逻辑表达式表示较复杂的条件。 逻辑表达式表示较复杂的条件。 例如:数学中的0<x<5,写成VB表达式应为0<x And x<5。 表达式应为0< <5。 例如:数学中的0<x<5,写成VB表达式应为 x
2.表达式的书写规则
(1)表达式中的每个字符没有高低、大小的区别。 表达式中的每个字符没有高低、大小的区别。 (2)只能使用圆括号,可以多重使用,圆括号必须成对出现。 只能使用圆括号,可以多重使用,圆括号必须成对出现。 (3)VB表达式中的乘号“*”不能省略。 VB表达式中的乘号 表达式中的乘号“ 不能省略。 (4)能用内部函数的地方尽量使用内部函数。 能用内部函数的地方尽量使用内部函数。 例如:数学式 例如: 写成VB表达式为: 写成VB表达式为: 表达式为
字符串表达式
字符串表达式是采用连接符将两个字符串常量、字符串变量、 字符串表达式是采用连接符将两个字符串常量、字符串变量、字符串函数 连接起来的式子。 连接起来的式子。 连接符有两个: 和 连接符有两个:&和+ 其作用都是将两个字符串连接起来,运算结果是一个字符串。 其作用都是将两个字符串连接起来,运算结果是一个字符串。 例如: 例如:
简易计算器

信息技术vb常用算法(共20张PPT)

信息技术vb常用算法(共20张PPT)
a(j-1)=a(j) Next i
数组元素的插入
Dim a(1 to 10) as integer X=val(text1.text) For i=1 to 9 If x<a(i) then exit for Next i For j=10 to i step-1
a(j+1)=a(j) Next j a(i)=x
算式9 +(3-1)*3+10/2
9 3 1 - 3 * + 10 2 / + 9 2 3 * + 10 2 / + 9 6 + 10 2 / + 15 10 2 / + 15 5 + 20
Private Sub Command1_Click()
Dim a(1 To 11) As String
减法运算
前序表达式
运算符放在两个运算对象的前面,所有的 计算按运算符出现的顺序,严格从右向左进 行,不考虑运算符的优先规则
算式9 +(3-1)*3+10/2
+ 9 + * - 3 1 3 / 10 2 +9 +*-3 1 35 +9 +*235 +9 +65 + 9 11 20
Private Sub Command2_Click()
For j = i + 1 To t
a(j - 2) = a(j)
Next j
t=t–2:i=t
flag = 1
End If
If flag = 0 Then i = i - 1
Loop
Text2.Text = a(1)
End Sub
后序表达式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

减法运算

前序表达式
运算符放在两个运算对象的前面,所有的 计算按运算符出现的顺序,严格从右向左进 行,不考虑运算符的优先规则
算式9 +(3-1)*3+10/2
+ 9 + * - 3 1 3 / 10 2 + 9 + * - 3 1 3 5
+ 9 + * 2 3 5
+ 9 + 6 5 + 9 11 20




Private Sub Command1_Click() Dim c(1 To 50) As Integer a = Text1.Text : b = Text2.Text alen = Len(a) : blen = Len(b) jie = 1 For i = 1 To alen If i <= blen Then ad = Val(Mid(a, alen - i + 1, 1)) bd = Val(Mid(b, blen - i + 1, 1)) e = ad + 10 - bd - 1 + jie Else ad = Val(Mid(a, alen - i + 1, 1)) e = ad + 10 + jie - 1 End If c(i) = e Mod 10 jie = e \ 10 Next i For i = 1 To alen - 1 s = Str(c(i)) + s Next i If c(alen) <> 0 Then s = Str(c(alen)) + s Text3.Text = s End Sub






Private Sub Command2_Click() Dim a(1 To 11) As String t=n i=t Do While t >= 3 ch2 = a(i): ch1 = a(i - 1): ch3 = a(i - 2) flag = 0 If ch3 = "+" Then a(i - 2) = Str(Val(ch1)+Val(ch2)) For j = i + 1 To t a(j - 2) = a(j) Next j t=t–2:i=t flag = 1 End If If flag = 0 Then i = i - 1 Loop Text2.Text = a(1) End Sub
后序表达式
运算符放在两个运算对象的后面,所有的 计算按运算符出现的顺序,严格从左向右进 行,不考虑运算符的优先规则
算式9 +(3-1)*3+10/2
ห้องสมุดไป่ตู้
9 3 1 - 3 * + 10 2 / + 9 2 3 * + 10 2 / + 9 6 + 10 2 / + 15 10 2 / + 15 5 + 20



Private Sub Command1_Click() Dim a(1 To 11) As String t = n: i = 1: k = 0 Do While t >= 3 ch1 = a(i): ch2 = a(i + 1): ch3 = a(i + 2) flag = 0 If ch3 = “+" Then a(i + 2) = Str(Val(ch1) + Val(ch2)) For j = k To 1 Step -1 a(i - j + 2) = a(i - j) Next j t = t - 2: flag = 1: k = 0 End If If flag = 0 Then k = k + 1 i=i+1 Loop Text1.Text = a(i + 1) End Sub
VB常用算法
进制转换
(十进制数转换为其它进制)
25D=11001B
Function tran(x As Integer, r As Integer) As String Dim s As String Dim c As Integer Do While x<> 0 c = x Mod r If c >= 10 Then s = Chr(Asc("A") + c - 10) + s Else s = Str(c) + s End If x=x\r Loop tran = s End Function
表示一个字符是字母: a>=“A” and a<=“Z” or a>=“a” and a<=“z” 表示一个字符是非字母: a<“A” or a>“Z” and a<“a” or a>“z” 或 Not (a>=“A” and a<=“Z” or a>=“a” and a<=“z”)


字符串的删除




Private Sub Command2_Click() s = "a red car" s1 = "red " i=3
s = Mid(s, 1, i - 1) + Mid(s, i + Len(s1), Len(s) - Len(s1)-i+1)


Text1.Text = s End Sub

字符串的插入




Private Sub Command1_Click() s = "a red car" s1 = "nice " i=3
s = Mid(s, 1, i - 1) + s1 + Mid(s, i, Len(s) - i + 1)


Text1.Text = s End Sub
a(j+1)=a(j)
Next j a(i)=x

高精度运算
高精度运算,是指参与运算的数 值的范围大大超出了标准数据类型, 改用字符串或数组来表示数据,拆成 一位一位或一个个数组来进行运算



Private Sub Command1_Click() Dim c(1 To 20) As Integer a = Text1.Text : b = Text2.Text alen = Len(a) : blen = Len(b) t=0 For i = 1 To alen If i <= blen Then ad = Val(Mid(a, alen - i + 1, 1)) bd = Val(Mid(b, blen - i + 1, 1)) e = ad + bd + t Else ad = Val(Mid(a, alen - i + 1, 1))
加法运算
e = ad + t End If If e >= 10 Then c(i) = e - 10: t = 1 Else c(i) = e: t = 0 Next i For i = 1 To alen s = Str(c(i)) + s Next i If t = 1 Then s = Str(t) + s Text3.Text = s End Sub

aa = "0123456789ABCDEF" Do While x <> 0 c = x Mod r s = Mid(aa, c + 1, 1)+s x=x\r Loop
二进制运算



Private Sub Command1_Click() Dim c(1 To 10) As Integer Dim x1, y1 As Integer Dim s As String x = Text1.Text y = Text2.Text For i = 1 To Len(x) x1 = Val(Mid(x, Len(x) - i + 1, 1)) y1 = Val(Mid(y, Len(y) - i + 1, 1)) c(i) = x1 + y1 + t If c(i) >= 2 Then c(i) = c(i) Mod 2 : t = 1 Else t = 0 Next i For i = 1 To Len(x) s = Str(c(i)) + s Next i If t = 1 Then s = Str(t) + s Text3.Text = s End Sub
数组元素的删除
Dim a(1 to 10) as integer X=val(text1.text) For i=1 to 10 If x=a(i) then exit for Next i For j= i+1 to 10
a(j-1)=a(j)
Next i

数组元素的插入
Dim a(1 to 10) as integer X=val(text1.text) For i=1 to 9 If x<a(i) then exit for Next i For j=10 to i step-1
相关文档
最新文档