Microsoft Word - 序.DOC



Similar documents
6-1-1極限的概念

Microsoft Word - 第四章.doc

Microsoft Word doc

所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位

實德證券網上交易系統示範

Microsoft Word - ch07

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解

章節

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼 ( 五 ) 健 保 卡 更 換 ( 六 ) 重 寄 確 認 信.

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 查 詢 股

第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

寫 作 背 景 導 讀 [98] L Lyman Frank Baum

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

NCKU elearning Manual

四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U )

骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒

PowerPoint 簡報


128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不


本 題 各 點 彼 此 均 有 相 互 關 聯, 作 答 不 完 整, 將 影 響 各 評 分 點 之 得 分, 請 注 意 檔 名 儲 存 錯 誤, 該 題 一 律 0 分 計 算 深 淺 圖 表.xlsx 請 依 下 方 題 目 敘 述 操 作 ( 佔 總 分 :) 儲 存 格 範

2 2.1 A H ir@abchina.com 2

投影片 1

Microsoft Word - Draft circular on Sub Leg Apr (chi)_Traditional

肆 研 究 方 法 進 行 本 研 究 前, 我 們 首 先 對 研 究 中 所 用 到 名 詞 作 定 義 定 義 : 牌 數 : 玩 牌 時 所 使 用 到 撲 克 牌 數 次 數 : 進 行 猜 心 術 遊 戲 時, 重 複 分 牌 次 數 數 : 進 行 猜 心 術 遊 戲 時, 每 次 分


101年度社會福利方案 網路線上操作手冊


研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝

簽 呈

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統 新 用 戶 新 用 戶 登 入 帳 戶 程 序 啟 動 網 上 預 約 面 談 訪 問 帳 戶 核 對 帳 戶 的 地 址 資 料

xls

壹、組織編制 代碼:C0101意見反映

(Microsoft Word - \246\250\301Z\272\336\262z.doc)

二 兒 歌 選 用 情 形 ( ) 2 ( ) ( )

內 政 統 計 通 報

CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓

BSP 烤箱 - 封面-2

目 錄

會 員 專 區 使 用 手 冊 目 錄 一 基 本 介 紹 會 員 專 區 登 入 位 置 主 畫 面 與 網 站 架 構 : 功 能 導 覽 列 說 明 :... 3 二 DOI 查 詢 與 維 護... 4 三 DOI 註 冊 期 刊 類 型...

包 裝 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品 營 養 標 示 應 遵 行 事 項 一 本 規 定 依 食 品 安 全 衛 生 管 理 法 第 二 十 二 條 第 三 項 規 定 訂 定 之 二 本 規 定 所 稱 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品, 指

第一章 緒論

瑞興銀行

???T????????

55202-er-ch03.doc

教育實習問與答:

校 長 遴 選 者 就 相 關 遴 選 事 項, 有 程 序 外 之 接 觸 遴 選 會 委 員 在 任 期 間 因 故 無 法 執 行 任 務 或 有 不 適 當 之 行 為 者, 由 各 該 主 管 機 關 解 聘 之 ; 其 缺 額, 依 第 一 項 至 第 五 項 規 定 聘 ( 派 ) 委

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍

C CH4.tpf

國中數學基本學習內容補救教材 第二冊

PROSPECT EXPLORATION 壹 前 言 第 9 卷 第 2 期 中 華 民 國 100 年 2 月

<4D F736F F D20B2C433B3B92020B971B8F4A4C0AA52A7DEA5A9>

Microsoft Word - BM900HD-2F電腦設定.doc

答客問

1

sle cover 1

奇 妙 的 24 摘 要 從 撲 克 牌 中 隨 機 抽 取 4 張 牌 可 以 有 1820 種 牌 組, 在 這 1820 種 牌 組 中, 有 1362 組 可 經 由 四 則 運 算 的 方 式, 算 出 24 點, 有 458 組 無 解 快 速 求 解 的 方 法 有 相 加 法 因 數

期交所規則、規例及程序

「家加關愛在長青」計劃完成表現及評估報告

16

Microsoft PowerPoint - chap5

人 們 在 為 生 活 空 間 中 的 物 品 選 擇 色 彩 時, 不 自 覺 地 會 反 應 出 大 腦 對 色 彩 的 解 釋, 設 計 師 若 能 掌 握 色 彩 所 隱 藏 的 訊 息, 便 可 以 充 分 利 用 並 創 造 出 極 具 魅 力 的 產 品 視 覺 對 知 覺 的 影 響

(Microsoft Word \245\277\244\361\273P\244\317\244\361.doc)

第二組掃描器規範書

Microsoft Word - 全華Ch2-05.doc

五 四 五 說 ( 代 序 ) 李 澤 厚 劉 再 復 I I II IV V VII 第 一 篇 五 四 新 文 化 運 動 批 評 提 綱 附 論 一 中 國 貴 族 精 神 的 命 運 ( 提 綱 )

Microsoft Word - 立法會十四題附件.doc

HSBC Holdings plc Interim Report Chinese

題組一 文書排版

C 標準文件

Layout 1

Microsoft PowerPoint - 104年說明會簡報-final-0923.ppt [相容模式]

支 持 機 構 : 社 會 文 化 司 主 辦 機 構 : 澳 門 學 聯 澳 門 青 年 研 究 協 會 電 話 : 傳 真 : 網 址 : 報 告 主 筆 : 李 略 博 士 數 據 錄

(3) 澳 門 特 別 行 政 區 之 稅 務 知 識 及 (4) 商 法 典 ( 二 ) 重 新 批 准 註 冊 為 註 冊 會 計 師 / 專 業 會 計 員 之 筆 試 科 目 如 下 : (1) 澳 門 特 別 行 政 區 之 稅 務 知 識 及 (2) 商 法 典 ( 三 ) 考 試 範

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

life930106

( 五 ) 財 務 會 計 理 論 研 討 3 學 分 ( 六 ) 審 計 理 論 研 討 3 學 分 ( 七 ) 管 理 會 計 理 論 研 討 3 學 分 第 四 條 選 修 科 目 : ( 一 ) 數 量 方 法 3 學 分 ( 二 ) 財 務 會 計 專 題 研 討 ( 一 ) 3 學 分

<4D F736F F F696E74202D20B2C431B860C2B2B3F82DC2BEB77EBEC7AED5B77CAD70BEC7BDD2B57BBAF5AD6EA65DC0B3B0EABBDAB77CAD70B7C7AB AE74B2A7A4C0AA E BACDBAE65BCD2A6A15D>

Microsoft Word - 雲林區_免試平台_國中模擬選填_操作手冊.doc

一、 資格條件:

(DP_MFP_Training

BOT_BS_audited_96

Microsoft Word - 104身障四等-會計學

玄奘大學 應用心理學系

長跨距暨挑高建築特殊結構系統之調查分析

ART_RAE16_ticket_cn_p.1

Microsoft PowerPoint - 102教師升等說明會

Microsoft Word - LongCard_Promo_2013_FAQ_tc_pdf.doc

【100年諮商輔導所應考科目】

虛擬交易所97年GVE3簡易版.doc


連江縣政府所屬學校兼任代課及代理教師聘任實施要點(草案)

Transcription:

了 解 副 程 式 意 義 及 使 用 時 機, 變 數 的 存 取 範 圍 及 多 表 單 的 程 式 設 計 7-1 函 式 7-2 副 程 式 7-3 變 數 的 範 圍 7-4 傳 值 呼 叫 及 傳 址 呼 叫 7-5 多 表 單 程 式 設 計 (MDI) 7-6 習 題

在 程 式 設 計 過 程 中, 程 式 會 因 為 不 斷 成 長, 程 式 碼 會 愈 來 愈 長, 有 一 部 份 會 重 複 使 用, 這 個 重 複 部 份 可 以 將 它 寫 成 一 個 程 式 片 段, 方 使 程 式 設 計 人 員 共 同 使 用, 這 個 程 式 片 段 我 們 稱 為 副 程 式 或 函 式 7-1 學 習 函 式 的 宣 告 和 使 用 當 一 個 專 案 程 式 程 式 碼 數 量, 還 在 一 千 行 內 時, 並 不 會 感 到 副 程 式 或 函 式 所 帶 來 的 好 處, 但 是 在 程 式 超 過 一 定 數 量 時, 即 會 感 到 這 副 程 式 或 函 式 有 存 在 的 必 要 性 因 為 副 程 式 或 函 式 只 要 更 改 一 次 即 可 完 成 修 改 程 式 碼 工 作 如 果 這 個 程 式 片 段 在 專 案 中 重 複 5 次, 在 不 同 表 單 中 或 物 件 內 重 複, 程 式 設 計 人 員 即 要 修 改 5 次, 如 果 少 改 一 個, 即 有 可 能 產 生 無 法 預 期 錯 誤 副 程 式 及 函 式 在 程 式 設 計 有 以 下 優 點 把 重 覆 的 程 式 模 組 化, 簡 化 程 式 設 計 時 間 提 高 維 護 程 式 的 方 便 性 增 加 程 式 的 可 讀 性 節 省 程 式 碼 長 度 一 般 較 常 用 副 程 式 或 函 式,Visual Basic 都 已 經 寫 好 放 在 系 統 之 中, 例 如 常 用 數 學 函 數 都 在 Math 物 件 中, 只 要 使 Math 物 件 即 可 簡 單 使 用 數 學 函 數, 例 如 三 角 函 數 Math.Sin(X) Math.Cos(X) 及 Math.Tan(X) 等, 而 這 些 函 數 我 們 可 以 直 接 呼 叫 使 用, 不 需 自 己 撰 寫 的, 這 種 內 建 在 系 統 中 我 們 稱 為 內 建 函 式, 而 由 自 己 來 撰 寫 稱 為 副 程 式 或 函 式, 一 般 稱 為 自 建 函 式 7-2

07 副 程 式 只 用 來 完 成 特 定 的 任 務, 並 不 一 定 會 傳 回 值 而 函 式 不 僅 用 來 完 成 一 特 定 的 功 能, 並 在 執 行 後 會 傳 回 一 個 值, 這 個 章 節 將 介 紹 函 式 [Public] [Private] Function 函 數 名 稱 ( 參 數 資 料 串 列 ) [As 資 料 型 態 ] 程 式 敘 述 函 數 名 稱 = 回 傳 值 或 Return 回 傳 值 End Function 1. 函 式 名 稱 命 名 方 式 如 同 變 數 命 名 方 式, 而 且 不 可 和 目 前 變 數 名 稱 相 同 2. 參 數 資 料 串 列, 可 以 傳 遞 資 料 到 函 式 計 算, 也 可 以 不 傳 遞 一 般 而 言 函 式 是 要 傳 回 主 程 式 一 個 值, 也 有 可 能 不 傳 遞, 但 是 如 果 不 傳 回 的 話, 使 用 副 程 式 會 比 較 好 3. 函 式 要 在 模 組 中 進 行 宣 告, 或 表 單 開 始 或 結 束 地 方 宣 告 4. 在 宣 告 函 式 時 如 果 是 以 Private 為 開 頭 時, 只 允 許 同 一 個 模 組 下 來 呼 叫 使 用, 如 果 是 使 用, 以 Public 為 開 頭 時, 容 許 目 前 應 用 程 式 的 所 有 程 序 或 模 組 呼 叫 使 用, 若 函 式 無 特 別 指 定 Private 或 Public, 預 設 為 Public 主 程 式 { 回 傳 函 數 值 = 自 定 函 數 1( 變 數 ) } Function 自 定 函 數 1( 傳 入 變 數 ) as 資 料 型 態 { 計 算 過 程 自 定 函 數 1= 計 算 結 果 } End Function 7-3

7-1-1 應 用 實 例 ( 一 ): 三 角 形 的 面 積 三 角 形 面 積 公 式 ( 海 龍 公 式 ) 如 下 : 邊 長 分 別 為 a,b,c, 三 角 形 的 面 積 S 可 由 以 下 公 式 求 得 : S = p( p a)( p b)( p c ) 其 中 + + p = a b c 2 資 料 輸 出 Textbox 資 料 輸 入 Textbox 7-4

07 1 Function C_triangle(ByVal A As Integer, ByVal B As Integer, ByVal C As Integer) As Single 2 Dim P, S As Single 3 P = (A + B + C) / 2 4 S = Math.Sqrt(P * (P - A) * (P - B) * (P - C)) 5 C_triangle = S 6 End Function 7 8 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 9 Dim temp_1, temp_2, temp_3 As Integer 10 Dim angle_v As Single 11 temp_1 = Val(TextBox1.Text) 12 temp_2 = Val(TextBox2.Text) 13 temp_3 = Val(TextBox3.Text) 14 If temp_1 > 0 And temp_2 > 0 And temp_3 > 0 Then 15 angle_v = c_triangle(temp_1, temp_2, temp_3) 16 If angle_v > 0 Then 17 TextBox4.Text = angle_v 18 Else 19 TextBox4.Text = " 錯 誤 的 三 邊 長 " 20 End If 21 Else 22 MsgBox(" 三 邊 長 的 值 一 定 要 輸 入 不 可 為 0", MsgBoxStyle.OkOnly) 23 End If 24 End Sub 第 1 行 到 第 6 行 為 宣 告 一 個 Function C_triangle() 用 來 計 算 已 知 三 個 邊 長 的 三 角 形 面 積 第 9 行 宣 告 三 個 變 數, 用 來 儲 存 由 TextBox 輸 入 三 個 邊 長 7-5

第 11 行 到 第 13 行 將 TextBox 輸 入 三 個 邊 長 值, 利 用 數 值 轉 換 函 數 Val() 轉 換 文 字 變 為 數 值 第 14 行 判 斷 是 否 有 輸 入 三 個 邊 長 值, 如 果 不 成 位, 以 MsgBox 顯 示 出 錯 誤 訊 息 第 15 行 將 三 個 邊 長 值 傳 入 Function C_triangle(), 並 由 Function 回 傳 一 個 值 第 16 行 到 第 20 行 將 計 算 結 果 作 出 檢 查, 如 果 是 大 於 0 表 示 是 可 以 形 成 一 個 三 角 形 的 三 個 邊 長, 如 果 不 知 即 是 無 法 形 成 一 個 三 角 形 的 三 個 邊 長, 例 如 三 邊 長 為 99,1,1 即 無 法 形 成 一 個 三 角 形 7-1-2 應 用 實 例 ( 二 ): 球 的 表 面 積 球 表 面 積 公 式 如 下 : 2 球 表 面 積 = 4π r 物 件 屬 性 設 定 說 明 Label2 AutoSize False 這 三 個 值 設 為 相 同 時, 則 其 物 MaximumSize 220,20 件 的 寬 度 固 定 為 280 pt Size 220, 40 TEXT 清 除 不 要 任 何 文 字 Label1 BackColor BurlyWood TEXT 請 輸 入 球 的 半 徑 7-6

07 Label 控 制 項 1 Function Compute(ByVal R As Single) As Double 2 Dim tempv As Double 3 tempv = 4 * Math.PI * R ^ 2 4 Compute = tempv 5 End Function 6 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 7 If IsNumeric(TextBox1.Text) Then 8 Label2.Text = " 球 表 面 積 : " & Compute(Val(TextBox1.Text)).ToString 9 Else 10 Label2.Text = " 請 輸 入 半 徑 值 " 11 TextBox1.Text = "" 12 End If 13 End Sub 7-7

第 1 行 到 第 5 行 為 宣 告 一 個 Function Compute() 用 來 計 算 球 表 面 積, 其 中 的 Math.PI 表 示 數 學 上 的 圓 週 率 π 傳 入 半 徑 值, 計 算 完 成 回 傳 到 主 程 式 第 7 行 用 IsNumeric() 判 別 是 否 為 數 字 性 資 料, 如 果 是 則 傳 入 副 程 式 計 算, 否 則 出 現 錯 誤 訊 息 到 Label2 物 件 第 8 行 計 算 完 成 直 接 轉 為 字 串, 顯 示 到 Label2 物 件 7-1-3 應 用 實 例 ( 三 ): 身 份 證 號 碼 檢 驗 身 份 證 號 碼 是 每 一 個 人 都 具 備 的, 而 在 這 個 號 碼 中 其 存 在 著 一 個 特 定 運 算 法 則, 以 便 能 用 來 檢 查 資 料 是 否 正 確 在 各 種 升 學 及 就 業 考 試 報 名 時, 都 要 填 寫 身 分 證 字 號, 如 報 名 程 式 中 無 檢 查 功 能, 將 來 在 後 續 的 錄 取 及 分 發 作 業 上, 可 能 會 產 生 不 必 要 困 擾, 因 此 這 個 檢 查 程 序 是 必 要 的 第 一 位 為 英 文 字 母, 第 二 個 數 字 是 男 女 生 之 分, 男 生 為 1, 女 生 為 2, 身 份 證 字 號 第 三 碼 到 第 九 碼 為 資 料 碼, 第 十 碼 位 為 檢 查 碼, 必 須 經 過 之 前 一 個 字 母 與 8 個 數 字 的 組 合 計 算 後 即 可 了 解 是 否 正 確 身 分 證 驗 證 原 則 如 下 : 英 文 代 號 以 下 表 轉 換 成 數 字 (1) 英 文 轉 成 的 數 字, 個 位 數 乘 9 再 加 上 十 位 數 (2) 第 一 個 數 字 到 第 八 個 數 字, 從 左 到 右 依 次 乘 上 8 7 6 5 1 (3) 最 後 一 個 數 字 A=10 L=20 X=30 B=11 M=21 Y=31 C=12 N=22 W=32 D=13 P=23 Z=33 E=14 Q=24 I=34 F=15 R=25 O=35 G=16 S=26 H=17 T=27 J=18 U=28 K=19 V=29 7-8

07 (1)(2)(3) 的 和, 除 以 10 求 出 餘 數, 如 果 是 0, 表 示 是 正 確 身 份 證 字 號, 如 果 不 是 即 是 錯 誤 的 例 如 : 身 分 證 號 碼 是 A123456789 A 1 2 3 4 5 6 7 8 9 10 8 7 6 5 4 3 2 1 1+0*9=1 1*8=8 2*7=14 3*6=18 4*5=20 5*4=20 6*3=18 7*2=14 8*1=8 9 1 + 8 + 14 + 18 + 20 + 20 + 18 +14 + 8 +9= 130 130/10=13...0 餘 數 為 0 身 份 證 字 號 為 A123456789 是 正 確 的 物 件 屬 性 設 定 說 明 Label2 MaximumSize.width 300 MinimumSize.width 300 Size.width 300 TEXT Label1 BackColor BurlyWood 這 三 個 值 設 為 相 同 時, 則 其 物 件 的 寬 度 固 定 為 300 pt 清 除 不 要 任 何 文 字 7-9

Label 控 制 項 1 Function Checkid(ByVal PerID As String) As Boolean 2 REM 檢 查 身 份 證 號 碼 是 否 正 確 3 Dim EngArray As String ' 定 義 身 份 證 使 用 到 的 英 文 字 串 4 Dim PerIdTemp As Integer 5 Dim PerIdChk1, PerIdChk2, PerIdChk3, PerIdChkSum As Integer 6 Dim Loops As Integer 7 8 REM 算 出 英 文 字 母 值 9 EngArray = "ABCDEFGHJKLMNPQRSTUVXYWZIO" 10 PerIdTemp = InStr(1, EngArray, Microsoft.VisualBasic.Left(PerID, 1)) + 9 11 PerIdChk1 = (PerIdTemp \ 10) + (PerIdTemp Mod 10) * 9 12 REM 取 出 數 字, 並 計 算 數 值 部 份 加 權 值 13 For Loops = 2 To 9 14 PerIdChk2 = PerIdChk2 + Val(Mid(PerID, loops, 1)) * (10 - loops) 15 Next 16 PerIdChkSum = Val(Microsoft.VisualBasic.Right(PerID, 1)) 17 REM 全 部 值 除 以 看 是 否 整 除 18 If (PerIdChk1 + PerIdChk2 + PerIdChkSum) Mod 10 = 0 Then 19 Checkid = True 20 Else 21 Checkid = False 7-10

07 22 End If 23 End Function 24 25 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 26 If Len(TextBox1.Text) = 10 Then 27 If Checkid(UCase(TextBox1.Text)) Then 28 Label2.Text = " 正 確 身 份 證 號 碼 " 29 Else 30 Label2.Text = " 錯 誤 身 份 證 號 碼 " 31 End If 32 Else 33 Label2.Text = " 身 份 證 號 碼 要 10 碼 " 34 TextBox1.Text = "" 35 End If 36 End Sub 37 38 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 39 End 40 End Sub Function Checkid 定 義 為 傳 回 布 林 值, 如 為 正 確 則 傳 回 True, 否 則 即 傳 回 False 將 身 份 證 號 碼 用 到 的 英 文 字 母, 依 照 對 應 轉 換 出 來 的 數 值, 順 序 排 列 為 一 個 字 串 "ABCDEFGHJKLMNPQRSTUVXYWZIO" 利 用 Instr() 找 出 要 檢 驗 身 分 證 號 碼 相 同 字 母 的 位 置 值 再 加 上 9, 轉 換 出 對 應 值 轉 換 值, 例 如 Z 的 位 置 在 該 項 字 串 位 置 是 24, 加 上 9 即 為 33, 由 身 分 證 驗 證 原 則 中 列 表 可 得 知, 並 將 英 文 轉 成 的 數 字, 個 位 數 乘 9 再 加 上 十 位 數, 儲 存 到 PerIdChk1 用 一 個 迴 路 將 前 8 個 數 字 依 序 取 出, 並 乘 上 加 權 值 ( 即 是 迴 路 值 ), 儲 存 到 PerIdChk2 7-11

取 出 最 後 一 個 數 字 儲 存 到 PerIdChk3 將 PerIdChk1 PerIdChk2 和 PerIdChk3 三 個 數 加 起 來, 並 除 以 10 是 否 餘 數 為 0, 如 果 為 0 即 是 正 確 的 身 分 證 號 碼, 如 果 不 為 0, 這 個 身 分 證 號 碼 即 是 錯 誤 的 Instr( 起 始 位 置, 目 標 字 串, 目 的 字 串, 比 對 型 態 ) 1. 以 起 始 位 置 為 起 點, 在 目 標 字 串 中 找 尋 目 的 字 串, 並 傳 回 在 目 標 字 串 的 位 置 值 2. 比 對 型 態 如 果 設 定 為 0 為 執 行 二 進 位 比 對 寫, 設 定 為 1 執 行 文 字 比 對 UCase( 字 串 ): 將 字 串 中 小 寫 的 字 母, 轉 換 成 大 寫 字 母 LCase( 字 串 ): 將 字 串 中 大 寫 的 字 母, 轉 換 成 小 寫 字 母 1. 請 輸 入 立 方 體 三 個 長 度 值 求 其 表 面 積 及 體 積 2. 請 將 球 表 面 積 改 為 計 算 球 體 積, 公 式 如 下 球 體 積 =1/3( 球 表 面 積 * 半 徑 ) 7-2 學 習 函 式 的 副 程 式 宣 告 和 繪 圖 指 令 使 用 7-12

07 7-2-1 副 程 式 定 義 副 程 式 和 函 式 最 大 不 同 在 於 函 式 會 傳 回 一 個 值, 但 是 在 副 程 式 並 不 會 回 傳 一 個 值, 如 果 要 傳 回 值 可 利 用 本 章 全 域 變 數 或 是 傳 址 呼 叫, 來 進 行 變 數 內 容 的 改 變 [Private] [Public] SUB 副 程 式 名 稱 ( 參 數 資 料 串 列 ) 程 式 敘 述 完 成 特 定 工 作 End Sub 1. 副 程 式 名 稱 命 名 方 式 如 同 變 數 命 名 方 式, 而 且 不 可 和 目 前 變 數 名 稱 相 同 2. 參 數 資 料 串 列, 可 以 傳 遞 資 料 到 副 程 式 計 算, 也 可 以 不 傳 遞 副 程 式 並 不 會 傳 回 值, 參 數 前 加 上 ByVal 為 傳 值 呼 叫, 如 加 上 ByRef 為 傳 址 方 式 傳 遞 3. 副 程 式 要 在 模 組 中 進 行 宣 告, 或 表 單 開 始 或 結 束 地 方 宣 告 4. 副 程 式 不 可 使 用 在 運 算 式 中 5. 在 宣 告 副 程 式 時 如 果 是 以 Private 為 開 頭 時, 只 充 許 同 一 個 模 組 下 來 呼 叫 使 用, 如 果 是 使 用, 以 Public 為 開 頭 時, 容 許 目 前 應 用 程 式 的 所 有 程 序 或 模 組 呼 叫 使 用, 若 副 程 式 無 特 別 指 定 Private 或 Public, 預 設 為 Public 7-13

主 程 式 { Call 副 程 式 1( 變 數 ) 下 一 個 敘 述 } SUB 副 程 式 1( 變 數 ) { 副 程 式 要 完 成 工 作 } End Sub 7-2-2 繪 圖 的 功 能 在 VB 2008 上 如 果 要 在 表 單 上 繪 製 一 些 圖 形 ( 例 如 : 線 條 及 圓 ), 要 利 用 GDI+ 繪 圖 介 面 方 式 來 繪 製, 這 個 是 相 當 大 的 改 變 GDI+ 自 Windows XP 開 始 即 為 作 業 系 統 的 一 部 分, 他 提 供 二 維 的 向 量 圖 形 繪 製 功 能, 其 中 提 供 了 線 條 矩 形 橢 圓 形 弧 形 多 邊 形 基 本 曲 線 及 貝 茲 曲 線 GDI+ 繪 圖 功 能 要 經 由 Graphic 物 件 來 進 行 設 定 及 繪 製, 繪 製 圖 形 的 主 要 座 標 系 統 在 以 表 單 或 是 物 件 的 左 上 角 為 原 點, 向 右 及 向 下 延 伸 座 標 系 統 如 圖 所 示, 下 面 例 子 將 會 說 明 繪 製 圖 形 的 重 要 概 念 1 Dim MyPen As New System.Drawing.Pen(Color.Blue, 10) 2 Dim TextG As System.Drawing.Graphics 3 TextG.DrawLine(myPen, 0, 0, 160, 80) 4 MyPen.Dispose() 5 TextG.Dispose() 7-14

07 第 1 行 設 定 畫 筆 的 樣 式, 其 中 樣 式 包 括 為 顏 色 和 畫 筆 寬 度, 其 中 的 顏 色 可 以 指 定 為 Color 結 構 屬 性 所 表 示 之 色 彩 值, 畫 筆 寬 度 值 為 單 精 確 度, 如 果 值 設 為 0 結 果 和 1 是 相 同 的 第 2 行 以 Graphics 來 建 立 物 件 第 3 行 使 用 Graphics 物 件 來 繪 製 線 條 和 形 狀, 其 中 依 指 定 畫 筆 樣 式 在 起 始 座 標 為 (0,0) 到 結 束 座 標 (160,80), 繪 出 一 條 直 線 在 繪 製 完 成 以 後 要 將 這 些 系 統 資 源, 歸 還 作 業 系 統, 因 為 繪 製 圖 形 是 比 較 浪 費 系 統 資 源 的, 所 以 第 4 行 和 第 5 行 我 們 使 用 Dispose() 來 釋 放 記 憶 體 資 源 7-2-3 時 間 延 遲 [ 不 傳 參 數 ] 應 用 實 例 ( 四 ): 繪 製 直 線 由 左 到 到 右 繪 製 由 右 到 到 左 繪 製 7-15

1 Sub sleep() 2 Dim start, finish As Double 3 start = Microsoft.VisualBasic.DateAndTime.Timer 4 finish = start + 0.1 5 Do While Microsoft.VisualBasic.DateAndTime.Timer < finish 6 ' 空 迴 路 7 Loop 8 End Sub 9 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 10 Dim MyPen As New System.Drawing.Pen(Color.Blue, 20) 11 Dim TextGraphics As System.Drawing.Graphics 12 TextGraphics = Me.TextBox1.CreateGraphics() 13 Dim x1, y1 As Integer 14 X1 = Me.TextBox1.Width 15 Y1 = Me.TextBox1.Height 16 TextGraphics.Clear(Color.White) 17 For i As Integer = 0 To Me.Width Step 40 18 TextGraphics.DrawLine(myPen, i, 0, x1 - i, y1) 19 Call sleep() 20 Next 21 MyPen.Dispose() 22 TextGraphics.Dispose() 23 End Sub 24 25 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 26 End 27 End Sub 7-16

07 第 1 行 到 第 8 行 為 副 程 式 Sub sleep() 主 要 功 用 是 做 一 個 時 間 延 遲, 其 中 的 start 為 最 取 得 進 入 副 程 式 時 的 系 統 時 間,finish 為 start 加 上 要 延 遲 時 間 秒 數, 即 是 要 完 成 時 間 的 系 統 時 間, 並 且 利 用 空 迴 路 來 完 成 時 間 延 遲 工 作 其 中 Microsoft.VisualBasic.DateAndTime.Timer, 主 要 是 取 得 電 腦 系 統 本 身 的 系 統 時 間, 這 個 空 迴 路 時 間 固 定 在 0.1 秒 結 束 第 10 行 為 宣 告 畫 筆 的 樣 式 第 11 行 為 設 定 Graphics 物 件, 第 12 行 將 Graphics 物 件 套 用 在 TextBox1 控 制 項 物 件 上 第 13 行 宣 告 座 標 最 大 值 為 X1 及 Y1, 並 在 第 14 行 及 第 15 行 取 得 TextBox1 控 制 項 物 件 的 寬 度 和 高 度 值 第 16 行 TextGraphics.Clear(Color.White) 主 要 目 的 是 TextBox1 的 背 景 顏 色 設 為 白 色, 如 果 在 配 置 表 單 有 變 更 為 其 他 顏 色 時, 即 要 Clear 為 該 項 色 彩 第 17 行 到 第 19 行 為 一 個 迴 路, 繪 出 直 線 值, 為 了 要 讓 使 用 看 到 其 繪 製 過 程 特 別 呼 叫 時 間 延 遲, 第 18 行 TextGraphics.DrawLine 繪 製 直 線, 而 座 標 值 i, 0 表 示 起 點 座 標 值, 因 為 y 軸 為 0, 將 只 會 固 定 在 TextBox1 上 方, 由 左 到 到 右 繪 製 x1 i, y1 表 示 結 束 座 標 值, 因 為 y 軸 為 變 數 y1, 而 根 據 第 13 行 設 定 後, 將 只 會 固 定 在 TextBox1 下 方, 由 到 右 到 左 繪 製 第 20 行 到 第 21 行 將 繪 圖 資 源 歸 還 作 業 系 統 7-17

7-2-4 時 間 延 遲 [ 傳 遞 參 數 ] 應 用 實 例 ( 五 ): 繪 製 橢 圓 形 由 內 到 到 外 繪 製 1 Sub sleep2(byval sleeptime As Double) 2 Dim start, Finish As Double 3 start = Microsoft.VisualBasic.DateAndTime.Timer 4 Finish = start + sleeptime 5 Do While Microsoft.VisualBasic.DateAndTime.Timer < Finish 6 ' 空 迴 路 7 Loop 8 End Sub 9 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 10 Dim MyPen As New System.Drawing.Pen(Color.Blue, 2) 11 Dim TextGraphics As System.Drawing.Graphics 12 TextGraphics = Me.TextBox1.CreateGraphics() 13 Dim x1, y1, Temp As Single 14 x1 = Me.TextBox1.Width / 2 15 y1 = Me.TextBox1.Height / 2 16 TextGraphics.Clear(Color.White) 7-18

07 17 For i As Integer = 0 To Me.Width Step 40 18 Temp = i / 2 19 TextGraphics.DrawEllipse(MyPen, x1 - i, y1 - Temp, i * 2, i) 20 Call sleep2(0.1) 21 Next 22 MyPen.Dispose() ' 將 各 項 資 源 釋 放 給 作 業 系 統 23 TextGraphics.Dispose() 24 End Sub 25 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 26 End 27 End Sub 第 1 行 到 第 5 行 為 副 程 式 Sub sleep2() 主 要 功 用, 如 同 前 一 個 程 式 一 樣 為 時 間 延 遲 副 程 式, 由 主 程 式 來 傳 入 要 延 遲 時 間, 其 中 各 項 變 數 如 同 前 一 個 程 式, 這 個 空 迴 路 延 遲 時 間, 由 主 程 式 來 決 定 時 間 長 短 第 19 行 TextGraphics.DrawEllipse 繪 製 橢 圓 形, 橢 圓 形 和 圓 形 其 實 都 是 用 這 個 指 令 來 繪 製, 在 繪 製 過 程 是 以 矩 形 為 主 要 的 依 據 ( 如 下 面 圖 例 說 明 ) 座 標 值 x1 - i, y1 - Temp 表 示 矩 形 為 有 上 角 座 標 ( 如 下 面 圖 例 說 明 1), 而 橢 圓 的 長 軸 和 短 軸, 是 由 (i * 2, i) 來 設 定, 在 本 例 的 長 軸 為 i*2 為 水 平 方 向 長 軸 ( 如 下 面 圖 例 說 明 2), 如 果 變 更 為 (i, i * 2) 長 軸 變 為 垂 直 方 向 ( 如 下 面 圖 例 說 明 3) (1) (2) (3) 7-19

在 上 圖 中 我 們 可 以 理 解,VB 2008 是 一 個 矩 形 內 接 圓 方 式 來 繪 製 圓 和 橢 圓 形, 而 傳 統 的 VB6 是 直 接 設 定 圓 心 半 徑 及 長 短 軸 長 來 繪 製 圖 形 1. 請 將 繪 製 直 線 修 改 為 左 右 對 稱, 並 由 上 而 下 繪 製, 線 條 顏 色 設 定 為 紅 色 2. 請 將 繪 製 橢 圓 形 修 改 為 圓 形, 並 由 外 向 內 繪 製, 線 條 顏 色 設 定 為 綠 色 7-3 學 習 變 數 存 在 範 圍 變 數 在 程 式 中 是 有 一 定 存 取 的 範 圍, 變 數 通 常 是 在 主 程 式 副 程 式 或 函 式 來 定 義 宣 告 和 使 用, 因 此 變 數 範 圍 可 分 為 全 域 性 變 數 和 區 域 性 變 數 全 域 性 變 數 ( Public): 在 整 個 程 式 中 都 能 使 用 的 變 數 即 是 全 域 性 變 數 例 如 在 模 組 的 一 般 宣 告 區 宣 告 的 變 數, 在 整 個 專 案 中 無 論 是 那 一 個 表 單 函 式 及 副 程 式 都 能 讀 取 和 設 定 全 域 性 變 數 可 再 細 分 二 類, 其 中 一 類 為 專 案 性 全 域 性 變 數, 另 一 類 為 表 單 性 全 域 性 變 數 專 案 性 全 域 性 變 數 可 在 不 同 的 表 單 間 的 各 個 程 序 副 程 式 和 函 式 間 使 用 表 單 性 全 域 性 變 數, 則 限 定 同 一 個 表 單 中 各 個 程 序 副 程 式 和 函 式 間 使 用 區 域 性 變 數 (Private): 只 在 表 單 函 式 及 副 程 式 中 被 使 用 的 變 數 即 是 區 域 性 變 數, 如 果 變 數 以 Dim 宣 告 即 是 例 如 控 制 項 或 副 程 式 宣 告 的 變 數, 只 能 在 這 個 控 制 項 或 是 副 程 式 中 進 行 運 算 工 作, 並 無 法 在 其 他 7-20

07 控 制 項 或 副 程 式 中 來 使 用 所 以 不 同 控 制 項 或 副 程 式 都 可 定 義 相 同 名 稱 的 變 數, 彼 此 間 並 不 會 互 相 影 響 但 是 區 域 性 變 數 名 稱 不 可 和 全 域 性 變 數 相 同, 否 則 會 只 讀 取 區 域 性 變 數, 並 不 會 讀 取 全 域 性 變 數 值 靜 態 變 數 (Static): 只 能 用 於 副 程 式 內, 用 Static 所 宣 告 的 變 數 的 變 數 值, 會 保 留 至 下 次 副 程 式 被 呼 叫 來 使 用, 並 不 會 每 次 呼 叫 都 將 變 數 重 新 歸 零, 一 般 副 程 式 內 所 宣 告 的 變 數 會 隨 著 副 程 式 結 束, 記 憶 體 位 置 即 歸 還 作 業 系 統 7-3-1 應 用 實 例 ( 六 ): 變 數 的 範 圍 和 表 單 相 同 變 數 不 會 改 變 全 域 變 數 會 改 變 7-21

GroupBox 控 制 項 Label 控 制 項 TextBox 控 制 項 1 Module publicvar 2 Public varmodule As Integer = 1 ' 定 義 模 組 變 數 3 End Module 4 5 Dim varform As Integer = 1 ' 定 義 表 單 變 數 6 7 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 8 Dim varloc As Integer = 1 9 varform = varform + 1 10 varloc = varloc + 1 11 varmodule = varmodule + 1 12 TextBox1.Text = varform.tostring 13 TextBox2.Text = varloc.tostring 14 TextBox3.Text = varmodule.tostring 15 End Sub 16 17 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 18 Static varloc As Integer = 1 ' 定 義 一 個 靜 態 變 數 19 varform = varform - 1 20 varloc = varloc - 1 7-22

07 21 varmodule = varmodule 1 22 TextBox1.Text = varform.tostring 23 TextBox2.Text = varloc.tostring 24 TextBox3.Text = varmodule.tostring 25 End Sub 26 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 27 Dim varform As Integer = 1 ' 定 義 一 個 和 表 單 變 數 相 同 變 數 28 varform = varform + 100 29 varmodule = varmodule + 100 30 TextBox1.Text = varform.tostring 31 TextBox3.Text = varmodule.tostring 32 TextBox2.Clear() ' 將 用 不 到 TextBox 清 除 33 End Sub 34 35 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 36 End 37 End Sub 在 這 個 程 式 我 們 使 用 到 GroupBox 控 制 項, 放 置 同 一 群 組 控 制 項 第 1 行 到 第 3 行 模 組 程 式 碼 要 置 放 在 方 案 總 管 內, 主 要 功 用 是 定 義 一 個 專 案 性 全 域 變 數, 這 個 變 數 是 可 在 不 同 表 單 中 共 同 使 用, 但 本 例 只 有 一 個 表 單 第 5 行 為 定 一 個 表 單 性 全 域 變 數, 這 個 要 定 義 在 表 單 宣 告 區 內, 這 個 變 數 只 可 在 單 一 表 單 內 使 用, 只 要 在 這 個 表 單 中 的 各 個 物 件 都 可 使 用 第 7 行 到 第 15 行 將 會 對 所 有 的 變 數 做 累 加 動 作, 但 是 其 只 會 改 變 全 域 性 變 數, 區 域 性 變 數 varloc 每 按 一 次 即 會 重 新 宣 告 一 次 並 無 法 累 加, 因 此 只 會 出 現 固 定 值 7-23

第 17 行 到 第 25 行 將 會 對 所 有 的 變 數 做 累 減 動 作, 但 是 會 改 變 所 有 變 數 值, 其 中 區 域 性 變 數 varloc 宣 告 為 Static, 它 會 記 錄 值, 並 不 會 不 斷 重 新 宣 告 而 無 法 記 錄 值 第 26 行 到 第 33 行 定 義 一 個 和 表 單 變 數 相 同 變 數 varform, 如 果 在 區 域 內 定 義 使 用 這 個 變 數, 將 不 會 改 變 到 表 單 變 數 varform, 而 只 會 改 變 區 域 變 數 varform, 因 此 在 變 數 定 義 時, 在 使 用 上 特 別 留 意 其 存 在 範 圍, 如 果 區 域 變 數 和 全 域 變 數 相 同 時, 將 無 法 取 得 全 域 性 變 數 值 7-4 學 習 變 數 傳 遞 方 式 (Call By Value) 傳 值 呼 叫 主 要 是 將 變 數 內 容, 傳 遞 到 副 程 式, 主 程 式 和 副 程 式 各 自 使 用 自 己 的 記 憶 體 位 置, 所 以 在 副 程 式 任 何 變 化, 都 不 會 影 響 到 主 程 式 中 相 對 變 數 內 容 在 傳 值 呼 叫 中, 主 程 式 要 傳 遞 參 數 可 以 是 變 數 常 數 或 是 運 算 式, 如 果 副 程 式 參 數 是 以 傳 址 (ByRef) 宣 告, 呼 叫 程 式 碼 可 以 在 呼 叫 中 將 變 數 名 稱 以 () 括 起 來, 以 強 制 該 機 制 為 傳 值 (ByVal) 呼 叫, 在 實 例 應 用 繪 製 橢 圓 形 中 即 是 使 用 傳 值 呼 叫 (Call By Address) 傳 址 呼 叫 主 要 是 將 變 數 記 憶 體 位 置, 傳 遞 到 副 程 式, 使 主 程 式 和 副 程 式 使 用 共 同 記 憶 體 位 置, 所 以 變 數 如 果 在 副 程 式 產 生 變 化, 都 會 直 接 改 變 到 主 程 式 中 相 對 變 數 內 容 在 傳 址 呼 叫 不 可 使 用 常 數 為 傳 遞 參 數 (Call By Address), 在 VB6.0 版 中, 副 程 式 參 數 列 中 的 參 數 若 未 特 別 宣 7-24

07 告, 則 其 預 設 為 傳 址 呼 叫, 而 在 VB 2008 中, 則 預 設 為 傳 值 呼 叫 (Call By Value) 7-4-1 應 用 實 例 ( 七 ): 傳 值 呼 叫 7-25

1 Sub AddVal(ByVal InVarX As Integer, ByVal InVarY As Integer) 2 InVarX = InVarX + 2000 3 InVarY = InVarY + InVarX + 1956 4 5 TextBox1.Text = TextBox1.Text & " 副 程 式 變 數 值 " + vbnewline 6 TextBox1.Text = TextBox1.Text & "InVarX=" & InVarX.ToString & vbnewline 7 TextBox1.Text = TextBox1.Text & "InVarY=" & InVarY.ToString & vbnewline 8 End Sub 9 10 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 11 Dim VarX, VarY As Integer 12 VarX = 100 13 VarY = 210 14 TextBox1.Clear() 15 TextBox1.Text = TextBox1.Text & " 主 程 式 呼 叫 前 變 數 值 " + vbnewline 16 TextBox1.Text = TextBox1.Text & "VarX=" & VarX.ToString & vbnewline 17 TextBox1.Text = TextBox1.Text & "VarY=" & VarY.ToString & vbnewline 18 TextBox1.Text = TextBox1.Text & vbnewline 19 20 Call AddVal(VarX, VarY) 21 22 TextBox1.Text = TextBox1.Text & vbnewline 23 TextBox1.Text = TextBox1.Text & " 主 程 式 呼 叫 後 變 數 值 " & vbnewline 24 TextBox1.Text = TextBox1.Text & "VarX=" & VarX.ToString & vbnewline 25 TextBox1.Text = TextBox1.Text & "VarY=" & VarY.ToString & vbnewline 7-26

07 26 End Sub 27 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 28 End 29 End Sub 第 1 行 到 第 8 行 為 副 程 式, 接 收 主 程 式 傳 遞 過 來 的 值, 並 進 行 加 總 並 輸 出 到 TextBox 第 14 行 到 第 18 行 主 要 是 在 呼 叫 副 程 式 前, 將 變 數 內 容 顯 示 出 來 第 20 行 呼 叫 副 程 式 並 傳 遞 值 過 去 第 22 行 到 第 25 行 主 要 是 在 呼 叫 副 程 式 後, 將 變 數 內 容 顯 示 出 來, 前 後 二 者 相 互 比 較 並 無 改 變 7-4-2 應 用 實 例 ( 八 ): 傳 址 呼 叫 7-27

07 7-6 1. ( ) 執 行 下 列 程 式 片 段 後,K 值 為 何? (A) 1 (B) 5 (C) 15 (D) 120 Private Sub Form_Activate( ) REM MAIN PROGRAM K=GAME(5) Console.WriteLine (K) End Sub FUNCTION GAME(X) If(X>1) THEN GAME=X *GAME(X-1) ELSE GAME=1 END If END FUNCTION 2. ( ) Private Sub FORM_ACTIVATE() Dim X as Integer = 5 Dim A as Double = FS(X) A=FS(X) Console.WriteLine (A+X) End Sub Function FS(X) FS = X For J = X To 3 Step 1 FS = FS * J Next J End Function (A) 65 (B) 105 (C) 125 (D) 305 7-41

3. ( ) 以 下 是 對 有 n 個 元 素 的 陣 列 a ( 註 標 範 圍 :1 ~ n), 執 行 氣 泡 式 排 序 的 Visual Basic 程 式 片 段 第 二 行 空 格 處 應 填 入 何 式 才 正 確? (A) n pass (B)n pass + 1 (C) n pass 1 (D)n pass 2 For pass = 1 To n 1 For j = 1 To If a ( j ) > a ( j + 1) Then temp = a ( j ) : a ( j ) = a ( j + 1) : a ( j + 1) = temp End If Next j Next pass 4. ( ) 下 列 Visual Basic 程 式 執 行 後, 所 輸 出 的 資 料 為 何? (A) 2 (B) 1 (C) 0 (D) 1 Private Sub Heart ( m As Integer ) m = m ^ ( m + 2 ) End Sub Private Sub Form_Activate ( ) Dim C As Integer C = 1 Call Heart (C ) Console.WriteLine (C) End Sub 1. 使 用 副 程 式 來 設 計 程 式 有 那 四 項 優 點 2. 將 字 串 中 小 寫 的 字 母, 轉 換 成 大 寫 字 母 函 數 3. 判 別 是 否 為 數 字 性 資 料 函 數 7-42

07 4. 圓 週 率 的 數 學 函 數 5. 三 角 函 數 正 弦 函 數 餘 弦 函 數 1. 寫 一 函 式 計 算 銀 行 借 款 的 複 利 之 本 利 和, 分 別 傳 入 本 金 年 利 率 及 期 數 複 利 之 本 利 和 公 式 = 本 金 *(1 + 年 利 率 )^ 期 數 7-43