For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y

Slides:



Advertisements
Similar presentations
编程加工 信息的. 趣味导入拓展提升大显身手总结反思学以致用 传说古代印度有个国王叫舍罕,他很迷恋棋类,而 宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩 得爱不释手,决定奖赏宰相。达依尔说:陛下,我别无 他求,请你在这张棋盘的第一个格子里赏我 1 粒麦子; 在第二个格子里赏我 2 粒麦子;在第三个格子里赏我.
Advertisements

第2章 Visual Basic 6.0编程基础 (第一部分)
第四章 控制结构.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
情緒與壓力管理─背部舒緩 指導老師:彭易璟 第六組組員:會資三乙 499A0047 謝宛霖 會資三乙 499A0019 吳汶諭
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
Access数据库程序设计 总复习.
高等医药院校药学类第三轮规划教材——大学计算机基础
三、课后练习1: p.24练习第一题程序 程序: INPUT “F= ”;F C=(F-32)*5/9 PRINT “C= ”;C END
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
Visual Basic程序设计.
BLANK overview.
VB內建函數與應用.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
初识Visual Basic.
算法与程序设计.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
计算机程序设计强化复习 Visual Basic 6.0.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
第5章 Visual Basic控制结构 之 常用算法举例
PCR300 (13.56MHz) Reader RS232/USB.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
江西财经大学信息管理学院 《数据库应用》课程组2007
小结 郭清溥.
经典算法之 冒 泡 排 序.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
1位选手参加了歌唱比赛,评委们的评分如下:
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
解析算法与枚举算法.
顺序查找与二分查找复习.
算法与Visual Basic程序基础(二)
信息的加工 Word中查找和替换、自动更正、批注、修订 Excel中公式和函数、排序和筛选、图表的建立和编辑 字符识别OCR.
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
Presentation transcript:

For x = 0 To 9 For y = 0 To 9 z = 25006 + 100*x + 10*y …… Next y 循环的嵌套: 一个循环体内又包含另一个完整的循环结构 For x = 0 To 9 For y = 0 To 9 z = 25006 + 100*x + 10*y …… Next y Next x 外 层 循 环 内 层 循 环 外层循环变量x取0时,内层循环就要执行10次(y依次取0,1,2,…,9) 外层循环变量x取1时,内层循环再次执行10次(y依次取0,1,2,…,9) …… 共执行10*10次,共执行100次

3 3 2 7 4 9 声明一个变量并赋值 A 声明一个数组并赋值 A Dim A As Integer A = 3 Dim A(1 to 5) As Integer A(1)=3 : A(2)=2 : A(3)=7 : A(4)=4 : A(5)=9 A(1) A(2) A(3) A(4) A(5) A 3 2 7 4 9

Dim 数组名(下界 To 上界) As 数据类型 数组是若干具有相同类型的数据的集合。 每一个数据称为数据元素,通过数组名和该数据在数组中的序号来标识。 Dim 数组名(下界 To 上界) As 数据类型 例如:Dim k( 5 To 9 ) As Double 声明了一个具有5个双精度实数型数据组成的数组 它的数组元素分别为k(5)、 k(6)、 k(7)、 k(8)、 k(9) 例如:Dim Ary(10) As String 即Dim Ary(0 To 10) As String 当下界为零时,可以省略“0 To”不写

自定义函数 注意:函数必须有返回值,且通过对函数名的赋值来完成。 赋值方法:函数名=表达式 Private Sub Command1_Click() Dim yyyy As Integer yyyy = Val(Text1.Text) Label2.Caption = L (yyyy) End Sub Function L (y As Integer) As String If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then L = "闰年,366天" Else L = "平年,365天" End If End Function 注意:函数必须有返回值,且通过对函数名的赋值来完成。 赋值方法:函数名=表达式

解析算法 练习:已知三角形的三条边长a、b、c分别为5,7,8,求该三角形面积。 Private Sub Command1_Click() Dim a,b,c,p,s As Single a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If a+b>c and b+c>a and a+c>b Then p=(a+b+c)/2 s=Sqr(p*(p-a)*(p-b)*(p-c)) Text4.Text=Str(s) Else Text4.Text=“三角形不成立!” End if End Sub 解析算法 用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解

一张单据上有一个5位数的编码(25??6),其百位数和十位数处已经变得模糊不清,但是知道这个数是67的倍数,请找出所有符合条件的5位数。 For x = 25006 To 25996 step 10 If _____________ Then List1.AddItem Str(x) End If Next x 25??6 x Mod 67 = 0 For x = 0 to 99 z = _____________ If_____________Then List1.AddItem Str(z) End If Next i 枚举算法 25006 + x * 10 把问题所有的可能解一一地罗列出来,并对每一个可能解进行判断,以确定这个可能解是否是问题的真正解 z Mod 67 = 0

冒泡排序 a(1) a(2) a(3) a(4) a(5) a(6) 17 For i = 1 To 5 For j = 6 To i + 1 Step -1 If a(j) < a(j - 1) Then k = a(j) a(j) = a(j - 1) a(j - 1) = k End If Next j Next i i j 1 6~2 2 6~3 3 6~4 4 6~5 5 6 68 43 6 30 55

冒泡排序的变化 最小的数往上浮 最大的数往下沉 最大的数往上浮 最小的数往下沉 For i = 1 To 5 For j = 6 To i + 1 Step -1 If a(j) < a(j - 1) Then k = a(j) a(j) = a(j - 1) a(j - 1) = k End If Next j Next i For i = 1 To 5 For j = 1 To 6 - i If a(j) > a(j + 1) Then k = a(j) a(j) = a(j + 1) a(j + 1) = k End If Next j Next i 最小的数往上浮 最大的数往下沉 For i = 1 To 5 For j = 6 To i + 1 Step -1 If a(j) > a(j - 1) Then k = a(j) a(j) = a(j - 1) a(j - 1) = k End If Next j Next i For i = 1 To 5 For j = 1 To 6 - i If a(j) < a(j + 1) Then k = a(j) a(j) = a(j + 1) a(j + 1) = k End If Next j Next i 最大的数往上浮 最小的数往下沉

选择排序 a(1) a(2) a(3) a(4) a(5) a(6) 17 For i = 1 To 5 k = i For j = i + 1 To 6 If a(j) < a(k) Then k = j Next j If i <> k Then t = a(i) : a(i) = a(k) : a(k) = t End If Next i i j 1 2~6 2 3~6 3 4~6 4 5~6 5 6 68 43 6 30 55

选择排序的变化 最小的数往上交换 最小的数往下交换 最大的数往上交换 最大的数往下交换 For i = 1 To 5 k = i For j = i + 1 To 6 If a(j) < a(k) Then k = j Next j If i <> k Then t = a(i) : a(i) = a(k) : a(k) = t End If Next i For i = 6 To 2 k = i For j = i -1 To 1 If a(j) < a(k) Then k = j Next j If i <> k Then t = a(i) : a(i) = a(k) : a(k) = t End If Next i 最小的数往上交换 最小的数往下交换 For i = 1 To 5 k = i For j = i + 1 To 6 If a(j) > a(k) Then k = j Next j If i <> k Then t = a(i) : a(i) = a(k) : a(k) = t End If Next i For i = 6 To 2 k = i For j = i - 1To 1 If a(j) > a(k) Then k = j Next j If i <> k Then t = a(i) : a(i) = a(k) : a(k) = t End If Next i 最大的数往上交换 最大的数往下交换

顺序查找 17 68 43 6 30 55 Key = Val(Text1.Text) For i = 1 To 6 If Key = a(i) Then search = i Exit For End If Next i If search > 0 Then Label1.Caption = "在a(“+search+")中找到该数据" Else Label1.Caption = "找不到该数据" a(1) a(2) a(3) a(4) a(5) a(6) 17 68 43 6 30 55

a(1) 10 15 17 18 22 27 35 45 48 52 65 67 72 85 97 98 i 对分查找 a(2) Key = Val(Text1.Text) i = 1: j = 16: search = 0 Do While i <= j m = Fix((i + j) / 2) If Key < a(m) Then j = m - 1 ElseIf Key > a(m) Then i = m + 1 Else search = m Exit Do End If Loop If search > 0 Then Label1.Caption= “在a(“+search+")中找到该数据" Label1.Caption= "找不到该数据" a(3) m a(4) i a(5) m a(6) a(7) i,j,m j a(8) m a(9) a(10) a(11) a(12) a(13) a(14) a(15) a(16) j

例题:计算正整数n的阶乘n! 递归:如何按照相同的规则,把规模较大的问题逐步化解为规模较小的问题的算法。 n! = n×(n-1)×(n-2) ……×3 ×2 ×1 如果我们用函数f(n)求n!,则f(n) = n×f(n-1) 如求f(5),f(5)=5×f (4) f(4)=4×f(3) f(3)=3×f(2) f(2)=2×f(1) f(1)=1 那么已知f(1)=1,则 f(2)=2×f(1)=2×1=2 f(3)=3×f(2)=3×2=6 f(4)=4×f(3)=4×6=24 f(5)=5×f(4)=5×24=120 递归:如何按照相同的规则,把规模较大的问题逐步化解为规模较小的问题的算法。 递归的展开 递归:如何按照相同的规则,把规模较大的问题逐步化解为规模较小的问题的算法。 递归的返回

递归:如何按照相同的规则,把规模较大的问题逐步化解为规模较小的问题的算法。 正整数n的阶乘的递归表达式 Function f(n As Integer) As Long If n = 1 Then f = 1 If n > 1 Then f = n * f(n - 1) End Function 递归函数过程中调用函数本身

VB连接Access