講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所.

Slides:



Advertisements
Similar presentations
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Advertisements

第一單元 建立java 程式.
第2章 Visual Basic 6.0编程基础 (第一部分)
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
第9章 处理字符串和日期时间 Visual Basic 程序设计教程.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
四 VBScript编程基础.
Visual Basic程序设计.
ASP VBScript 基础知识.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
課程名稱:程式設計 授課老師:________
第3章 變數與運算子 3-1 電腦記憶體的基礎 3-2 變數的命名與宣告 3-3 VB.NET的資料型別
Visual Basic 6.0 學習範本 第三章 基本資料型態.
Visual C++ introduction
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
Java程式概觀.
Visual Basic程序设计 第八章 过程 -子程序和函数
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
初识Visual Basic.
算法与程序设计.
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
第3章 Visual Basic语言基础 郭清溥.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
新觀念的 VB6 教本 第 6 章 資料型別.
PCR300 (13.56MHz) Reader RS232/USB.
Visual Basic程序设计.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
算法与程序设计 周少品.
第三章 VB语言基础 本章重点和难点 3.1 Visual Basic 程序代码的组织方式 3.2 代码行的书写规则
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
第一單元 建立java 程式.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
江西财经大学信息管理学院 《数据库应用》课程组2007
第2章 VB语言基础 本章要点: 数据类型 常量和变量 运算符表达式 函数.
JAVA 程式設計 資訊管理系 - 網路組.
ASP基礎— VBScript基本語法 張森.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
函數應用(二)與自定函數.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
Programming & Language Telling the computer what to do
算法与Visual Basic程序基础(二)
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所

第三章 變數、運算子與流程控制 變數 運算子 流程控制

變數 程式執行時用來記錄資料的地方 每個變數對應一塊記憶體空間 各式的變數功能不同 先宣告再使用

變數型別 型別 使用空間大小(byte) 範圍 代碼 Byte 1 0~255 Boolean 2 True, False Integer -32768~32767 % Long 4 -2147483648~2147483647 & Currency 8 …… @

變數型別(cont’d) 型別 使用空間大小(byte) 範圍 代碼 Single 4 ! Double 8 # Date 100/1/1~ -3.402823E38 ~ -1.401298E-45,1.401298E-45 ~ 3.402823E38 ! Double 8 # Date 100/1/1~ 9999/12/31 String 不固定長度:2*字串長度 固定長度 $

變數型別(cont’d) Boolean: test = true 整數: test = 10 小數: test = 1.0 日期(Date): test = #12/30/1999# 字串(String): test = “這是字串”

宣告變數 Dim 變數名 [As 型別] 使用型別代碼: Dim 變數名[代碼] 好習慣: 宣告在最上面 Ex1. Dim MyName As String Ex2. Dim MyName As String, MyAge As Integer What about “Dim MyName,MyAge As Interger” ? 使用型別代碼: Dim 變數名[代碼] Ex3. Dim intMyAge% 好習慣: 宣告在最上面

變數型別(cont’d) 預設型別:Variant 數值型態:16 bytes 字串型態長度:22+字串長度 bytes

隱含宣告 VB可以直接使用未宣告的變數 VB會自動宣告成variant (原Basic的特性) 造成維護不便 打錯字 …^_^ 取消隱含宣告

隱含宣告(cont’d) 注意: 只對之後增加 的模組有效

Variant 不定型別 用VarType測試 Dim vntVariant vntVariant=0.01 Print VarType(vntVariant) vntVariant=0.01! vntVariant=0.01# vntVariant=“test”

Variant(cont’d) 型別 範例 常數 傳回值 Integer 10% vbInteger 2 Long 10& vbLong 3 Single 0.1! vbSingle 4 Double 0.1# vbDouble 5 0.1 String “test” vbString 8 Date #8/8/2000# vbDate 7

Variant(cont’d) vbEmpty (0) 型別轉換: 變數未初始化 CBool, CByte, CInt, CLng, CSng, CDbl…… intVariable=CInt(vntVariable) 由範圍大的型別轉為範小的型別時,不能超過範圍小的型別的範圍 Dim vntTest Print VarType(vntTest)

變數命名規則 以字母開頭(可用中文字) 僅能由字母、數字及底線組成 變數名長度不能超過255字元 不可使用一些特殊符號(型態宣告字元)和句點 不建議使用 以字母開頭(可用中文字) 僅能由字母、數字及底線組成 變數名長度不能超過255字元 不可使用一些特殊符號(型態宣告字元)和句點 ex. %,&,!,#,@,$ 不能使用關鍵字 Dim, As…… 在同一個命告範圍(scope)內不得使用相同名稱

變數命名規則(cont’d) 下列何者正確? Try It! intMyAgem, 38Girl, intMy.Age, 時間, Print, My_課本 Try It! 改改看,看看 VB如何處理

變數命名規則(cont’d) 在同一個命告範圍(scope)內不得使用相同名稱 Option Explicit Dim i As Integer 1.[Dim i As Integer] Private Sub Command1_Click() 2.[Dim i As Integer] End Sub Private Sub Command2_Click() …… 在模組內宣告 在函示內宣告

變數的有效範圍和生命週期 區域變數 全域變數 靜態變數 在函式內部使用Dim或Private宣告的變數 只有目前函式看的到 函式執行結束, 區域變數值會跟著結束消失(靜態變數例外) 全域變數 在模組或form內部使用Dim宣告的變數 公用 Public MyCount As Interger 私用 Private MyCount As Interger 靜態變數 Static MyCount as Integer 函數執行結束, 區域變數值會保留

變數的有效範圍和生命週期 (cont’d) [Public|Private|Dim|Static] 變數名 As 型別 在函式內不能用Public宣告 在函式內宣告的變數,只在該函式內有效 Ex1. Option Explicit Private Sub Command1_Click() Dim i As Integer Print i End Sub Private Sub Command2_Click() Error!!

變數的有效範圍和生命週期 (cont’d) Ex2. Option Explicit Private Sub Command1_Click() Dim i As Integer i=1 Print i End Sub Private Sub Command2_Click() i=2 Ok!!

變數的有效範圍 (cont’d) Dim a As Integer Private b As Integer Public c As Integer Private Sub Command1_Click() Print a Print b Print c End Sub Private Sub Command2_Click() 1.[Print Form1.a] 2.[Print Form1.b] 3.[Print Form1.c] End Sub Form1 Form2

變數的有效範圍 (cont’d) 模組一 模組二 Public Public Private Private Private Private 比較命名範圍與有效範圍的不同處

靜態變數 靜態變數 Static [Public|Private] 變數名…… 用於函式內 Private Sub Form1_Click() 1.[Dim ClickCount As Integer] 2.[Static ClickCount As Integer] ClickCount=ClickCount+1 Print ClickCount End Sub Try It!

常數 常數=不變的變數 如何避免不小心改到? [Public|Private] Const 變數名 = 初始值 Dim Pi As Single Pi=3.1415926 Const Pi As Single = 3.1415926

變數命名規則-建議 範圍: 型態: g:在模組中以Public宣告 m:在模組中以Dim或Private宣告 資料型態 變數名稱 範圍: g:在模組中以Public宣告 m:在模組中以Dim或Private宣告 [無]:在函式中以Dim或Private宣告 型態: 以三個字母代表型態

變數命名規則-建議(cont’d) 資料型態 縮寫 Byte byt Single sng Boolean bln Double dbl Integer int Decimal dec Long lng Date dat Currency cur String str

變數命名規則-建議(cont’d) 例: 變數取名不一定要拘泥於規定,前後一致即可 多人開發:決定變數取名方式 g_intMyAge m_strMyName intMyMoney 變數取名不一定要拘泥於規定,前後一致即可 多人開發:決定變數取名方式

算術運算子 先後順序 符號 說明 + 相加 \ 整數除法 - 相減 Mod 餘數 * 相乘 ^ 指數 / 相除 & 字串相接 負數

運算式練習 ax2+bx+c=0

IF Statement If (比較式) Then 程式碼 End If 是 Print…… 否 例: Year>2000? 是 Print…… 否 例: If (year>2000) Then Print “21世紀” End If 其它程式

IF Statement(cont’d) If (比較式) Then 程式碼1 Else 程式碼2 End If 是 Print…… 否 Year>2000? 是 Print…… 否 例: If (year>2000) Then Print “21世紀” Else Print “不是21世紀” End If Print… 其它程式

IF Statement(cont’d) If (比較式1) Then 程式碼1 ElseIf (比較式2) 是 程式碼2 Else 否 Year>2000? If (比較式1) Then 程式碼1 ElseIf (比較式2) 程式碼2 Else 程式碼3 End If 是 否 Print…… Year=2000? 是 例: If (year>2000) Then Print “21世紀” ElseIf (year=2000) Then Print “千禧年 Else Print “都不是” End If Print…… 否 Print…… 其它程式

比較運算子 運算結果為True或False < 小於 = 等於 <= 小於等於 <> 不等於 > 大於 Is 是 >= 大於等於 Like 像是

邏輯運算子 運算結果為True或False Not 不是 Not A And 和 A And B Or 或 A Or B

比較運算子與邏輯運算子 複合比較式 一般而言,比較運算子的優先順序大於邏輯運算子 試試看 Ex. (a>5 And b<4 Or Not c) 一般而言,比較運算子的優先順序大於邏輯運算子 試試看 Private Sub Form_Click() If (True And True) Then Print “True” Else Print “False” End If End Sub And T F

Example 1. (8 > 3) And ("a" = "b") False 2. (8 > 3) Or ("a" = "b") True 3. Not (8 > 3) False 年齡 20 ≦ age < 60 之間的條件式: (age >= 20) And (age < 60)

Select Case Statement Select Case Day Case 1 …… Case 2 Case 3 Case 4 Case Else End Select

Select Case Statement(cont’d) Select Case Day Case 1 ‘If (Day=1) …… Case 2,3 ‘ElseIf (Day=2 Or Day=3) Case 4 to 10 ‘ElseIf (Day>=4 And Day<=10) Case Is>10 ‘ElseIf (Day>10) Case Else ‘Else End Select

季節判斷

使用If If (Month>=1 And Month <=3) Then Print “春天” ElseIf (Month>=4 And Month <=6) Then Print “夏天” ElseIf (Month>=7 And Month <=9) Then Print “秋天” ElseIf (Month>=10 And Month <=12) Then Print “冬天” Else Print “打錯了” End If

使用Select Case Select Case Month Case 1 to 3 Print “春天” Case 4 to 6 Case Else Print “打錯了” End Select

Try It! 輸入月分,傳回當月的天數 1月31天 2月28天 …… 7月31天 8月31天 使用If與Select Case