江西财经大学信息管理学院 《数据库应用》课程组2007

Slides:



Advertisements
Similar presentations
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
Advertisements

ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
第四章 控制结构.
赋值语句与输入、输出语句.
Access数据库程序设计 总复习.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
四 VBScript编程基础.
VBA应用开发与实例 李 辉 微软课程培训讲师. VBA应用开发与实例 李 辉 微软课程培训讲师.
Visual Basic程序设计.
BLANK overview.
Chapter 1 複習.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
算法与程序设计.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
数学3(必修)—— 算 法 ALGORITHM 苏州大学数学科学学院 徐稼红
流程控制、陣列 台南市聖功女子高級中學 毛全良.
计算机程序设计强化复习 Visual Basic 6.0.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
Visual Basic 程序设计 教师:王 杨 电话:
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
第3 章 VBScript的控制结构.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
第5章 Visual Basic控制结构 之 常用算法举例
PCR300 (13.56MHz) Reader RS232/USB.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
小结 郭清溥.
经典算法之 冒 泡 排 序.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
Excel高级功能培训 PSMT质量部 王新民
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
本节内容 Lua基本语法.
單元名稱:結構化程式設計 報告人 劉洲溶.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
顺序查找与二分查找复习.
算法与Visual Basic程序基础(二)
程序调试与错误处理.
1.2.3 循环语句.
講師:劉俊民(金剛) Idea 創意應用科技有限公司
Presentation transcript:

江西财经大学信息管理学院 《数据库应用》课程组2007 第8章 VBA程序设计基础 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 结构化程序设计基础 程序设计过程 算法 程序流程图及示例 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.1 程序设计过程 程序设计即是计算机用户根据解决某一问题的步骤,按一定的逻辑关系,将一系列的指令组合在一起。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 程序 计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。 通常,计算机程序要经过编译和链接而成为一种人们不易理解而计算机理解的格式,然后运行。未经编译就可运行的程序通常称之为脚本程序。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.2 算法(1) 程序的设计过程,核心问题是设计一个合理、有效的算法。 一般认为,算法就是在 有限的时间内,可以根据明确规定的运算规则,在 有穷步骤内得出确切计算结果的机械步骤或能运行的计算程序。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.2 算法(2) 算法特性: (1)有序性:每个步骤被执行的顺序是确定的。 (2)有限性:即解题步骤是有限的,无穷的步骤意味无解。 (3)确定性:多次运行同样一个程序,其结果相同。 此外,算法可以没有输入(因为输入由计算机自动产生),但一定要有输出,输出用来表示问题是否有解。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.2 算法(3) 三种基本控制结构:顺序、分支、循环 顺序结构是程序设计中最基本的结构。在该结构中,程序的执行是按命令出现的先后顺序依次执行的。 分支结构是按给定的选择条件成立与否来确定程序的走向。分支结构可分为双重分支选择和多重分支选择。在任何条件下,无论分支多少,只能选择其一。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.2 算法(4) 三种基本控制结构:顺序、分支、循环 循环结构是一种重复结构,即某一程序段将被反复执行若干次。按循环的嵌套层次,循环可分为简单循环结构和循环嵌套(也称为多重循环)结构。按循环体执行的条件性质,循环又可分为While循环和Until循环。 无论何种类型的循环结构,都要确保循环的重复执行能够终止。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.2 算法(5) 结构化程序是指仅由三种基本控制结构组成的程序,它具有以下特点: (1) 整个程序模块化。 (2) 每个模块只有一个入口和一个出口。 (3) 每个模块都应能单独执行,且无死循环。 (4) 采用黑箱的思想,宏观地描述任何一个程序,可以将它看成为顺序结构。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 8.3 程序流程图及示例 ANSI流程图 N-S图 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 1. ANSI流程图(1) 判断框 箭头:表示程序流向 连接符号:表示图标之间相互连接关系 判断框:表示根据条件决定程序走向 过程:表示该流程部分是一个过程 输入/输出框:表示数据的输入、输出操作 处理框:表示对数据进行处理 起止框:表示程序的开始或结束 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 1. ANSI流程图(2) 顺序结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2. N-S图 (1) 顺序结构 语句块1 语句块2 语句块3 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组 顺序结构 函数 VAL(字符表达式) 功能:将字符转化为数字 如?VAL(“123”) 答案为 :123 ?VAL(“123as”) 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 顺序结构 Str(数值表达式) 功能:将数字转化为字符 Inputbox(“提示信息”) 功能: 得到一个字符型值 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 顺序语句例句 输入两个数,然后输出这两数值 Dim a,b as double a=val(inputbox(“请输入一个数至a”)) b=val(inputbox(“请输入一个数至b”)) debug.print “a的值为”;a debug.print “b的值为”;b 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组2007 1. ANSI流程图(3) 条件分支结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2. N-S图 (2) 条件分支结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 1. ANSI流程图(5) 多重条件分支结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组 2. N-S图 (3) 多重分支选择语句 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 2.分支结构程序(1) 假 真 条件 语句块1 语句块2 双重分支选择语句 语句格式: If <条件> Then <语句块1> [Else <语句块2>] End If 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 2.分支结构程序(2) 双重分支选择语句 语句格式: If <条件> Then <语句块1> [Else <语句块2>] End If 语句块1 语句块2 条件 真 假 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 条件分支结构例句 输入两个数,按照从小到大顺序输出 Dim a,b as double a=val(inputbox(“请输入一个数至a”)) b=val(inputbox(“请输入一个数至b”)) if a>=b then debug.print b, a else debug.print a;b endif 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 条件语句 输入两个数,按照从小到大顺序输出 Dim a,b,t as double a=val(inputbox(“请输入一个数至a”)) b=val(inputbox(“请输入一个数至b”)) if a>=b then t=a a=b b=t endif debug.print a;b 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 条件语句 求两个两位整数相加 Public Sub sj() Dim a, b, c As Double a = Int(Rnd() * 100) b = Int(Rnd() * 100) Debug.Print "a的值为", a Debug.Print "b的值", b c = a + b Debug.Print "和为", c End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 条件语句 Public Sub shu() Dim a, b, c As Double a = Int(Val(InputBox("请输入一个数a"))) b = Int(Val(InputBox("请输入一个数b"))) If a > 9 And a < 100 And b > 9 And b < 100 Then c = a + b Debug.Print "和为", c Else Debug.Print "输入数据有误" End If 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组2007 2.分支结构程序(3) If <条件1> Then [<语句块1>] [ElseIf <条件2> Then [<语句块2>]] ... [ElseIf <条件n> Then [<语句块n>]] [Else [<语句块>]] End If 多重分支选择语句 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2.分支结构程序(4) If <条件1> Then [<语句块1>] [ElseIf <条件2> Then [<语句块2>]] ... [ElseIf <条件n> Then [<语句块n>]] [Else [<语句块>]] End If 多重分支选择语句 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2. 分支结构程序(5) 例6-8:从键盘随机输入成绩分数,根据成绩分数来判断该成绩属于优、良、中还是差。规定: 90≤成绩≤100为优; 80≤成绩<90为良; 60≤成绩<80为中; 成绩<60为差; 其它为非法输入。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2. 分支结构程序(6) Public Sub multicase() Dim grade As Integer grade = Val(InputBox("请输入成绩")) If grade <= 100 And grade >= 90 Then Debug.Print Str(grade) & "的成绩为:" & "优" '缩格的目的是增加可读性 ElseIf grade < 90 And grade >= 80 Then Debug.Print Str(grade) & "的成绩为:" & "良" ElseIf grade < 80 And grade >= 60 Then Debug.Print Str(grade) & "的成绩为:" & "中" ElseIf grade < 60 And grade > 0 Then Debug.Print Str(grade) & "的成绩为:" & "差" Else Debug.Print "您输入的成绩不对!" End If End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2.分支结构程序(3) Select Case <测试表达式> [Case <条件表达式1> [<语句块1>]] ... [Case Else [<语句块>]] End Select 多重分支选择语句 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2.分支结构程序(4) Select Case <测试表达式> [Case <条件表达式1> [<语句块1>]] ... [Case Else [<语句块>]] End Select 多重分支选择语句 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例子 【例8-4】从键盘随机输入成绩分数,根据成绩分数来判断该成绩属于优、良、中还是差。规定: 90≤成绩≤100为优; 80≤成绩<90为良; 60≤成绩<80为中; 成绩<60为差; 其他为非法输入。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 Public Sub multicase() Dim grade As Integer grade = Val(InputBox("请输入成绩")) Select Case grade Case 90 To 100 MsgBox( Str(grade) & "的成绩为:" & "优") Case 80 To 90 MsgBox( Str(grade) & "的成绩为:" & "良") Case 60 To 80 MsgBox( Str(grade) & "的成绩为:" & "中") Case 0 To 60 MsgBox( Str(grade) & "的成绩为:" & "差") Case Else MsgBox( "您输入的成绩不对!") End Select End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组 Public Sub 求和() Dim a, b, c As Double Dim x, y As Double a = Int(Val(InputBox("请输入一个数a"))) Select Case a Case 9 To 99 x = a Case -99 To -10 Case Else MsgBox ("输入数据不对") End Select Debug.Print "一个数为", x b = Int(Val(InputBox("请输入一个数b"))) Select Case b y = b Debug.Print "一个数为", y c = x + y Debug.Print "两数和为", c End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组 Public Sub q4() Dim a, b, c As Double Dim x, y As Double Do While True a = Int(Val(InputBox("请输入一个数a"))) Select Case a Case 9 To 99 x = True Case -99 To -10 Case Else x = False End Select If x And True Then Exit Do End If Loop Debug.Print "一个数为", a b = Int(Val(InputBox("请输入一个数b"))) Select Case b y = True y = False If y And True Then Debug.Print "一个数为", b c = a + b Debug.Print "两数和为", c End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组

江西财经大学信息管理学院 《数据库应用》课程组2007 1. ANSI流程图(4) 循环结构 While型循环结构 Until型循环结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2. N-S图 (4) 循环结构 While型循环结构 Until型循环结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(1) DO WHILE循环 语句格式: Do While <条件表达式> <语句块> [Exit Do] Loop 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(2) 循环语句的使用要注意下列几点: (1)Do While和Loop子句要配对使用,Loop的作用是使循环回到循环的开始,即到Do While语句。 (2)在第一次执行到Do While语句时,循环条件必须为真,才能进入循环体。在执行完成循环体语句后,再判断循环条件是否为真,如果为真,则继续循环,直到循环条件为假时,才退出循环语句,执行Loop后面的语句。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(3) 循环语句的使用要注意下列几点: (3)循环体中,一定存在一条或若干条语句在改变循环条件。如果循环条件恒为真,则是死循环。 (4)要小心改变循环条件,如果不适当的修改循环条件,则循环将不能按预先的设想进行,程序也达不到预期的效果。 (5)为增加程序的可读性,使程序清晰易懂,必须使用缩格。 (6)关于Exit Do语句使用参见本节后面的内容。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(4) 例6-11:求1加到10的累加和S=1+2+3+…+8+9+10 Public Sub sum_example() s = 0 '求累加和的变量 i = 1 '循环变量赋初值 Do While i <= 10 '循环条件, 使用缩格,提高可读性 Debug.Print i '此处输出变量i的值是方便理解循环的过程 s = s + i    '求累加,即循环不变式 Debug.Print s; '输出s的结果,理解每次累加结果的变化 i = i + 1    '改变循环变量的值 Loop Debug.Print s '循环体外输出结果 End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(5) 循环阅读理解 循环条件是什么? 什么时候进入循环? 什么时候退出循环? 循环体内如何改变循环条件? 循环变量的作用? 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(6) 在循环中处理循环不变式的一般结构 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(8) 循环结构中的Exit Do命令 Do While <循环条件> <循环体1> If <条件> Exit Do End If <循环体2> Loop 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 Do Until循环语句 Do Until <条件表达式> <循环体> [Exit Do] Loop 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 For循环结构程序(10) For循环语句格式: For < 循环变量> = <循环初值> To <循环终值>[ Step <步长> ] <语句块> [Exit For] Next 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(11) 例6-15:求N!,即求N的阶乘。 Public Sub 求阶乘() Dim i, n, p As Integer p = 1 n = Val(InputBox("请输入n的值:")) For i = 1 To n Step 1 'Step 1可以省略。 p = p * i '循环不变式,完成累乘。 Next Debug.Print Str(n) & "的阶乘是:" & Str(p) End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 While Wend循环语句 While <循环条件> [<语句块>] Wend 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例 Public Sub WhileWend() Dim i As Integer Dim s As Double i = 1 While i <= 100 s = s + (-1) ^ (i + 1) / i i = i + 1 Wend Debug.Print "s="; s End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(12) 循环的嵌套 循环体内又嵌套循环的情况称为多重循环或循环嵌套。 处于循环体内的循环称为内循环,处于外层的循环称为外循环。 内外循环的层次必须分明,不允许有交叉现象出现。 内外循环的循环变量不要同名。 在嵌套情况下,Exit Do语句使控制跳到下方离其最近的Loop之后。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 3. 循环结构程序(14) 例8-13:打印如图所示对称三角图形,要求第一行的*在第10列。 Public Sub 三角状星型输出() Dim i, j As Integer For i = 1 To 4 '控制输出的行数 Debug.Print Tab(11 - i); "*"; '确定每行第一个*所在的列数 For j = 1 To 2 * i - 2 '控制每行除第一个以外的星号的个数 Debug.Print "*"; '输出后继的* Next j Debug.Print '输出另起一行 Next i End Sub  * *** ***** ******* Public Sub 三角状星型输出() Dim i, j As Integer For i = 1 To 4 '循环用来控制输出的行数本例为共4行,循环4次 Debug.Print Tab(11 - i); "*"; '确定每行第一个*所在的列数 For j = 1 To 2 * i - 2 '循环次数控制每行除第一个以外的星号的个数 Debug.Print "*"; '输出后继的* Next j Debug.Print '输出另起一行 Next i End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 求素数 例8-14:输入一个大于1的正整数,判断该数是否是素数。 分析:所谓素数又称为质数,是指只能被1和它自身整除的数。 要判断x是否能够被3整除 使用条件表达式:x/3 = int(x/3)。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 分析 对于输入的数据x,判断它是否为素数的过程,就是修改上面条件表达式的分母,让分母的数值从2变到x-1,如果分母从2到x-1都不能整除x,则x是素数。 实际上程序可以改进,只需让分母从2变到int(x/2)。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 Public Sub 求素数() Dim flag As Boolean Dim i, x As Integer flag = True '设置标志,假定为素数 x = Val(InputBox("请输入整数数据")) '通过循环将x除以2到int(x/2)的数, '如果有整除发生,则x不是素数,退出循环。 For i = 2 To Int(x / 2) If x / i = Int(x / i) Then '另一种条件表达式为x mod i = 0 flag = False Exit For End If Next '下面的if语句为输出结果, '通过判断标志flag来决定x是否为素数。 If flag Then Debug.Print Str(x) + "是素数。" Else Debug.Print Str(x) + "不是素数。" End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 6.4 数组的应用 数组在使用之前,必须加以定义,然后才能使用该数组。 数组定义或数组说明语句格式为: DIMENSION <数组名1>(<数值表达式1>[,<数值表达式2>,...]) [,<数组名2>(<数值表达式1>[,<数值表达式2>,...])...] 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例子 dimension A(N) dimension B(n,m) A(1) A(2) … A(N-1) A(N) B(1,1),B(1,2),...,B(1,m) B(2,1),B(2,2),...,B(2,m) … B(n,1),B(n,2),...,B(n,m) 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例子:排序 例6-21:随机输入N个数据到数组,并对数组的数据进行降序排列。 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例子:排序程序 Public Sub 数据排序() Dim a(1 to 10), i, j, t As Double For i = 1 To 10 a(i) = Val(InputBox(“请输入数据到数组” &        "A(" & i & ")", "数组输入", "1")) Next I    '输出排序前结果 Debug.Print a(i); Next i Debug.Print  For i = 1 To 10 – 1   '下面为排升序的程序 For j = i + 1 To 10 If a(i) > a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j  For i = 1 To 10   '输出排序后的结果 End Sub 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 定义数组,输出原始数据  Dim a(1 to 10), i, j, t As Double For i = 1 To 10 a(i) = Val(InputBox("请输入数据到数组" &         "A(" & i & ")", "数组输入", "1")) Next i '输出排序前结果 Debug.Print a(i); Debug.Print 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例子:排序(3) *下面对数组进行排序 For i = 1 To 10 - 1 For j = i + 1 To 10 If a(i) > a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Next i 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 例子:排序(4) '输出排序后的结果 For i = 1 To 10 Debug.Print a(i); Next i 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 VBA程序调试方法 单步执行 查看变量值 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 习题 编一个程序,将华氏温度F=68度变换成摄氏温度C,并将结果显示出来 计算公式为:C=5×(F-32)÷9 以循环方式输出1到10的数字 求0~100之间奇数之和 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 习题 求S=1!+2!+3!+…+5!的值。 S=2+4+6+…+100 Y=1+1/2+1/3+ … +1/30 S=1+(1+2)+(1+2+3)+…+(1+2+3+4+…+100) 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 习题 学分在12分以下的收费4000元,若超过12学分,则超过部分每学分加收200元,编一个程序计算收费,输入学分U,求应缴学费T 4000 U≤12 4000+200(U-12) U>12 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007

江西财经大学信息管理学院 《数据库应用》课程组2007 习题 假定对齐的列为20列,编写程序输出下列二种图形 # ## ### #### ##### ###### # ## ### #### ##### 2019/4/11 江西财经大学信息管理学院 《数据库应用》课程组2007