程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.

Slides:



Advertisements
Similar presentations
第2章 Visual Basic 6.0编程基础 (第一部分)
Advertisements

第 1 章 公共基础知识 第 2 章 Visual Basic程序开发环境 第 3 章 对象及其操作 第 4 章 数据类型及其运算
第四章 控制结构.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
四 VBScript编程基础.
Visual Basic程序设计.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
Chapter 1 複習.
VB內建函數與應用.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic 程式設計基礎(一)
程式語言 -Visual Basic 變數、常數與資料型態.
Visual Basic程序设计 第八章 过程 -子程序和函数
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
初识Visual Basic.
算法与程序设计.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第8章 键盘、鼠标事件和图形 Visual Basic为用户提供了键盘、鼠标事件用于响 应键盘操作和鼠标操作。在Visual Basic中,大多 数控件都有键盘事件和鼠标事件。这一章将讲述 与键盘和鼠标相关的内容,除此之外,还有通常 在鼠标事件中出现的关于绘制图形方面的内容。
湖北职院计科系.
第十二章 事件 12-1 KeyPress 12-2 KeyDown及KeyUp
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
新觀念的 VB6 教本 第 6 章 資料型別.
PCR300 (13.56MHz) Reader RS232/USB.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
VB语言程序设计教程.
小结 郭清溥.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年10月18日.
1位选手参加了歌唱比赛,评委们的评分如下:
Print方法和函数 2019/5/19.
第八章: 輸入裝置-鍵盤與滑鼠.
解析算法与枚举算法.
算法与Visual Basic程序基础(二)
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
Presentation transcript:

程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日

立即運算視窗 左上角寫著"Immediate"的視窗便是它 如何呼叫它?在下拉式功能表中的 View 選項中的 Immediate Window便是它 Private Sub Command1_Click() Debug.Print 1670 End Sub 目的是在編寫VB程式碼階段時,能夠在執行中記錄下程式的流程或訊息 使用程式碼 Debug.Print 變數 的方式來顯示 直接在上面撰寫運算式

Print 指令 列印字串 Print “Hello” 列印運算式 Print 5*3 列印變數 X=5 Print x VB中可以用?號來代表Print

什麼是變數? 我們在VB裡用程式碼做資料運算時,因為CPU沒有記憶的功能,因此剛做完處理的資料馬上便消失,為了能取出剛才的運算結果,所以電腦語言會有變數與常數這兩種東西 在VB裡,為了方便及其它的原因,我們把資料存到記憶體裡並不是用位址來指定存在記憶體裡,它是用文字來代表一個記憶體位址,這就是變數 這個記憶體的位址是由電腦自己指定,也就是說我們不能指定資料要放在記憶體的某某位址上,程式每次使用文字內所對應的記憶體位址不一定相同

如何使用變數儲存資料至記憶體? 使用方式:變數 = 資料 X=X+1 在這裡的〝=〞並不是指〝等於〞 這裡的〝=〞是說〝指定複製給〞的意思

VB變數命名 變數的命名是有一定的規則 每一個變數第一個字一定要以英文字母命名(<=255字元) 每一個變數從第二個字開始可以都以英文字母命名 每一個變數從第二個字母開始可以用數字來命名 每一個變數不可用空白來命名,但可以用底線命名 每一個變數均不可以中文字、全型字命名(VB中文版可以使用中文字來做為變數的命名) 命名時,字母大小寫皆可 變數名稱不可使用VB的保留字 變數的命名最好具有意義,以提高可讀性且易記 若變數未設定初值時,數值變數預設值為0,字串變數預設值為空字串

VB基本資料型態 變數 位元組變數 整數變數 長整數變數 單精確度變數 數值變數 倍精確度變數 貨幣變數 固定長度字串變數 字串變數 變動長度字串變數 字串變數 布林變數 日期變數 物件變數 自由型態變數

數值變數 位元組:能儲存8組以0、1表示數值的變數,也就是用了1Byte的記憶體空間,值的範圍為0 ~ 255。 布林數(Boolean)、位元組(Byte)、整數(Integer)、長整數(Long)、 單精度浮點數(Single)及雙精度浮點數(Double) 布林數:能儲存0(False)及-1(True)兩種整數的變數,也就是一個bit大小的記憶體空間所能表示的資料(但事實上它還是佔用1Byte的記憶體空間)。 位元組:能儲存8組以0、1表示數值的變數,也就是用了1Byte的記憶體空間,值的範圍為0 ~ 255。 整數%:能存16組以0、1表示數值的變數,用了記憶體2Byte的大小,值的範圍為-32768 ~ 32767。

數值變數 長整數&:能存32以0、1表示數值的組變數,佔記憶體4Byte的空間,值的範圍為-2,147,483,648 ~ 2,147,483,647。 單精度浮點數!:使用32位元(4Byte=32bit)來表示可包含小數數值的變數,值的範圍為,負數-3.402823E38 ~ -1.401298E-45,正數1.401298E-45 ~ 3.402823E38。 雙精度浮點數#:使用64位元(8Byte)來表示可包含小數數值的變數,值的範圍為,負數-1.79769313486231E308 ~ -4.94065645841247E-324,正數4.94065645841247E-324 ~ 1.79769313486231E308。 Currency@:使用64位元來表示可包含小數數值的變數,15位數整及4位小數,值的範圍為-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807。

數值變數 變數種類 佔用記憶體大小 數值範圍 Boolean 1Byte 0 ~ -1的整數 Byte 0 ~ 255的整數 Integer -32768 ~ 32767的整數 Long 4Byte -2147483648 ~ 2147483647的整數 Single 負數-3.402823E38 ~ -1.401298E-45,正數1.401298E-45 ~ 3.402823E38 Double 8Byte 負數-1.79769313486232E308 ~ -4.94065645841247E-324,正數4.94065645841247E-324 ~ 1.79769313486232E308 Currency -922337203685477.5808 ~ 922337203685477.5807(15位數整及4位小數)

字串變數 $ 固定長度:限定字串長度的字串變數,無論文字資料的長短,儲存的資料長度不變。 不固定長度與固定長度兩種 不固定長度:沒有限定字串長度的字串變數,一般宣告就是沒有限定長度。 固定長度:限定字串長度的字串變數,無論文字資料的長短,儲存的資料長度不變。 變數種類 佔用記憶體大小 字數範圍 不固定長度 22 + 字數 * 2Bytes 0 ~ 用完所有實體及虛擬記憶體 固定長度 10 + 字數 * 2Bytes 使用者設定為固定大小

變數宣告 VB允許不宣告變數就可以使用,較彈性但是不嚴謹 宣告法:於程式裡使用Dim敘述宣告 Dim A As Integer Private Sub Form_Load() Dim A As Integer Dim B As Date Dim C As Single Dim D As Object End Sub 動態宣告:動態宣告變數也就是執行該程式時,電腦會隨機分配記憶體位置給變數存放資料,而當程式執行結束而程式碼被移出記憶體時,變數也隨之移出記憶體 VB允許不宣告變數就可以使用,較彈性但是不嚴謹

變數宣告 靜態宣告:靜態宣告變數也就是執行該程式時,電腦會分配固定記憶體位置給變數存放資料,當程式執行結束而程式碼被移出記憶體時,該記憶體位置保留,再執行該程式時,電腦又分配相同記憶體位置給變數存放資料,使用相同名稱來當變數而每次執行所分配到的記憶體位置相同,因此該程式可以享有相同的資訊。 宣告法,於程式裡使用Static敘述宣告: Private Sub .... Static A As Integer Static B As Date Static C As Single End Sub

變數宣告 全域宣告:全域宣告變數也就是執行不同的副程式使用相同名稱的變數時,電腦會分配固定記憶體位置給變數存放資料,當各副程式執行結束而程式碼被移出記憶體時,該記憶體位置保留,再執行任一個副程式時,電腦又分配相同記憶體位置給變數存放資料,使用相同名稱來當變數而每次執行所分配到的記憶體位置相同,因此各副程式可以享有相同的資訊。 宣告法:於Form的(一般區域)宣告,所謂的一般區域位於表單裡所有的Sub ... End Sub及Function ... End Function的最頂端區域,如下圖所示

變數宣告 宣告變數直接給值的功能要等到VB.Net版本起才開始支援! VB6不支援宣告變數型態就直接設定資料 Private Sub Command1_Click() Dim MyVal As Long = 123 End Sub Dim MyVal As Long MyVal = 123 宣告變數直接給值的功能要等到VB.Net版本起才開始支援!

變數的生命週期 在一個Sub或Function裡所宣告的變數,它所佔用的記憶體的時間是較短暫的,在這些副程式裡所使用的變數會使到到副程式執行完畢後就會把記憶體空間再釋放了,下一次在執行這一個副程式時,雖然變數名稱一樣,但它已經是另一個新開啟的變數,所以結果為空白或0 解決法,把他設為全域的變數

表單全域的變數 End Sub Dim A As Long Private Sub Command1_Click() A = 1234567 MsgBox A

表單全域的變數 結果? Private Sub Command1_Click() A = 1234567 End Sub Dim A As Long Private Sub Command1_Click() A = 1234567 End Sub Private Sub Command2_Click() MsgBox A 結果?

常數 文數字常數 符號常數 由一連串字元組合而成, 前後需使用雙引號。 如:“Trust me “ “ 3 + 5 = ? “ “ 3-6-1999 “ 文數字常數 程式設計時,常數或文字需要重覆出現,應用之。 如:Const Pi=3.14159 Print Pi r=10 Print Pi*Pi*r 優點: 增加程式可讀性 修改容易 常數 符號常數

常數就是固定的資料,我們使用Const來宣告 Const PI = 3.1415926535 Const HlfD = "圓的面積等於半徑的平方乘上園周率" Private Sub Command1_Click() Print HlfD; 10 ^ 2 * PI '這個程式碼會在表單上印出半徑為10的圓面積 End Sub

練習一 Private Sub Command1_Click() NFather = “孫中山” Text1.Text = Nfather 由ToolBox拖曳TextBox(文字方塊)及Command(命令按鈕)至表單 設定Command1的Caption屬性為“中華民國國父” 滑鼠游標移到Command1上雙擊兩下加入以下程式碼 Private Sub Command1_Click()     NFather = “孫中山”     Text1.Text = Nfather End Sub 執行程式

VB數值運算 運算子 做運算:VB做運算時格式為〝變數 = 運算式〞 + 加法運算 1 + 1 2 + 5 - 減法運算 100 - 99 - 25 - 6 * 乘法運算 -9 * -3 457 * 98 / 除法運算 12 / 3 4 / 0.25 ^ 次方運算 6的平方  6 ^ 2 10的立方  10 ^ 3 4.5的根號4  4.5 ^ 0.25 Mod 餘數運算 12 Mod 3 17 Mod 3 Sin 三角函數,以弳做運算單位 Sin (30) Sin (45 * 0.01745) Cos 三角函數,以弳做運算單位 Cos(30) Cos(45 * 0.01745) Tan 三角函數,以弳做運算單位 Tan(30) Tan(45 * 0.01745) Atn 反三角函數,以弳做運算單位 Atn(0.1456) Atn(0.4513) / 0.01745 Abs 計算絕對值 Abs(-1004) Abs(156) Exp 求得e值 e→EXP(1) e5→EXP(5) Log 以e數為底所求得的反函數 Log(Exp(5)) 以某數為底:Logn(x) = Log(x) / Log(n) Log(1000) / Log(10) Sqr 求得某數的平方根 Sqr(2) Sqr(255) \ 求得某數的商,不帶餘數 6 \ 4 (答案為1) 做運算:VB做運算時格式為〝變數 = 運算式〞

VB數值運算-攝氏溫度與華氏溫度變換 由ToolBox拖曳2個命令按鈕(Command)物件及2個文字方塊(TextBox)物件。 至屬性對話框修改屬性: Command1.Caption = "轉華氏" Command2.Caption = "轉設氏" Text1.Text = 0 Text2.Text = 0 在Command1及Command2上雙擊,加入程式碼: Private Sub Command1_Click() Text2.Text = Val(Text1.Text) * 9 / 5 + 32 End Sub Private Sub Command2_Click() Text1.Text = (Val(Text2.Text) - 32) / 9 * 5 執行程式

物件事件 Change Change最常見於TextBox或RichTextBox等文字方塊,當文字內容被修改(Text屬性改變)時,VB變會執行Change事件內的副程式。 Click Click最常見於各可視物件裡,當物件被滑鼠點一下時,VB變會執行Click事件內的副程式。 DBClick DBClick最常見於各可視物件裡,當物件被滑鼠雙擊時,VB變會執行DBClick事件內的副程式。 DragDrop DragDrop最常見於各可視物件裡,當另一物件被拖曳至物件裡並放開滑鼠按鍵時,VB變會執行DragDrop事件內的副程式。此事件會傳回數值Source、X及Y,Source是指那個物件被拖曳,X是滑鼠在物件放開時的X座標,Y是滑鼠在物件放開時的Y座標

物件事件 DragOver DragOver最常見於各可視物件裡,當另一物件被拖曳至物件裡時,VB變會執行DragOver事件內的副程式。此事件會傳回數值Source、X、Y及State,Source是指那個物件被拖曳,X是滑鼠在物件放開時的X座標,Y是滑鼠在物件放開時的Y座標,State是指被拖曳物件的移動狀態,當State=0示移入,當State=1示移出,當State=2示移動中 GotFocus GotFocus幾乎是各物件都有,當物件得到Focus(焦點、焦點)的一瞬間之前,VB變會執行GotFocus事件內的副程式。 KeyDown KeyDown最常見於各可視物件裡,當得到焦點的物件正按下鍵盤按鈕時,VB變會執行KeyDown事件內的副程式。此事件會傳回數值KeyAsciit,KeyAscii會傳輸入文字的AscII碼的代號

物件事件 KeyPress KeyPress最常見於各可視物件裡,當得到焦點的物件正按了鍵盤按鈕時,VB變會執行KeyPress事件內的副程式。此事件會傳回數值KeyCode、Shift,KeyCode會傳回VbKey值,表示正按下那一按鍵 KeyUp KeyUp最常見於各可視物件裡,當得到焦點的物件正方開鍵盤按鈕時,VB變會執行KeyUp事件內的副程式。此事件會傳回數值KeyCode、Shift,KeyCode會傳回VbKey值,表示正按下那一按鍵,Shift傳回值表示是否按下Alt、Ctrl及Shift等鍵 LostFocus LostFocus幾乎是各物件都有,LostFocus與GotFocus相反,當物件轉移Focus(焦點、焦點)給其它物件的一瞬間之前,VB變會執行LostFocus事件內的副程式。

物件事件 MouseDown MouseDown最常見於各可視物件裡,當滑鼠在物件上按下任一按鍵時,VB變會執行MouseDown事件內的副程式。此事件會傳回數值Button、Shift、X及Y值,Button會傳回被按下的滑鼠按鍵代碼,Shift傳回值表示是否按下鍵盤的Alt、Ctrl及Shift等鍵,X是滑鼠在物件按下時的X座標,Y是滑鼠在物件按下時的Y座標 MouseMove MouseMove最常見於各可視物件裡,當滑鼠在物件上移動時,VB變會執行MouseMove事件內的副程式。此事件會傳回數值Button、Shift、X及Y值,Button會傳回被按下的滑鼠按鍵代碼,Shift傳回值表示是否按下鍵盤的Alt、Ctrl及Shift等鍵,X是滑鼠在物件的X座標,Y是滑鼠在物件的Y座標

物件事件 MouseUp MouseUp最常見於各可視物件裡,當滑鼠在物件上放開任一按鍵時,VB變會執行MouseUp事件內的副程式。此事件會傳回數值Button、Shift、X及Y值,Button會傳回被放開的滑鼠按鍵代碼,Shift傳回值表示是否按下鍵盤的Alt、Ctrl及Shift等鍵,X是滑鼠在物件放開時的X座標,Y是滑鼠在物件放開時的Y座標

關係運算子 運算子 說明 數學符號 > 大於 >= 大於等於 ≧ < 小於 <= 小於等於 ≦ = 等於 <> 不等於 ≠

邏輯運算子 AND:且 OR:或 NOT:否

基本語法 IF IF敘述讓你能夠做邏輯的判別。 IF判別的兩種邏輯,True為真,其數值不為零;False為錯、失效,其數值為零。 If NOT True 為 False(NOT把True變成False, 把False變成True) 我們在日常生活裡,若要表示 X > -4 且 X < 12 時,會把他寫成 -4 < X < 12 ,然而這種邏輯式在VB裡是錯誤的因此我們要把他改寫成 -4 < X AND X < 12 才正確。

IF的用法(1)當邏輯運算為真,執行Then後的敘述 Ex: Private Sub Command1_Click() A = 10 B = 5 IF A > B Then Me.Caption = "A > B" End Sub Tmp = "小瓜瓜" TmB = "小呆呆" IF Tmp = TmB Then Me.Caption = "兩字串相等"

基本語法 IF End Sub IF的用法(2)當邏輯運算為真,執行Then後的敘述,若邏輯運算為錯,執行Else後的敘述 Ex: Private Sub Command1_Click() A = 10 B = 5 IF A > B Then Me.Caption = "A > B" Else Me.Caption = "A <= B" End Sub Tmp = "小瓜瓜" TmB = "小呆呆" IF Tmp = TmB Then Me.Caption = "兩字串相等" Else Me.Caption = "兩字串不相同"

基本語法 IF IF的用法(3)與(2)相同功能 IF 邏輯運算式 Then 你的演算法1 你的演算法2 {為真時的程式碼區域} ........... 你的演算法N Else 你的演算法2 {為錯時的程式碼區域} End IF

基本語法 Select Select與IF兩個雖然都是提供你條件選擇的功用但兩者仍然不一樣 IF提供的是邏輯上的運算選擇,而Select提供的則是條件邏輯上的選擇。 Select的用法: Select Case 變數名稱 Case 條件1 你的演算法1 Case 條件2, 條件3 你的演算法2 Case 條件4 To 條件5 你的演算法3 ...... Case Else 你的演算法N End Select

基本語法 Select 結果?? Private Sub Command1_Click() A = 10 Select Case A Me.Caption = "A 小於 5" Case 5 Me.Caption = "A 等於 5" Case 6 Me.Caption = "A 等於 6" Case Else Me.Caption = "A 大於 6" End Select End Sub 結果??

基本語法 For 大量的有規則性的資料要做處理時,我們要把程式碼逐一的打出十分的不符合經濟效益,因此程式語言中會有重覆式的架構敘述來讓使用者簡化程式設計 For ... Next 便是VB重覆式架構中的敘述之一,用法是: For 變數 = 起始值 To 最終值 Step 間隔值 你的程式碼 Next [變數] Next [變數]這一行〝[變數]〞表示變數可以寫出或省略

基本語法 For 若想要計算1+2+3,使用For Next該怎麼寫? Private Sub Command1_Click() For N = 1 To 3 MyVal = MyVal + N Next MsgBox MyVal End Sub Private Sub Command1_Click() MyVal = MyVal + 1 MyVal = MyVal + 2 MyVal = MyVal + 3 MsgBox MyVal End Sub

蜂巢式迴圈 Private Sub Command1_Click() For N = 1 To 2 ‘第一層 MyVal = MyVal + N For M = 1 To 3 ‘第二層 MyVal = MyVal + M Next '第二層 Next '第一層 MsgBox MyVal End Sub Exit For敘述,在For ... Next迴圈裡加入Exit For敘述便會跳出一層For ... Next迴圈

Do … Loop Do ... Loop是個無限迴圈的敘述,因此會不斷的重覆執行,所以我們要加入判斷敘述以終止這個無窮無盡的迴圈。 用法是: Do (開啟位置) 你的程式碼 Loop (結束位置,再跳回到Do) 若想要計算1+2+3,使用Do ... Loop該怎麼寫? Do N = N +1 T = T + N If N = 3 Then Exit Do Loop Print T

Do … Loop 有可能不執行程式碼 至少執行一次程式碼 上面的範例是以If且配合Exit Do的方式來結束Do ... Loop的執行,跳出Do ... Loop迴圈,但Do ... Loop本身也有判斷敘述,也就是Until或While,分成〝前測試〞與〝後測試〞兩種。Until是指符合條件時則離開Do ... Loop,While是指不符合條件時則離開Do ... Loop 前測試: Do Until 判斷式 . Loop Do While 判斷式 . 後測試: Do Loop Until 判斷式 Loop While 判斷式 有可能不執行程式碼 至少執行一次程式碼

Do … Loop 前測試是在執行一次迴圈敘述前先判斷是否符合條件,若符合條件時則離開Do ... Loop迴圈 前測試: Do Until N = 5(或Do While N <5) Debug.Print N N = N + 1 Loop 結果?? 後測試: Do Loop Until N = 5(或Loop While N <5)