範本檔
|
|
|
- 聚绍 米
- 9 years ago
- Views:
Transcription
1 第 二 章 JavaScript 2-1 網 頁 設 計 導 論 動 態 網 頁 與 靜 態 網 頁 網 頁 依 其 資 料 展 現 性 質, 大 致 可 分 為 靜 態 網 頁 與 動 態 網 頁 所 謂 靜 態 網 頁 是 指 資 料 的 展 現 固 定 不 變, 並 不 能 依 不 同 使 用 者 的 不 同 需 求 而 有 不 同 的 輸 出 結 果 但 是 動 態 網 頁 是 指 當 使 用 者 瀏 覽 該 網 頁 時, 才 根 據 使 用 者 的 需 求, 動 態 產 生 HTML 文 件, 所 以 每 個 人 的 不 同 輸 入 值, 都 可 產 生 不 同 的 輸 出 結 果 客 戶 端 程 式 vs 伺 服 端 程 式 為 了 減 輕 伺 服 器 的 負 擔, 動 態 網 頁 程 式 大 致 可 分 為 客 戶 端 (Client) 程 式 與 伺 服 端 (Server) 程 式 所 謂 客 戶 端 程 式, 乃 是 當 使 用 者 連 結 伺 服 器 下 載 所 需 網 頁, 使 用 客 戶 端 的 電 腦 直 接 依 照 使 用 者 的 需 求, 產 生 HTML 文 件 例 如, 使 用 者 要 求 計 算 34*55 的 值, 或 是 按 壓 某 一 按 鍵, 要 讓 某 一 物 件 上 下 左 右 移 動 等 動 作, 這 些 事 情 都 可 交 由 客 戶 端 電 腦 處 理 即 可, 不 用 後 送 伺 服 器, 以 提 高 處 理 效 率, 且 減 少 網 路 流 量 常 見 的 客 戶 端 程 式 有 Java Applet JavaScript Jscript VBScript 等, 本 書 將 於 本 章 闡 述 JavaScript 網 頁 設 計 伺 服 端 程 式 是 指 客 戶 端 電 腦 無 法 處 理, 必 須 要 求 伺 服 器 處 理 的 工 作 例 如, 當 使 用 者 查 詢 資 料 庫 內 容 時, 此 時 因 為 資 料 庫 僅 儲 存 在 伺 服 端 電 腦, 客 戶 端 並 無 法 回 應 使 用 者 的 要 求, 所 以 乃 將 使 用 者 的 需 求 後 送 伺 服 器, 伺 服 器 再 依 使 用 者 的 需 求 送 出 HTML 文 件 給 客 戶 端 電 腦, 最 後 再 由 客 戶 端 電 腦 顯 示 結 果, 此 稱 為 伺 服 端 程 式, 常 見 的 伺 服 端 程 式 有 CGI ASP JSP 及 PHP JavaScript JavaScript 是 由 微 軟 公 司 與 網 景 (Netscape) 公 司 所 聯 合 發 展 的 網 頁 描 述 語 言 (Script), 他 的 語 法 取 自 於 Java, 所 以 稱 為 JavaScript 因 為 市 面 上 主 要 的 瀏 覽 器 都 支 援 此 一 標 準, 也 是 目 前 客 戶 端 程 式 市 場 佔 有 率 最 高 的 Script 語 言, 這 也 是 我 們 選 擇 以 JavaScript 作 為 動 態 網 頁 設 計 的 主 要 原 因 FrontPage 網 頁 的 編 輯 可 以 使 用 微 軟 的 記 事 本 微 軟 的 Script Editor 微 軟 的 FrontPage( 備 註 : 如 果 是 Office2007, 則 其 軟 體 名 稱 改 為 SharePoint Designer) 或 Adobe 的 Dreamweaver, 但 是 記 事 本 與 Script Editor 都 過 於 陽 春,Dreamweaver 的 功 能 又 過 於 龐 大, 價 錢 亦 貴 其 次, 因 為 FrontPage 的 價 錢 適 中, 幾 乎 每 台 電 腦 都 有 安 裝, 且 功 能 又 足 夠 學 習 JavaScript, 所 以 本 書 乃 使 用 FrontPage 作 為 JavaScript 的 編 輯 工 具 進 入 FrontPage 的 畫 面 如 下 圖, 共 有 4 種 頁 籤, 分 別 是 設 計 " 分 割 " " 程 式 碼 " 及 " 預 覽 " 下 圖 是 進 入 FrontPage 時 的 程 式 碼 頁 籤, 已 寫 好 一 些 HTML 碼
2 下 圖 是 設 計 頁 籤, 網 頁 所 要 顯 示 的 文 字 與 圖 片, 還 有 文 字 與 圖 片 的 格 式 都 可 在 此 操 作, 且 都 與 Word 接 近 2-2 JavaScript 基 本 輸 出 入 輸 出 與 輸 入 是 撰 寫 程 式 的 第 一 步, 也 是 所 有 語 言 的 第 一 步, 本 節 即 是 介 紹 JavaScript 的 基 本 輸 出 入
3 2_2_1 write write 是 我 們 最 為 常 用 的 輸 出 方 法, 他 隸 屬 document 物 件, 所 以 都 是 以 document.write 呈 現 例 如, x=2; document.write(x); 即 可 輸 出 變 數 x 之 值 範 例 e2_2_1a 請 編 輯 一 個 網 頁, 可 以 執 行 以 上 結 果 操 作 步 驟 1 開 啟 FrontPage 2 按 一 下 程 式 碼 標 籤, 已 有 現 成 程 式 如 下 : <html> <head> <meta http-equiv="content-type" content="text/html; charset=big5"> <title> 新 增 網 頁 1</title> </head> <body> </body> </html> 3 請 於 <body> </body> 裡 面 插 入 以 下 程 式 碼 <body> <script language =javascript > var x; x=2; document.write(x); </script> </body> 4 按 一 下 預 覽 " 標 籤, 即 可 瀏 覽 執 行 結 果, 如 下 圖 補 充 說 明 1 以 上 程 式 <script language =javascript >, 其 中 的 script language 大 小 寫 不 能 寫 錯, 若 打 錯 了, 當 然 造 成 程 式 錯 誤, 而 javascript 則 可 寫 成 JavaScript JavaScript 或 javascript 都 可 接 受
4 2_2_2 alert alert 可 彈 出 一 個 對 話 框, 並 輸 出 結 果, 其 語 法 如 下 : alert( 輸 出 內 容 ); 例 如, alert( Hello ); 其 結 果 如 下 圖 範 例 e2_2_2a 請 編 輯 一 個 網 頁, 可 以 執 行 以 上 結 果 操 作 步 驟 1 請 於 <body> </body> 裡 面 插 入 以 下 程 式 碼 <body> <script language =javascript > alert("hello"); </script> </body> 2_2_3 prompt prompt 可 彈 出 一 個 對 話 框, 並 等 待 使 用 者 輸 入 文 字 或 數 字, 其 語 法 如 下 : prompt( 輸 入 提 示,[ 預 設 值 ]) 例 如, a=prompt(" 請 輸 入 1~5",1); 的 結 果 如 下 圖, 已 經 有 預 設 值 1 2_2_4 表 單 表 單 如 下 圖 所 示, 筆 者 已 經 放 置 兩 個 文 字 方 塊 ( 按 鈕 上 面 一 個, 按 鈕 下 面 一 個 ) 與 一 個 按 鈕 文 字 方 塊 可 用 來 輸 出 入 文 字 或 數 字 ; 按 鈕 則 用 來 執 行 某 些 程 式 片 段
5 以 下 我 們 將 先 介 紹 以 上 表 單 文 字 方 塊 與 按 鈕 等 三 種 物 件, 作 為 簡 單 的 基 本 輸 出 入 例 如, 我 們 以 輸 入 一 數, 並 輸 出 其 平 方 值 為 例, 介 紹 以 上 三 種 常 用 輸 出 入 物 件 此 外, 表 單 尚 可 插 入 核 取 方 塊 選 項 按 鈕 下 拉 式 清 單 方 塊 等 輸 出 入 物 件, 我 們 會 在 第 2_9 節 介 紹 插 入 以 上 表 單 與 文 字 按 鈕 物 件 後, 其 程 式 碼 如 下 : <form method="post" action="--webbot-self--"> <p><input type="text" name="t1" size="20"></p> <p><input type="button" value=" 按 鈕 " name="b1"></p> <p><input type="text" name="t2" size="20"></p> </form> 共 有 四 個 物 件, 分 別 是 一 個 form 兩 個 text 及 一 個 button 分 別 說 明 如 下 : I form form 稱 為 表 單, 上 面 的 text button 都 有 name, 唯 獨 form 沒 有, 為 了 能 存 取 form 內 的 物 件, 必 須 自 行 增 加 name 屬 性 I text text 稱 為 文 字 方 塊, 其 內 容 屬 性 為 value 其 次, 以 上 程 式 碼 並 沒 有 value, 需 自 行 加 入 I type 文 字 方 塊 的 input type 預 設 值 是 "text", 若 將 其 修 改 為 "password, 則 螢 幕 將 會 以 黑 點 代 替 使 用 者 所 輸 入 的 值, 以 防 別 人 窺 視 以 下 將 以 範 例 介 紹 以 上 三 種 常 用 輸 出 入 物 件 的 用 法 範 例 2_2_4a 請 設 計 一 網 頁, 可 以 輸 入 一 數, 並 輸 出 其 平 方 值 執 行 結 果 1 預 覽 的 初 始 畫 面 如 下 圖 左 2 按 一 下 執 行 " 按 鈕, 畫 面 如 下 圖 右 請 讀 者 自 行 更 改 輸 入 值, 並 執 行 程 式
6 操 作 步 驟 1 插 入 一 個 表 單 ( 按 一 下 插 入 / 表 單 / 表 單 "), 畫 面 如 下 圖 左 2 請 刪 除 送 出 " 與 重 新 設 定 兩 個 物 件, 畫 面 如 下 圖 右 3 依 序 插 入 文 字 方 塊 按 鈕 文 字 方 塊, 畫 面 如 下 圖 ( 以 上 物 件 均 在 功 能 表 插 入 / 表 單 選 單 內 ) 4 form 的 Html 碼 如 下 : <form method="post" action="--webbot-self--"> 請 加 入 name= myform, 其 中 myform 可 自 訂, 如 下 所 示 : <form name="myform" method="post" action="--webbot-self--"> 5 text 文 字 方 塊 的 Html 碼 如 下 :
7 <p><input type="text" name="t1" size="20" ></p> 請 加 入 value=5, 如 下 所 示 : <p><input type="text" name="t1" size="20" value=5></p> 其 次, 亦 可 直 接 於 設 計 畫 面 按 兩 下 文 字 方 塊, 如 下 圖, 即 可 於 此 畫 面 輸 入 預 設 值 6 button 按 鈕 的 Html 碼 如 下 : <p><input type="button" value=" 按 鈕 " name="b1"></p> 請 將 value 修 改 為 執 行 ", 並 加 入 onclick 事 件 執 行 aa() 方 法, 如 下 所 示 : <p><input type="button" value=" 執 行 " name="b1" onclick="aa()"></p> 7 完 成 以 上 設 定, 設 計 " 頁 籤 如 下 圖 所 示 : 8 鍵 入 程 式 碼 請 於 <head></head> 之 間, 鍵 入 以 下 JavaScript 程 式 碼 <head> <script language =javascript > function aa() { var m,n; // 輸 入 m=eval(myform.t1.value); // 處 理
8 n=m*m; // 輸 出 myform.t2.value=n; </script> </head> 9 存 檔 請 點 選 檔 案 / 另 存 新 檔, 並 輸 入 檔 名 即 可 完 成 存 檔 程 式 列 印 <html> <head> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p><input type="text" name="t1" size="20" value=5></p> <p><input type="button" value=" 執 行 " name="b1" onclick ="aa()"></p> <p><input type="text" name="t2" size="20"></p> </form> <script language =javascript > function aa() { var m,n; // 輸 入 m=eval(myform.t1.value); // 處 理 n=m*m; // 輸 出 myform.t2.value=n; </script> </body> </html> 範 例 2_2_4b 請 設 計 一 網 頁, 可 以 輸 入 兩 數, 執 行 兩 數 相 加, 並 輸 出 相 加 結 果 執 行 結 果 1 下 圖 左 是 網 頁 執 行 的 初 始 畫 面 2 下 圖 右 是 按 一 下 相 加 " 的 畫 面
9 操 作 步 驟 1 插 入 表 單 2 刪 除 提 交 重 新 設 定 等 兩 個 物 件 3 插 入 兩 個 文 字 方 塊 ( 本 例 為 T1 及 T2) 一 個 按 鈕 ( 本 例 為 B1) 一 個 文 字 方 塊 ( 本 例 為 T3) 4 修 改 B1 物 件 的 value 值 ( 本 例 將 value 值 修 改 為 相 加 ) 5 新 增 T1 T2 的 value 值 A 在 name= T1 後 面 加 上 value=3 B 在 name= T2 後 面 加 上 value=4 6 將 表 單 命 名 ( 在 <form 後 面 加 上 name= myform ) 7 新 增 onclick 事 件 ( 在 name= B1 後 面 加 上 onclick= aa() ) 8 寫 入 程 式 碼 在 <title> </title> 下 面 加 入 以 下 程 式 碼 大 小 寫 要 一 致, 分 號 (;) 不 可 遺 漏 <script language=javascript> function aa(){ var r1,r2,r3; r1=eval(myform.t1.value); r2=eval(myform.t2.value); r3=r1+r2; myform.t3.value=r3; </script> 程 式 列 印 <html> <head> <title> 兩 數 相 加 </title> <script language=javascript> function aa(){
10 var r1,r2,r3; r1=eval(myform.t1.value); r2=eval(myform.t2.value); r3=r1+r2; myform.t3.value=r3; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p><input type="text" name="t1" size="11" value="4"> + <input type="text" name="t2" size="12" value="5"></p> <p><input type="button" value=" 相 加 " name="b1" onclick ="aa()"></p> <p> 結 果 是 :<input type="text" name="t3" size="18"></p> </form> </body> </html> 自 我 練 習 1 請 設 計 一 個 網 頁, 滿 足 以 下 條 件 (1) 可 以 輸 入 兩 個 數 字 (2) 安 排 四 個 按 鈕, 其 標 題 分 別 是 + - * 及 / (3) 按 一 下 以 上 四 個 按 鈕, 即 可 輸 出 以 上 兩 個 數 字 相 加 減 乘 及 除 的 結 果 2 輸 入 立 方 體 的 長 寬 高, 計 算 其 表 面 積 與 體 積 範 例 2_2_4c 請 設 計 一 網 頁, 滿 足 以 下 條 件 1 可 以 輸 入 兩 個 數 字 2 交 換 此 兩 個 數 字 3 輸 出 交 換 的 結 果 輸 出 結 果 如 下 圖 右 :
11 程 式 列 印 <script language=javascript> function aa(){ var a,b,t; a=eval(myform.t1.value); b=eval(myform.t2.value); //process t=a;a=b;b=t; //output myform.t3.value=a; myform.t4.value=b; </script> 程 式 說 明 兩 個 數 要 交 換, 就 如 同 兩 隻 手 各 拿 一 樣 東 西, 並 要 交 換 其 位 置 所 以 假 設 兩 隻 手 的 名 稱 分 別 是 a 與 b, 現 在 要 交 換 其 內 容, 則 其 方 法 如 下 : 1. 先 找 來 第 三 隻 手, 並 設 定 其 名 稱 為 t 2. 將 a 的 東 西 交 給 t t=a; ( 此 時 a 才 是 空 的 ) 3. 將 b 的 東 西 交 給 a a=b; 4. 將 t 的 東 西 交 給 a, 而 完 成 東 西 的 交 換 a=t; 5. 若 未 先 找 來 第 三 隻 空 手 t, 而 直 接 將 b 的 東 西 交 給 a, 再 將 a 的 東 西 交 給 b, 如 以 下 敘 述 : a=b; b=a; 則 當 執 行 a=b 時,a 的 東 西 就 已 經 消 失, 此 時 再 執 行 b=a, 已 是 錯 誤 的 結 果 6. 當 然 不 能 同 雜 耍 那 樣, 同 時 將 兩 樣 東 西 往 上 拋, 再 同 時 接 住, 因 為 電 腦 無 此 特 技 功 能
12 [ 自 我 練 習 ] 1 假 設 某 次 考 試 成 績 資 料 如 下 : A 請 設 計 一 網 頁 輸 入 以 上 資 料 B 計 算 總 和 與 平 均 C 輸 出 總 和 與 平 均 2_2_5 Image Image 是 隸 屬 document 的 物 件, 主 要 功 能 是 放 置 並 顯 示 圖 檔 而 下 圖 左 是 在 FrontPage 插 入 圖 片 的 結 果, 下 圖 右 是 其 程 式 碼, 已 經 在 <body> </body> 之 間 插 入 <img>, 其 中 border 是 其 圖 片 外 框 的 寬 度,src 是 圖 檔 名 稱 ( 圖 檔 名 稱 的../ 代 表 是 往 上 尋 找 父 輩 資 料 夾 ),width 是 圖 檔 寬 度,height 是 圖 檔 高 度 其 次, 若 要 撰 寫 程 式 控 制 圖 片 內 容, 則 應 加 上 name 屬 性, 請 看 以 下 範 例 說 明 範 例 2_2_5a 請 設 計 一 網 頁, 可 以 使 用 按 鈕 載 入 指 定 圖 片 執 行 結 果 1 下 圖 左 是 網 頁 執 行 的 初 始 畫 面 2 按 一 下 Mary" 的 結 果 如 下 圖 中 3 按 一 下 Tom 的 結 果 如 下 圖 右
13 程 式 列 印 <html> <script language =javascript > function aa() { document.gra.src="../mary.jpg"; function bb() { document.gra.src="../g1.jpg"; </script> <body> <img name="gra" border="0" src="../joky.bmp" width="114" height="175"> <form name="myform" method="post" action="--webbot-self--"> <p><input type="button" value="mary" name="b1" onclick="aa()" > <input type="button" value="tom" name="b2" onclick="bb()"></p> </form> </body> </html> 範 例 2_2_5b 請 設 計 一 網 頁, 含 有 一 圖 片 檔, 並 於 使 用 者 載 入 網 頁 時 可 自 動 往 右 下 方 移 動 的 效 果 執 行 結 果 如 下 圖
14 操 作 步 驟 1 於 網 頁 插 入 一 張 圖 片, 並 加 入 name 屬 性 ( 不 要 先 插 入 表 單, 再 插 入 圖 片 ) 2 將 圖 片 的 位 置 屬 性 修 改 為 絕 對 位 置, 如 以 下 敘 述 的 style 屬 性, 如 此 才 能 移 動 位 置 <img name="gra" style="position:absolute"> 3 網 頁 載 入 時, 每 隔 1000ms 自 動 執 行 移 動 位 置 的 aa 方 法, 程 式 如 下,setInterval 請 看 2_7_4 節 <body onload =setinterval("aa()",1000)> 4 aa 方 法 如 下 : var x=20,y=20; function aa() { x=(x+10)% 800; y=(y+10)% 600; gra.style.left=x; gra.style.top=y; 程 式 列 印 <html> <script language =javascript > var x=20,y=20; function aa() { x=(x+10)% 800; y=(y+10)% 600; gra.style.left=x; gra.style.top=y; </script> <body onload =setinterval("aa()",1000)> <img name="gra" style="position:absolute" border="0" src="../joky.bmp" width="114" height="175"> </body> </html> 程 式 說 明 1 style 圖 片 的 位 置 屬 性 2 style="position:absolute" 位 置 採 用 絕 對 位 置, 此 時 才 能 移 動 圖 片
15 3 left top 圖 片 位 置 的 x,y 座 標 自 我 練 習 1 請 寫 一 程 式, 可 以 安 排 一 個 圖 片 與 六 個 按 鈕, 此 六 個 按 鈕 可 使 圖 片 放 大 縮 小 向 左 向 右 向 下 及 向 上 移 動 ( 提 示 : 放 大 與 縮 小 請 參 考 height 與 width 屬 性 ) 2_3 基 本 語 法 本 章 將 介 紹 一 些 程 式 語 言 的 基 本 語 法, 例 如 保 留 字 識 別 字 的 命 名 資 料 型 態 運 算 子 及 運 算 式 等 2_3_1 保 留 字 與 識 別 字 本 單 元 先 介 紹 保 留 字 與 識 別 字 I 保 留 字 (Keywords) 保 留 字 是 任 一 程 式 語 言 已 事 先 賦 予 某 一 識 別 字 一 個 特 別 意 義, 所 以 程 式 設 計 者 不 得 再 重 複 賦 予 不 同 的 用 途 例 如,if 已 被 賦 予 決 策 敘 述, 程 式 設 計 者 當 然 不 得 再 定 義 if 為 另 外 的 用 途 就 如 同 現 實 的 社 會, 亦 沒 有 人 稱 為 洪 電 視 或 林 冰 箱 以 下 是 JavaScript 的 常 見 保 留 字 abstract alert Array boolean break byte case char close const continue do double else eval false final float for function if length long Math new Number print setinterval settimeout String var while I 識 別 字 (Identifier) 真 實 的 世 界 裏, 每 個 人 事 及 物 都 有 一 個 名 稱, 程 式 設 計 亦 不 例 外 例 如, 於 程 式 設 計 時 我 們 必 須 為 每 一 個 變 數 常 數 及 函 式 等 命 名, 以 上 所 有 變 數 常 數 函 式 等 名 稱, 統 稱 為 程 式 語 言 的 識 別 字 JavaScript 的 識 別 字 命 名 規 則 如 下 : 1. 識 別 字 必 須 是 以 字 母 ( 大 小 寫 的 A 至 Z) 或 底 線 ( _ ) 開 頭 例 如, 以 下 是 一 些 合 法 的 識 別 字 a I sum Sum _sum 以 下 是 一 些 非 法 的 識 別 字 7eleven 不 能 由 數 字 開 頭 +a 不 能 由 運 算 子 開 頭 %sum 不 能 由 特 殊 符 號 開 頭
16 2. 識 別 字 由 字 母 開 頭 後, 僅 可 由 字 母 數 字 及 底 線 (_) 組 合 而 成, 但 不 得 包 含 空 白 例 如, 以 下 是 一 些 合 法 的 識 別 字 a123 A_123 以 下 是 一 些 非 法 的 識 別 字 A C 不 能 含 空 白 c+3 不 能 含 加 號 Age#3 不 能 含 井 字 號 3. 識 別 字 的 長 度 上 限 為 255, 但 是 太 長 也 徒 增 人 工 識 別 與 鍵 入 的 困 擾 4. 識 別 字 不 得 使 用 保 留 字, 如 if for 等 5. 識 別 字 要 盡 量 用 有 意 義 的 單 字 例 如,StudentNumber 或 AverageIncome 除 非 有 效 範 圍 很 小 ( 或 生 命 週 期 極 短 ) 的 變 數 才 用 x i 或 a 等 當 識 別 字, 也 千 萬 不 要 用 像 k23erp 這 種 沒 意 義 又 難 記 的 識 別 字 6. 識 別 字 有 多 個 單 字 時, 中 間 可 以 加 上 底 線 (_) 例 如, 上 例 的 StudentNumber 可 寫 成 Student_Number, 若 擔 心 打 字 不 靈 光 亦 可 寫 成 Stu_Num stu_num StuNum 或 stunum, 其 中 StuNum 又 稱 為 駝 峰 表 示 法, 因 為 大 寫 字 母 看 起 來 像 駝 峰 一 樣, 可 以 避 免 鍵 入 底 線 的 困 擾 並 且 提 昇 閱 讀 效 率 自 我 練 習 1 以 下 識 別 字 何 者 正 確 ( 是 非 題 ) 題 號 答 案 題 目 1 a+ 2 3a 3 b&b 4 for 5 a% 2_3_2 資 料 的 表 示 及 資 料 型 態 I 資 料 的 表 示 電 腦 的 主 要 工 作 就 是 處 理 資 料,JavaScript 所 能 處 理 的 資 料 為 整 數 浮 點 數 布 林 值 及 字 串 等, 分 別 說 明 如 下 : II 整 數 JavaScript 可 以 處 理 的 整 數 有 三 種 進 位 方 式, 分 別 是 十 進 位 八 進 位 (Octal) 及 十 六 進 位 (Hexadecimal) 等 十 進 位 的 表 示 方 式 同 我 們 平 常 的 書 寫 方 式, 如 25; 八 進 位 的 表 示 方 式 為 在 數 字 的 前 面 加 上 零 (0), 例 如,011 則 為 十 進 位 的 9; 十 六 進 位 的 表 示 方 式 為 在 數 字 的 前 面 加 上 零 x(0x), 例 如,0x11 則 為 十 進 位 的 17
17 II 浮 點 數 數 字 中 含 有 小 數 點 或 指 數 的 稱 為 浮 點 數 以 指 數 為 例,E 或 e 表 示 10 的 次 方, 例 如 E-3 及 2.3e-3 均 是 表 示 相 同 的 浮 點 數 ; 又 例 如 2.3E+2 則 代 表 230 II 布 林 值 JavaScript 使 用 true 與 false 表 示 布 林 值 II 字 串 不 需 加 減 乘 除 等 運 算 的 資 料, 通 常 用 字 串 表 示 且 需 使 用 雙 引 號 (") 或 單 引 號 ( ) 將 字 串 的 兩 旁 括 起 來 例 如, 以 下 是 一 些 合 法 的 字 串 "This is a book" 張 中 立 ( 代 表 ) I m a teacher ( 代 表 I m a teacher ) II null null 代 表 空 值, 此 與 0 不 同 II undefined undefined 代 表 未 定 義 的 值 I 資 料 型 態 大 部 分 的 程 式 語 言 都 要 宣 告 資 料 型 態, 以 便 安 排 記 憶 體, 但 是 JavaScript 並 不 允 許 使 用 者 如 此 費 心, 也 就 是 只 要 宣 告 所 要 的 變 數 即 可, 不 用 也 不 允 許 宣 告 其 型 態 例 如,a 宣 告 變 數 如 下, var a; 往 後 即 可 指 定 任 何 型 態 的 資 料, 且 JavaScript 均 可 自 動 配 置 適 當 的 記 憶 體 a=3; a= This is a book ; a=2.3e2; 2_3_3 變 數 與 常 數 的 宣 告 I 變 數 的 宣 告 變 數 的 功 能 是 用 來 輸 入 處 理 及 儲 存 外 界 的 資 料, 而 變 數 在 使 用 以 前 均 要 於 保 留 字 var 之 後 宣 告, 才 可 使 用 在 一 些 舊 式 的 Basic 語 言 中, 變 數 並 不 需 要 事 先 宣 告, 卻 也 帶 來 極 大 的 困 擾 以 下 式 子 即 為 變 數 未 宣 告 的 結 果, 編 譯 器 當 然 無 法 回 應 使 用 者 在 拼 字 上 的 錯 誤, 進 而 造
18 成 除 錯 上 的 困 難 student = studend+1 以 上 敘 述 若 事 先 宣 告 student 如 下 : var student ; 則 編 譯 器 遇 到 studend 時, 便 會 提 醒 使 用 者 此 studend 並 未 宣 告 的 錯 誤 訊 息, 提 醒 使 用 者 補 宣 告 或 注 意 拼 字 錯 誤 JavaScript 變 數 的 宣 告 語 法 如 下 : var 變 數 名 稱 ; 例 如, 以 下 敘 述 可 宣 告 變 數 a var a ; 此 與 大 部 分 的 程 式 語 言 不 同, 因 為 宣 告 變 數 的 同 時, 並 不 需 宣 告 其 資 料 型 態 因 為 JavaScript 會 自 動 選 擇 適 當 的 資 料 型 態 例 如, var a; a=2; document.write(typeof(a)); //typeof 函 數 可 傳 回 其 型 態 其 結 果 是 number 又 例 如, var b; b="mary"; document.writeln (typeof(b)); 其 結 果 是 string 其 次, 若 有 兩 個 以 上 的 變 數 有 相 同 的 型 態, 亦 可 同 時 給 予 宣 告, 但 是 變 數 之 間 需 以 逗 號 (,) 隔 開 例 如, 以 下 敘 述 可 同 時 宣 告 變 數 b c var b,c ; 2_3_4 運 算 子 可 以 對 運 算 元 (Operand) 執 行 特 定 功 能 的 特 殊 符 號 稱 為 運 算 子 一 般 而 言, 運 算 子 可 分 為 以 下 幾 類 : 指 派 (Assignment) 運 算 子 算 術 (Arithmetic) 運 算 子 關 係 (Relational) 運 算 子 邏 輯 (Logical) 運 算 子 字 串 (String) 運 算 子 及 複 合 指 派 運 算 子 其 次, 運 算 子 又 可 以 分 為 一 元 (Unary) 運 算 子 與 二 元 (Binary) 運 算 子 一 元 運 算 子 只 需 要 一 個 運 算 元 就 可 以 操 作, 而 二 元 運 算 子 則 需 要 兩 個 運 算 元 才 能 夠 操 作 在 以 下 單 元 中, 我 們 除 了 檢 視 各 種 不 同 的 運 算 子 功 能 外, 還 將 討 論 運 算 子 的 優 先 順 序 (Precedence) 優 先 順 序 是 用 來 決 定 同 一 式 子 擁 有 多 個 運 算 子 時, 每 一 個 運 算 子 進 行 運 算 的 順 序 I 指 派 運 算 子 (Assignment operator) 指 派 運 算 子 的 符 號 為 =, 其 作 用 為 將 運 算 符 號 右 邊 運 算 式 的 值 指 派 給 運 算 符 號 左 邊 的 運 算 元 所 以, 以 下 敘 述 sum = a + b, 是 將 a + b 的 值 指 派 給 sum sum = 0 ; a = 3 ; b = 5; sum = a + b;
19 上 式 與 數 學 的 等 號 是 不 同 的, 所 以 不 要 一 直 懷 疑 為 什 麼 0 會 等 於 8 其 次, 你 不 能 將 常 數 放 在 指 派 運 算 子 的 左 邊 例 如, 8 = x; 為 一 個 不 合 法 的 敘 述, 但 以 下 敘 述 將 常 數 8 指 派 給 變 數 x 為 合 法 的 x = 8; I 算 術 運 算 子 (Arithmetic operators) 算 術 運 算 子 用 來 執 行 一 般 的 數 學 運 算, 包 括 取 正 數 (+) 取 負 數 ( - ) 加 ( + ) 減 ( - ) 乘 ( * ) 除 ( / ) 取 餘 數 (%) 遞 增 (++) 遞 減 (--) 等, 如 下 表 所 示 : 運 算 子 符 號 功 能 範 例 結 果 + 取 正 數 +2 取 負 數 3 + 加 減 * 乘 6 * 2 12 / 除 7 / % 取 餘 數 7 % 加 1 a=2;a++;document.write(a); 3 -- 減 1 a=2;a--; document.write(a); 1 += 相 加 且 指 定 a=1;a+=5; document.write(a); 6 (a=a+5) -= 相 減 且 指 定 a=3;a-=2; document.write(a); 1 (a=a-2) *= 相 乘 且 指 定 a=2;a*=4; document.write(a); 8 (a=a*4) /= 相 除 且 指 定 a=9;a/=3; document.write(a); 3 (a=a/3) %= 取 餘 數 且 指 定 a=7;a%=3;document.write(a); 1 (a=a%3) 例 如, var a=2; a++; document.write(a); 結 果 是 3 因 為 a=a+1 這 種 遞 增 運 算 常 用, 所 以 有 如 此 簡 便 語 法 又 例 如 a=1; a+=5; document.write(a); 結 果 是 6 因 為 a=a+ 常 數 ; 這 種 運 算 也 常 用, 所 以 有 如 此 簡 便 用 法 I 關 係 運 算 子 (Relational operators) 關 係 運 算 子 又 稱 為 比 較 運 算 子, 用 於 資 料 之 間 的 大 小 比 較, 比 較 的 結 果 可 得 到 邏 輯 的 true 或 false, 下 表 是 JavaScript 中 的 關 係 運 算 子 符 號 運 算 子 符 號 功 能 範 例 結 果 == 等 於 2 == 3 false
20 != 不 等 於 2!= 3 true < 小 於 2 < 3 true > 大 於 2 > 3 false <= 小 於 或 等 於 2 <= 3 true >= 大 於 或 等 於 2 >= 3 false 例 如, var a=2;b=3; document.write(a==b); 結 果 是 false I 邏 輯 運 算 子 (Logical operators) 當 同 一 個 運 算 式 同 時 具 有 兩 個 以 上 的 關 係 運 算 子 時, 則 每 兩 個 關 係 運 算 子 之 間 必 須 使 用 邏 輯 運 算 子 連 結 JavaScript 的 邏 輯 運 算 子 如 下 表 所 示 : 運 算 子 符 號 功 能 範 例 結 果 && And (3 > 2) && (3 == 1) false Or (3 > 2) (3==1) true! Not!(3>2) false! false true I 字 串 運 算 子 (String operator) 前 面 關 係 運 算 子 的 = <> > < >= 及 <= 亦 均 適 用 於 字 串 的 大 小 比 較 例 如, var a,b; a="a";b="b"; document.writeln (a>b); 其 結 果 是 false( 字 串 的 大 小 以 ascii 值 的 大 小 為 依 據,a 的 ascii 值 為 65,b 的 ascii 值 為 66, 所 以 字 串 b 較 大 ) 而 下 表 的 字 串 連 結 運 算 子 (+), 則 可 連 結 兩 個 字 串 運 算 子 符 號 功 能 範 例 結 果 + 字 串 連 結 "abc" + "xyz" abcxyz I 雜 項 運 算 子 以 下 是 一 些 無 法 歸 類 的 運 算 子, 列 表 如 下 這 些 運 算 子 將 會 在 往 後 各 章 節 陸 續 介 紹 運 算 子 符 號 使 用 範 例 說 明. x.y 連 結 物 件 與 其 屬 性 成 員 [] a[2] 一 維 陣 列 [][] b[2][3] 二 維 陣 列 ( ) f(3) 函 式 f 的 叫 用 I 運 算 子 的 優 先 順 序 (Precedence) 於 較 複 雜 的 運 算 式 中, 通 常 同 時 存 在 許 多 運 算 子, 此 時 就 需 要 定 義 其 優 先 順 序, 下 表 即 是
21 JavaScript 關 於 運 算 子 的 優 先 順 序 表 分 類 運 算 子 優 先 等 級 括 號 陣 列 函 數 (),[],aa() 1( 最 高 ) 一 元 (Unary) +, - ( 取 正 負 值 ),++,-- 2 乘 法, 除 法 *, /,% 3 加 法, 減 法 +, - 4 字 串 連 結 + 5 關 係 =, <>, <, >, <=, >=, 6 邏 輯 NOT! 7 邏 輯 AND && 8 邏 輯 OR 9 指 派 與 複 合 指 派 =, +=, -=, *=, /= 10 ( 最 低 ) 例 如, a=2;b=3; c=++a+b; 則 等 效 於 以 下 敘 述 : c =((++a)+b) ; 因 為 一 元 運 算 子 的 優 先 順 序 較 高, 所 以 結 果 是 6 又 例 如, a=2;b=3; c=a+b*2; 則 等 效 於 以 下 敘 述 : c=(a+(b*2)); 又 例 如, var x=3;y=4; z= x > 2 && y > 3; 則 等 效 於 以 下 敘 述 z = ((x > 2)&& (y > 3)); 範 例 2_3_4a 請 將 以 下 數 學 敘 述 以 JavaScript 敘 述 表 示 1. ( a+ b+ c) x = 3 a + b 2. y= a b 3. y=a 2 4. y= a
22 5. y=b y= 程 式 列 印 JavaScript 並 沒 有 次 方 與 開 根 號 運 算 子, 所 以 次 方 必 須 使 用 Math.pow () 方 法, 開 根 號 必 須 使 用 Math.sqrt() 方 法, 如 以 下 敘 述 <body> <script language =javascript > var a,b,c,x,y; a=3;b=2;c=1; x=(a+b+c)/3; document.writeln (x); y=(a+b)/(a-b); document.writeln (y); //y=a*a; y=math.pow (a,2); document.writeln (y); y=math.sqrt (2); document.writeln (y); y=math.pow (b,10); document.writeln (y); y=math.pow(1000,(1/3)); document.writeln (y); </script> </body> 自 我 練 習 2 b+ b 4ac 1 令 a=1,b=-1,c=-6, y =, 請 於 JavaScript 中 求 出 y 的 結 果 2a 2_3_5 敘 述 與 運 算 式 敘 述 (Statement) 凡 是 控 制 執 行 的 順 序 對 運 算 式 取 值 或 不 作 任 何 事, 均 可 稱 為 敘 述 或 陳 述 式 其 次, 每 一 敘 述 均 應 以 分 號 (;) 結 束, 以 下 式 子 即 是 一 個 敘 述 sum = sum + 1;
23 敘 述 區 塊 (Block Statement) 或 複 合 敘 述 (Compund Statement) 在 任 何 可 以 放 單 一 敘 述 的 地 方, 也 就 能 放 敘 述 區 塊, 敘 述 區 塊 亦 稱 為 複 合 敘 述 一 個 複 合 敘 述 是 由 一 對 大 括 號 組 合 而 成, 如 下 所 示 { t = a; a = b; b = t; 運 算 式 (Expression) 任 何 可 求 得 值 的 式 子, 均 稱 為 運 算 式 例 如,5+3 會 傳 回 一 個 數 值, 所 以 5+3 是 一 個 運 算 式 一 般 而 言, 可 以 放 在 等 號 右 邊 的 東 西, 都 可 以 稱 為 運 算 式 例 如, 以 下 等 號 右 邊 及 括 號 內 的 東 西 均 稱 為 運 算 式 a = 3 ; b = 5; c=a+b; if (a>0) 'true while (a==b) 'false 註 解 (Comments) 適 當 的 程 式 註 解 能 增 加 程 式 的 可 讀 性 其 次, 註 解 是 給 人 看 的, 解 譯 器 均 不 予 理 會 註 解 的 內 容 JavaScript 的 註 解 有 兩 種 表 示 方 式, 分 別 是 單 列 註 解 及 多 列 註 解 II 單 列 註 解 凡 是 雙 斜 線 (//) 以 後 的 敘 述,JavaScript 均 視 為 註 解 例 如, 以 下 敘 述 的 將 y 值 累 加 至 sum" 為 註 解, 不 會 被 執 行 sum=sum+y; // 將 y 值 累 加 至 sum II 多 列 註 解 凡 是 /* 以 後 的 敘 述,JavaScript 均 視 為 註 解, 直 到 */ 為 止 例 如, 以 下 敘 述 全 為 註 解, 均 不 會 被 執 行 /* 這 是 多 列 註 解 sum=sum+y; 將 y 值 累 加 至 sum */ 範 例 2_3_5a 1 請 設 計 一 網 頁, 滿 足 以 下 條 件 : A 可 以 輸 入 座 標 平 面 上 兩 個 點 的 座 標 B 計 算 此 兩 點 的 距 離
24 C 輸 出 此 兩 點 距 離 ( 提 示 :JavaScript 並 沒 有 開 跟 號 運 算 子, 必 須 使 用 Math.sqrt() 方 法 例 如,Math.sqrt(4)=2 ) 執 行 結 果 程 式 列 印 <html> <script language ="javascript"> function aa(){ //input x1=eval(myform.t1.value); y1=eval(myform.t2.value); x2=eval(myform.t3.value); y2=eval(myform.t4.value); //process d=math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); //output myform.t5.value=d; </script> <body> <form name="myform" method="post" action="--webbot-self--"> <p> 請 輸 入 A 點 座 標 (<input type="text" name="t1" size="8" value="3">,<input type="text" name="t2" size="10" value="0">)</p> <p> 請 輸 入 B 點 座 標 (<input type="text" name="t3" size="8" value="0">,<input type="text" name="t4" size="10" value="4">)</p> <p><input type="button" value=" 計 算 " name="b1" onclick="aa()"></p> <p> 兩 點 距 離 是 <input type="text" name="t5" size="20"></p> </form> </body> </html>
25 自 我 練 習 1 輸 入 三 角 形 三 邊 長 a b c, 求 其 面 積 ( 面 積 = d( d a)( d b)( d c), 其 中 ( a + b + c) d=, 本 例 假 設 所 入 的 三 角 形 三 邊 長 恰 可 圍 成 三 角 形, 例 如, 輸 入 3,4,5 其 面 積 為 6) 2 習 題 1 寫 一 個 網 頁, 可 以 輸 入 一 個 一 元 二 次 方 程 式, 並 求 其 解 ( 本 例 假 設 所 輸 入 的 方 程 式 有 二 解 ) 提 示 A. 設 有 一 元 二 次 方 程 式 如 下 : ax 2 + bx + c = 0 B. 令 d= b 2 4ac b + d b d C. 則 其 二 解 為 x1 =, x2 = 2a 2a D 例 如,2x 2-11x-6=0 其 解 為 x 1 =-0.5,x 2 =6 2 寫 一 個 網 頁, 可 以 輸 入 一 個 二 元 一 次 方 程 式, 並 求 其 解 ( 本 例 假 設 所 輸 入 的 方 程 式 恰 有 一 解 ) 提 示 C 設 二 元 一 次 方 程 式 如 下 : a x + b y = 1 1 c1 2x + b2y c2 a = a1 b1 B. 令 d = ( 表 示 d = a1b2 a2b1) a b 2 2 c 1 b 1 c2 b2 a 2 c2 C. 則 其 解 分 別 是 x = = (c1b2 c2b1) / d y = = (a1c2 a 2c1) / d d d D 例 如,3x+y=5 x-2y=-3 則 其 解 為 x=1 y=2 a 1 c 1 3 請 設 計 一 網 頁, 可 以 計 算 兩 個 複 數 的 加 減 乘 除 開 根 號 等 運 算 4 請 設 計 一 網 頁, 可 以 計 算 兩 個 向 量 的 加 減 乘 除 等 運 算 2_4 決 策 敘 述 人 類 的 生 活 必 須 不 斷 面 對 決 策 問 題, 連 我 家 一 個 不 到 三 歲 的 小 孩, 也 常 要 思 考 他 手 裡 的 十 元 是 要 坐 電 動 車 還 是 買 棒 棒 糖 程 式 語 言 是 協 助 解 決 人 類 問 題 的 工 具, 當 然 也 有 決 策 敘 述, JavaScript 依 決 策 點 的 多 寡, 分 為 以 下 三 種 決 策 敘 述, 第 一 是 單 一 分 歧 決 策 的 if, 例 如 肚 子 餓
26 了 就 吃 飯 ; 第 二 是 雙 向 分 歧 決 策 if~else, 例 如 肚 子 餓 了 就 吃 飯, 否 則 繼 續 前 進 ; 第 三 是 多 向 分 歧 決 策 的 switch, 例 如 你 身 上 5000 元, 走 進 一 家 購 物 中 心 的 美 食 街 用 餐, 你 的 分 歧 點 就 很 多, 有 自 助 餐 中 式 套 餐 日 本 料 理 泰 國 餐 點 等 等 分 歧 點 本 節 的 重 點 即 是 探 討 JavaScript 的 決 策 敘 述 2_4_1 if if 通 常 用 於 單 一 分 歧 的 決 策, 它 的 使 用 時 機 為 假 如 ~ 則 ~", 也 就 是 條 件 成 立 時, 則 執 行 某 項 工 作, 但 若 條 件 不 成 立 時, 則 不 予 理 會 其 語 法 如 下 : if ( 條 件 運 算 式 ) { 敘 述 1; 敘 述 2; 以 上 語 法 說 明 如 下 : 1 若 運 算 式 的 值 為 true 則 執 行 敘 述 區 塊, 運 算 式 的 值 若 為 false, 則 不 會 被 執 行, 其 流 程 如 下 : 2 以 下 的 敘 述 可 以 判 斷 變 數 a 是 否 等 於 0, 若 條 件 成 立 則 設 定 b=5 if (a==0) { b=5; 3 若 條 件 成 立 時, 僅 需 執 行 單 一 個 敘 述, 則 可 省 略 兩 個 大 括 號 () 例 如, 以 上 敘 述 可 簡 化 如 下 : if (a==0) b=5; 4 若 省 略 大 括 號, 則 條 件 運 算 式 為 true 時, 當 然 只 執 行 一 個 敘 述, 這 是 初 學 者 較 容 易 忽 略 的 問 題 例 如, 以 下 敘 述 的 c=0, 不 管 運 算 式 結 果 為 何, 一 定 執 行
27 if (a==0) b=5; c=0; 範 例 2_4_1a 請 設 計 一 網 頁, 可 以 輸 入 一 個 成 績, 並 評 定 是 否 及 格 執 行 結 果 操 作 步 驟 1 根 據 題 意, 繪 製 流 程 圖 如 下 :
28 Start N=" 不 及 格 " Input M M>=60 true false N=" 及 格 " Output N End 2 根 據 流 程 圖, 共 需 一 個 輸 入, 一 個 輸 出 及 一 個 按 鈕, 所 以 表 單 配 置 如 下 圖 左 3 根 據 流 程 圖, 網 頁 撰 寫 如 下 : <script language =javascript > function aa() <form name="myform" method="post" action="--webbot-self--"> <p><input type="text" name="t1" size="20" value=65></p> </form> <p><input type="button" value=" 執 行 " name="b1" onclick="aa()"></p> <p><input type="text" name="t2" size="20"></p>
29 { var m,n; n=" 不 及 格 "; // 還 沒 考 當 然 不 及 格 // 輸 入 m=eval(myform.t1.value); // 處 理 if (m>=60) n=" 及 格 "; // 輸 出 myform.t2.value=n; </script> 程 式 說 明 1 本 例 即 是 單 一 分 歧 決 策 的 典 型 範 例, 當 條 件 成 立 時, 則 執 行 某 個 敘 述 2 n 要 預 設 初 值, 不 然 若 m<60 時, 將 會 出 現 沒 有 設 定 其 值, 且 硬 要 輸 出 結 果 的 錯 誤 自 我 練 習 1 請 設 計 一 網 頁, 可 以 判 斷 所 輸 入 的 數 是 偶 數 或 奇 數 ( 提 示 : 可 用 除 以 2 的 餘 數 作 決 策 ) 範 例 2_4_1b 請 寫 一 網 頁, 滿 足 以 下 條 件 : 1 輸 入 兩 個 數 2 求 輸 入 兩 數 極 大 值 3 輸 出 極 大 值 表 單 配 置 如 下 圖 左 執 行 結 果 如 下 圖 右 :
30 操 作 步 驟 1 本 例 根 據 題 意, 畫 出 流 程 圖 如 下 : Start Input a Input b max=a b>max true false max=b Output max End 2 根 據 以 上 流 程 圖, 寫 出 演 算 法 如 下 :
31 (1) 輸 入 第 一 數, 本 例 以 變 數 a 儲 存 (2) 輸 入 第 二 數, 本 例 以 變 數 b 儲 存 (3) 設 定 極 大 值 (max) 為 第 一 數 max=a; (4) 當 第 二 數 (b) 大 於 極 大 值 時, 極 大 值 即 以 b 取 代 if (b>max) max=b; (5) 輸 出 極 大 值 (max) 即 為 所 求 自 我 練 習 1 請 寫 一 網 頁, 滿 足 以 下 條 件 : A 輸 入 三 個 數 B 求 三 個 數 極 小 值 C 輸 出 極 小 值 [ 演 算 法 則 ] 1. 輸 入 第 一 個 數, 本 例 以 變 數 a 儲 存 2. 輸 入 第 二 個 數, 本 例 以 變 數 b 儲 存 3. 輸 入 第 三 個 數, 本 例 以 變 數 c 儲 存 4. 設 定 極 小 值 (min) 為 第 一 數 5. 當 第 二 數 (b) 小 於 極 小 值 時, 極 小 值 即 以 b 取 代 if (b<min) min = b; 6. 當 第 三 數 (c) 小 於 極 小 值 時, 極 小 值 即 以 c 取 代 if (c<min) min = c; 7. 輸 出 極 小 值 min 2 請 寫 一 網 頁, 滿 足 以 下 條 件 : A 輸 入 三 個 人 名 與 分 數 B 求 三 個 人 分 數 極 小 值 C 輸 出 極 小 值 的 人 名 與 分 數 範 例 2_4_1c 請 寫 一 網 頁, 滿 足 以 下 條 件 1 輸 入 三 個 數 2 將 此 三 個 數 由 小 而 大 輸 出 表 單 配 置 如 下 圖 左 : 執 行 結 果 如 下 圖 右 :
32 演 算 法 則 1. 分 別 以 a b 及 c 表 示 欲 排 序 的 資 料 2. 假 如 a 大 於 b, 則 a 與 b 交 換, 如 下 圖 的 (1) 3. 假 如 b 大 於 c, 則 b 與 c 交 換, 如 下 圖 的 (2) 4. 假 如 a 大 於 b, 則 a 與 b 交 換, 如 下 圖 的 (3), 此 時 排 序 完 成, 共 需 進 行 3 次 的 比 較 與 交 換, 如 下 圖 所 示 a b c (1) (2) (3) 5 此 即 為 著 名 的 泡 沫 排 序 法 則 程 式 列 印 <script language =javascript > function aa() { var a,b,c,t; // 輸 入 a=eval(myform.t1.value); b=eval(myform.t2.value); c=eval(myform.t3.value); // 處 理 if (a> b){ t=a;a=b;b=t;
33 if (b > c) { t=b;b=c;c=t; if (a> b){ t=a;a=b;b=t; // 輸 出 myform.t4.value=a; myform.t5.value=b; myform.t6.value=c; </script> [ 補 充 說 明 ] 1. 若 有 4 筆 資 料 需 要 排 序, 則 共 需 進 行 6 次 比 較 與 交 換, 如 下 圖 所 示 a b c d (1) (2) (3) (4) (5) (6) 2. 若 有 5 筆 資 料 需 排 序, 則 共 需 進 行 10 次 比 較 與 交 換, 如 下 圖 所 示 a b c d e (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 3. 以 上 為 3 4 或 5 筆 資 料 的 比 較 與 排 序, 其 比 較 與 交 換 的 次 數 尚 可 克 服, 但 若 欲 排 序 的 資 料 超 過 5 個, 例 如 20 筆 資 料 欲 排 序, 則 應 待 迴 圈 與 陣 列 敘 述 介 紹 以 後, 才 能 縮 短 程 式 的 長 度
34 自 我 練 習 1 請 輸 入 4 個 數, 並 將 4 個 數 由 大 而 小 排 序 輸 出 2 請 輸 入 5 個 數, 並 將 5 個 數 由 小 而 大 排 序 輸 出 3 請 輸 入 5 個 人 名 與 分 數, 並 將 5 個 人 名 與 分 數 由 小 而 大 排 序 輸 出 範 例 2_4_1d 請 設 計 一 個 時 鐘 網 頁, 可 以 顯 示 秒 分 及 時 表 單 配 置 如 下 圖 左 : 執 行 結 果 如 下 圖 右 : 操 作 步 驟 1 settimeout settimeout 的 語 法 如 下 : settimeout( 方 法 名 稱, 停 頓 時 間 ) 其 功 能 是, 停 頓 若 干 時 間 ( 單 位 是 ms) 後, 執 行 指 定 的 方 法 本 例 可 藉 此 方 法, 每 隔 1 秒 鐘 均 執 行 秒 數 累 加 1 的 方 法 ( 或 稱 函 式 ) 2 onload 網 頁 載 入 時, 稱 為 onload 事 件, 所 以 網 頁 載 入 時, 即 要 執 行 的 事, 可 利 用 此 事 件 觸 發 3 表 單 配 置 的 Html 碼 如 下 : <form name="myform" method="post" action="--webbot-self--"> </form> <p><input type="text" name="t1" size="10" value=0>: <input type="text" name="t2" size="10" value=0>: <input type="text" name="t3" size="10" value=0></p> 4 秒 數 累 加 方 法 如 下, 當 秒 數 分 數 達 60 時, 均 要 歸 零 並 進 1
35 <script language =javascript > var h=23,m=58,s=57; function aa(){ s++; if (s>=60){ m++; s=0; if (m>=60){ h++; m=0; if (h>=24) h=0; myform.t1.value =h; myform.t2.value=m; myform.t3.value=s; settimeout("aa()",1000); 5 表 單 載 入 時, 自 動 執 行 方 法 aa(), 其 程 式 如 下 : <body onload="aa()"> 程 式 列 印 <html> <head> <title> 新 增 網 頁 1</title>
36 <script language =javascript > var h=23,m=58,s=57; function aa(){ s++; if (s>=60){ m++; s=0; if (m>=60){ h++; m=0; if (h>=24) h=0; myform.t1.value =h; myform.t2.value=m; myform.t3.value=s; settimeout("aa()",1000); </script> </head> <body onload="aa()"> <form name="myform" method="post" action="--webbot-self--"> <p><input type="text" name="t1" size="8" value=0>: <input type="text" name="t2" size="11" value=0>:
37 </form> </body> </html> <input type="text" name="t3" size="10" value=0></p> 程 式 說 明 本 例 使 用 settimeout( aa()",1000)( 單 位 為 ms), 則 停 頓 1 秒 並 自 動 執 行 aa() 的 方 法 自 我 練 習 1 同 上 範 例, 但 可 設 定 分 與 時 2 同 上 範 例, 但 可 設 定 鬧 鐘 的 功 能, 也 就 是 可 設 定 幾 時 幾 分, 讓 喇 叭 發 出 嗶 聲 (Beep) ( 提 示 : 時 間 到 時 執 行 alert 方 法 ) 2_4_2 if ~ else 上 一 節 的 if 僅 適 合 單 一 分 歧 的 決 策, 當 條 件 成 立 時, 執 行 某 一 敘 述 ; 當 條 件 未 成 立 時, 則 未 有 任 何 處 置 但 在 日 常 生 活 領 域 中, 常 出 現 假 如 ~ 則 ~, 否 則 ~", 此 種 決 策 模 式 有 兩 種 解 決 問 題 的 方 案, 故 稱 為 雙 向 分 歧 決 策, 此 時 可 使 用 if ~else 敘 述, 其 敘 述 的 語 法 如 下 : if ( 條 件 運 算 式 ) { 敘 述 區 塊 1; else { 敘 述 區 塊 2; 以 上 語 法 說 明 如 下 : 1. 運 算 式 的 值 若 為 true, 則 執 行 敘 述 區 塊 1; 運 算 式 的 值 若 為 false, 則 執 行 敘 述 區 塊 2, 其 流 程 圖 如 下 : true 敘 述 區 塊 1 條 件 式 false 敘 述 區 塊 2 2. 敘 述 區 塊 內 可 以 放 置 任 何 合 法 敘 述, 當 然 也 可 以 再 放 置 if;if 中 有 if, 稱 為 巢 狀 if, 請 看 範
38 例 2_4_2b 範 例 2_4_2a 同 範 例 2_4_1a, 但 改 用 if else 表 單 配 置 如 下 圖 左 : 執 行 結 果 如 下 圖 右 : 程 式 列 印 <script language="javascript"> function aa(){ var a,b; a=eval(myform.t1.value); if (a>=60) b=" 及 格 "; else b=" 不 及 格 "; myform.t2.value =b; </script> 程 式 說 明 本 例 是 典 型 的 雙 向 分 歧 的 決 策, 此 時 可 用 if~ else 實 現 程 式 的 要 求
39 範 例 2_4_2b 請 寫 一 個 網 頁, 可 以 判 斷 所 輸 入 座 標 的 所 在 象 限 操 作 步 驟 1 依 照 題 意 繪 製 流 程 圖 如 下 :
40 2 根 據 題 意, 共 需 2 個 輸 入, 一 個 輸 出 及 一 個 按 鈕 程 式 列 印 <script language="javascript"> function aa(){ var x,y,b; x=eval(myform.t1.value); y=eval(myform.t2.value);
41 if (x>0 ) if (y>0) b="i"; else b="iv"; else if (y>0) b="ii"; else b="iii"; myform.t3.value=b; </script> 補 充 說 明 此 題 有 些 同 學 會 將 程 式 寫 成 如 下, 這 樣 寫 也 對, 但 其 平 均 執 行 次 數 較 多 因 為 不 管 是 第 幾 象 限, 都 要 執 行 4 次 的 判 斷, 而 且 電 腦 執 行 判 斷 比 執 行 計 算 的 時 間 還 要 多 function aa(){ var x,y,b; x=eval(myform.t1.value); y=eval(myform.t2.value); if (x>0 && y>0) b="i"; if (x>0 && y<0) b="iv"; if (x<0 && y>0) b="ii";
42 if (x<0 && y<0) b="iii"; myform.t3.value=b; 自 我 練 習 1 同 上 範 例, 但 可 判 斷 是 否 在 原 點 或 座 標 軸 上 2 請 設 計 一 網 頁, 滿 足 以 下 條 件 (1) 輸 入 密 碼 (2) 檢 查 密 碼 是 否 等 於 "123", 若 是 才 可 進 行 以 上 的 象 限 判 斷 (3) 密 碼 錯 誤, 則 告 知 密 碼 錯 誤, 若 錯 誤 三 次, 則 網 頁 結 束 範 例 2_4_2c 請 設 計 一 網 頁, 完 成 以 下 要 求 : 1. 輸 入 一 個 0 ~100 的 分 數 2. 當 分 數 大 於 90 時, 輸 出 A 3. 當 分 數 介 於 80~89 時, 輸 出 B 4. 當 分 數 介 於 70~79 時, 輸 出 C 5. 當 分 數 介 於 0~69 時, 輸 出 D 表 單 配 置 如 下 圖 左 : 執 行 結 果 如 下 圖 右 : 操 作 步 驟
43 1 根 據 題 意 繪 製 流 程 圖 如 下 : Start Input A A>=90 false A>=80 false true true A>=70 false true B="A" B="B" B="C" B="D" Output B End 2 根 據 題 意, 共 需 一 個 輸 入, 一 個 輸 出, 一 個 按 鈕, 所 以 表 單 配 置 如 上 3 以 上 每 一 個 決 策 點, 都 有 兩 個 分 歧 點, 適 用 if~else, 每 一 個 else 後 面 均 需 再 放 置 if 作 進 一 步 決 策 所 以 網 頁 script 撰 寫 如 下 : 程 式 列 印 <script language="javascript"> function aa(){ var a,b;
44 a=eval(myform.t1.value); if (a>=90) b="a"; else if (a>=80) b="b"; else if (a>=70) b="c"; else b="d"; myform.t2.value=b; </script> 補 充 說 明 此 題 亦 有 同 學 將 程 式 撰 寫 如 下, 結 果 當 然 是 對, 但 是 其 平 均 執 行 次 數 較 多, 因 為 不 管 a 的 值 為 何, 都 要 執 行 4 次 決 策, 況 且, 電 腦 執 行 決 策 所 需 的 時 間 遠 遠 高 於 計 算 的 時 間, 所 以 其 執 行 效 率 較 差 function aa(){ var a,b; a=eval(myform.t1.value); if (a <=100 && a>=90) b="a"; if (a <90 && a>=80) b="b"; if (a<80 && a>=70) b="c"; if (a<70) b="d"; myform.t2.value=b; 範 例 2_4_2d 所 得 稅 計 算 假 設 所 得 稅 稅 率 如 下 : 1 淨 所 得 300 元 以 下, 則 稅 率 為 0.06 例 如, 淨 所 得 是 200 元, 則 所 得 稅 是 200*0.06=12 元 2 淨 所 得 300~500 元, 則 超 過 300 元 的 部 分 稅 率 為 0.13, 未 超 過 300 元 的 部 分 還 是 0.06 例 如, 淨 所 得 是 400 元, 則 所 得 稅 是 300* *0.13=21 元 3 淨 所 得 500 元 以 上, 則 超 過 500 元 的 部 分 稅 率 為 0.2 例 如, 淨 所 得 是 600 元, 則 所 得 稅 是
45 300* * *0.2=64 元 (300 以 下 是 0.06,300~500 的 部 分 還 是 0.13 ) 表 單 配 置 與 執 行 結 果 操 作 步 驟 1 根 據 題 意, 繪 製 流 程 圖 如 下 : Start Input A A<=300 false true A<=500 false true B=A*0.06 B=300*0.06+(A-300)*0.13 B=300* *0.13+(A-500)*0.2 輸 出 B End 2 根 據 流 程 圖, 共 需 一 個 輸 入, 一 個 輸 出 及 一 個 按 鈕, 所 以 表 單 配 置 如 上
46 程 式 列 印 <script language="javascript"> function aa(){ var a,b; a=eval(myform.t1.value); if (a<=300) b=a*0.06; else if (a<=500) b=300*0.06+(a-300)*0.13; else b=300* *0.13+(a-500)*0.2; myform.t2.value=b; </script> 自 我 練 習 1 假 設 自 來 水 費 率 如 下 : A 100 以 下, 每 度 3 元 例 如, 用 水 50 度, 則 水 費 =50*3=150 元 B 100~300 度, 超 過 100 度 的 部 分, 每 度 5 元 例 如, 用 水 200 度, 則 水 費 =100*3+100*5=800 C 300 度 以 上, 超 過 300 度 的 部 分, 每 度 6 元 例 如, 用 水 400 度 則 水 費 = 100*3+200*5+100*6=1900 元 請 設 計 一 網 頁, 可 以 計 算 自 來 水 費 2_4_3 switch 敘 述 一 個 決 策 點 若 同 時 擁 有 三 個 或 三 個 以 上 的 解 決 方 案, 此 稱 為 多 向 分 岐 決 策 多 向 分 岐 決 策 雖 也 可 使 用 逐 一 過 濾 條 件 的 elseif 解 決, 但 卻 增 加 程 式 的 複 雜 度 及 降 低 程 式 可 讀 性 若 決 策 點 能 找 到 適 當 的 運 算 式, 能 使 問 題 同 時 找 到 分 岐 點, 則 可 使 用 switch 敘 述, 其 語 法 如 下 : switch( 運 算 式 ) { case 常 數 1: 敘 述 區 塊 1; break; case 常 數 2: 敘 述 區 塊 2; break; case 常 數 3: 敘 述 區 塊 3; break; [default:] 敘 述 區 塊 n;
47 以 上 語 法 說 明 如 下 : 1. switch 的 運 算 式 值 僅 能 為 整 數 或 字 元 2. case 的 常 數 僅 能 整 數 或 字 元, 且 其 型 別 應 與 上 面 的 switch 運 算 式 相 同 3. 電 腦 將 會 依 switch 的 運 算 式 值, 逐 一 至 常 數 1 常 數 2 尋 找 合 乎 條 件 的 case, 並 執 行 相 對 應 的 敘 述 區 塊, 直 到 遇 到 break 敘 述, 才 能 離 開 switch 4. default 可 放 置 特 殊 情 況, 其 兩 旁 加 中 括 號 表 示 此 敘 述 可 省 略 ; 若 省 略 default, 且 若 沒 有 任 何 case 滿 足 switch 運 算 式, 則 程 式 會 默 默 離 開 switch 敘 述 5. 敘 述 區 塊 可 放 置 任 何 合 法 的 敘 述, 當 然 也 可 放 置 switch 或 if 6. 以 下 敘 述, 可 將 轉 為 對 應 的 季 節 a=2; string b; // 季 節 switch(a) { case 1: b= 春 ; break; case 2: b= 夏 ; break; case 3: b= 秋 ; break; case 4: b= 冬 ; break; default: b= error ; 自 我 練 習 1 請 寫 一 網 頁, 將 所 輸 入 的 , 轉 為 星 期 日 一 二 三 四 五 六 範 例 2_4_3a 請 設 計 一 網 頁, 可 以 於 網 頁 顯 示 紅 綠 燈 執 行 結 果
48 操 作 步 驟 1 規 劃 時 序 如 下 : A 時 序 , 顯 示 綠 燈 B 時 序 5 7 9, 顯 示 綠 滅 C 時 序 , 顯 示 綠 燈 D 時 序 11 12, 顯 示 黃 燈 E 時 序 , 顯 示 紅 燈 2 準 備 red.jpg yellow.jpg 及 yellow.jpg 等 圖 檔, 顯 示 紅 黃 綠 等 燈 號 3 表 單 配 置 如 下 圖 : 4 為 了 保 證 時 序 在 0 至 17 之 間, 所 以 將 計 數 值 除 以 18, 取 其 餘 數, 如 以 下 敘 述 s++; s=s%18; 5 其 次, 為 了 使 計 數 值 能 傳 遞 至 下 一 次 方 法 的 呼 叫, 一 定 要 將 s 的 宣 告 放 在 所 屬 方 法 外 面 例 如, 本 例 放 在 aa() 方 法 外 面, 如 以 下 敘 述 var s; s=0;
49 function aa(){ s++; s=s%18; myform.t1.value =s; 程 式 列 印 <html> <script language =javascript > var s,l; s=0; function aa(){ s++; s=s%18; switch(s) { case 0: case 1: case 2: case 3: case 5: case 7: l="green";
50 gra.src="green.jpg" break; case 4: case 6: l="green off"; gra.src="white.jpg" break; case 8: case 9: l="yello" gra.src="yellow.jpg" break; case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: l="red"; gra.src="red.jpg" break; default: l="error";
51 myform.t1.value =s; myform.t2.value=l; settimeout("aa()",500); </script> </head> <body onload="aa()"> <form name="myform" method="post" action="--webbot-self--"> <p> 計 數 器 <input type="text" name="t1" size="20"> 燈 號 <input type="text" name="t2" size="20"></p> </form> <p><img name="gra" border="0" src="green.jpg" width="50" height="46"></p> </body> </html> 自 我 練 習 1 同 上 範 例, 但 去 掉 綠 閃 功 能, 且 增 加 綠 燈 倒 數 秒 數 ( 字 型 顏 色 是 綠 色 ) 與 紅 燈 倒 數 秒 數 ( 字 型 顏 色 是 紅 色 ) 範 例 2_4_3b 請 寫 一 猜 拳 遊 戲 網 頁, 使 用 者 輸 入 0 代 表 剪 刀 1 代 表 石 頭 2 代 表 布, 電 腦 亦 產 生 0~2 的 亂 數, 並 評 定 猜 拳 結 果 ( 提 示 :0 到 2 的 亂 數 是 Math.floor(3*Math.random())) 執 行 結 果
52 程 式 列 印 本 例 使 用 巢 狀 case 完 成 如 下 : <html> <head> <script language =javascript > var s,l; s=0; function aa(){ var a,b; var a1=""; var b1=""; var r; a=eval(myform.t1.value) ;// 輸 入 值 轉 為 數 值 b=math.floor(3*math.random());// 產 生 0 到 2 的 亂 數 switch (a){ case 0: a1=" 剪 刀 "; switch (b) { case 0: b1=" 剪 刀 ";
53 r=" 平 手 "; break; case 1: b1=" 石 頭 "; r=" 電 腦 贏 "; break; case 2 : b1=" 布 "; r="people win"; break; break; case 1: a1=" 石 頭 "; switch (b) { case 0: b1=" 剪 刀 "; r="people win"; break; case 1: b1=" 石 頭 "; r=" 平 手 "; break; case 2 : b1=" 布 ";
54 r=" 電 腦 贏 "; break; break; case 2: a1=" 布 "; switch (b) { case 0: b1=" 剪 刀 "; r=" 電 腦 贏 "; break; case 1: b1=" 石 頭 "; r="people win"; break; case 2 : b1=" 布 "; r=" 平 手 "; break; break; myform.t4.value=a1; //people myform.t2.value =b1; //computer
55 myform.t3.value =r; // 結 果 </script> </head> <body> <form name ="myform" method="post" action="--webbot-self--"> </form> </body> </html> <p> 請 輸 入 剪 刀 (0) 石 頭 (1) 布 (2)</p> <p><input type="text" name="t1" size="6" value="0"> <input type="text" name="t4" size="5"> <input type="button" value=" 確 定 " name="b1" onclick="aa()"> 電 腦 <input type="text" name="t2" size="15"></p> <p> 結 果 <input type="text" name="t3" size="20"></p><p></p> 自 我 練 習 1 同 上 範 例, 但 使 用 三 個 按 鍵, 分 別 代 表 剪 刀 石 頭 布 2 同 上 範 例, 但 增 加 顯 示 雙 方 贏 拳 的 次 數 3 同 上 自 我 練 習, 但 增 加 判 斷 誰 先 贏 3 次, 並 輸 出 結 果 2_4_4 綜 合 範 例 I 一 元 二 次 方 程 式 解 一 元 二 次 方 程 式 的 演 算 法 如 下 : 1. 設 有 一 元 二 次 方 程 式 如 下 : ax 2 + bx + c = 0 2. 若 a=0 則 應 輸 出 輸 入 錯 誤 " 3. 令 d=b 2-4ac b b + d 4. 若 d=0, 則 方 程 式 有 唯 一 解 x =, 否 則 若 d>0, 則 方 程 式 有 二 解 x 1 =, 2a 2a
56 x 2 b d =, 否 則 無 實 數 解 以 上 演 算 分 析, 以 流 程 圖 說 明 如 下 : 2a 範 例 2_4_4a 請 設 計 一 個 網 頁, 可 以 解 一 元 二 次 方 程 式 ax 2 + bx + c = 0 表 單 配 置 如 下 圖 左 : 1. 使 用 T1 T2 T3 分 別 輸 入 方 程 式 的 三 個 係 數 a b 及 c 2. 使 用 T4 輸 出 結 果 執 行 結 果 如 下 圖 右 :
57 程 式 列 印 <html> <head> <script language =javascript > function aa() { var a,b,c,d; a = eval(myform.t1.value); b = eval(myform.t2.value); c = eval(myform.t3.value); //process d = (Math.pow(b,2)) - (4 * a * c) ; if (a==0) { f=" 輸 入 錯 誤 " else { if (d == 0) { f = " 唯 一 解, 其 解 是 x= " + eval(-b / 2 * a); else{ if (d > 0) { f = " 二 解, 其 解 是 x1= " + ((-b + Math.pow(d,0.5) ) / (2 * a)) + ",x2= " + ((-b - Math.pow(d,0.5)) / (2 * a)); else{ f = " 無 實 數 解 "; //output myform.t4.value = f ; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--">
58 <input type="text" name="t1" value=2 size="10">x<sup>2</sup>+ <input type="text" name="t2" value=5 size="9" >x+ <input type="text" name="t3" value=-3 size="12">=0<p> <input type="button" value=" 執 行 " name="b1" onclick="aa()"></p></p><p> <input type="text" name="t4" size="33" ></p> </form> </body> </html> 二 元 一 次 方 程 式 解 二 元 一 次 方 程 式 的 演 算 法 如 下 : 1. 設 二 元 一 次 方 程 式 如 下 : a 1x + b1y = c1 a x + b y = 2 2 c2 a1 b1 2. 令 d = ( 此 符 號 稱 為 行 列 式, 表 示 d = a1b2 a2b1) a b a 3. 假 如 a a 4. 假 如 a 範 例 2_4_4b c 1 2 b 2 c = =, 則 方 程 式 無 限 多 解, 且 程 式 結 束 2 b2 c =, 則 方 程 式 無 解, 且 程 式 結 束 2 b 1 b b 2 c c c2 b2 5. x = = (c1b2 c2b1) / d d a 1 c 1 a 2 c2 6. y = = (a1c2 a 2c1) / d d 請 設 計 一 個 網 頁, 可 以 解 二 元 一 次 方 程 式 表 單 配 置 如 下 圖 左 : 執 行 結 果 如 下 圖 右 : 2
59 程 式 列 印 <head> </head> <body> <form name="myform"> <input type = 'text' name='a1' value=3 size="12">x+ <input type = 'text' name='b1' value=2 size="9">y= <input type = 'text' name='c1' value=5 size="7"><br> <input type = 'text' name='a2' value=1 size="12">x+ <input type = 'text' name='b2' value=1 size="9">y= <input type = 'text' name='c2' value=2 size="7"><br> <input type = 'button' value = ' 計 算 ' onclick = 'aa()'><br> 方 程 式 之 解 :<input type = 'text' name='ans'> </form> <script language = 'JavaScript'> function aa(){ a1=myform.a1.value; b1=myform.b1.value;
60 c1=myform.c1.value; a2=myform.a2.value; b2=myform.b2.value; c2=myform.c2.value; var d = a1*b2-a2*b1; var r; if ((d==0) && (b1*c2-b2*c1==0)){ r=' 無 限 多 組 解 '; else{ if (d==0){ r=' 無 解 '; else{ r= 'x=' + (c1*b2-c2*b1)/d + ',' + 'y=' + (a1*c2-a2*c1)/d; myform.ans.value =r; </script> </body> </html> I 三 角 形 面 積 若 已 知 三 角 形 三 邊 長, 計 算 三 角 形 三 邊 長 的 演 算 法 如 下 : 1. 輸 入 三 角 形 的 三 邊 長 a b c 2. 將 三 邊 長 由 小 而 大 重 新 排 列, 最 小 的 放 入 a, 其 次 放 入 b, 最 大 的 放 入 c 3. 最 小 的 兩 邊 之 和 若 小 於 第 三 邊, 則 此 三 邊 未 能 構 成 三 角 形, 程 式 提 早 離 開 4. 假 如 a 2 + b 2 > c 2 則 為 銳 角 三 角 形, 否 則 假 如 a 2 + b 2 = c 2, 則 為 直 角 三 角 形, 否 則 此 三 角 形 為 鈍 角 三 角 形
61 1 5. 令 d = (a + b + c) 2 6. 三 角 形 面 積 = d(d a)(d b)(d c), 以 上 即 為 三 角 形 面 積 的 海 龍 公 式 範 例 2_4_4c 請 輸 入 三 角 形 三 邊 長, 首 先 判 斷 是 否 構 成 三 角 形 其 次 判 別 三 角 形 的 種 類, 最 後 計 算 其 面 積 表 單 配 置 1. 表 單 配 置 如 下 圖 左 2. 分 別 以 T1 T2 及 T3 輸 入 三 角 形 三 邊 長 3. 以 B1 作 為 執 行 運 算 的 依 據 4. 以 T4 輸 出 三 角 形 的 種 類 5. 以 T5 輸 出 三 角 形 的 面 積 執 行 結 果 如 下 圖 右 : 程 式 列 印 <head> </head> <body> <form name="myform">
62 a= <input type='text' name='t1' value=5 size="9"> b= <input type='text' name='t2' value=4 size="9"> c= <input type='text' name='t3' value=3 size="9"><p> <input type='button' value=' 計 算 ' onclick='aa()'><br> 面 績 :<input type='text' name='t4'><br> 三 角 形 類 型 :<input type='text' name='t5'></p> </form> <script language='javascript'> function aa(){ a=number(myform.t1.value); b=number(myform.t2.value); c=number(myform.t3.value); var e=0; var f=""; var t; //sort,a b c 由 小 而 大 排 序 if( a > b){t=a;a=b;b=t; if (b > c ) {t=b;b=c;c=t; if( a > b){t=a;a=b;b=t; if(a+b<c){ f=' 無 法 構 成 三 角 形 '; e=0; else{ var d=(a+b+c)/2; e= Math.sqrt(d*(d-a)*(d-b)*(d-c));
63 if ((Math.pow(a,2) + Math.pow(b,2)) < Math.pow(c,2)){ f=' 鈍 角 三 角 形 '; else{ if ((Math.pow(a,2) + Math.pow(b,2)) == Math.pow(c,2)){ f=' 直 角 三 角 形 '; else{ f=' 銳 角 三 角 形 '; myform.t4.value=e; myform.t5.value=f; </script> </body> </html> 閏 年 的 判 斷 西 元 的 閏 年 為 每 400 年 必 須 有 97 次 閏 年, 其 規 劃 方 式 如 下 : (1) 4 的 倍 數 依 此 條 件 共 有 100 次, 分 別 是 等 (2) 於 (1) 的 條 件, 閏 年 顯 然 太 多, 所 以 扣 掉 100 的 倍 數, 分 別 扣 掉 等 依 此 條 件, 共 有 96 次 (3) 於 (2) 的 條 件, 離 目 標 值 97, 還 相 差 一 個, 所 以 再 加 回 400 的 倍 數, 正 好 97 次, 如 下 表 所 示 : 西 元 年 份 性 質 備 註 3 平 年 4 閏 年
64 100 平 年 200 平 年 300 平 年 400 閏 年 600 平 年 1200 閏 年 2000 閏 年 3. 以 上 演 算 分 析, 流 程 圖 分 析 如 下 : 開 始 輸 入 西 元 年 份 a a4=a % 4 ( 取 餘 數 ) a100=a % 100 a400=a % 400 a4=0 false true (1) strb=" 平 年 " false a100=0 true (2) strb=" 閏 年 " false a400=0 true (3) strb=" 平 年 " (4) strb=" 閏 年 "
65 輸 出 strb 結 束 以 上 年 份, 對 照 上 面 的 流 程 圖, 所 走 的 路 線 如 下 : 西 元 年 份 性 質 流 程 路 線 3 平 年 (1) 4 閏 年 (2) 100 平 年 (3) 200 平 年 (3) 300 平 年 (3) 400 閏 年 (4) 600 平 年 (3) 1200 閏 年 (4) 2000 閏 年 (4) 範 例 2_4_4d 請 設 計 一 網 頁, 可 以 將 使 用 者 所 輸 入 的 西 元 年 份, 判 斷 其 為 平 年 或 閏 年 表 單 配 置 如 下 圖 左 : 執 行 結 果 如 下 圖 右 :
66 程 式 列 印 <html> <body> <form name="myform" > 請 輸 入 西 元 年 <input type='text' name='t1' value=2000><br> <input type='button' value=' 判 斷 ' onclick='aa()'><br> <input type='text' name='t2'> </form> </body> <script language="javascript"> function aa(){ var a=number(myform.t1.value); var a4 = a % 4; var a100 = a % 100; var a400 = a % 400; if (a4==0){ if (a100==0){ if (a400==0){ r=' 潤 年 (4)'; //4,100,400 的 倍 數
67 else{ r==' 平 年 (3)'; //400,100 的 倍 數 else{ r=' 潤 年 (2)'; else{ r=' 平 年 (1)'; myform.t2.value=r; </script> </html> 習 題 1. 假 設 所 得 稅 稅 率 法 則 如 下 : (1) 淨 所 得 30 萬 以 下 6% (2) 淨 所 得 30~80 萬 之 間 13% ( 前 面 的 30 萬 仍 扣 6%, 超 過 30 萬 的 部 分 稅 率 為 13%, 不 是 全 部 都 扣 13%) (3) 淨 所 得 80~200 萬 21% ( 前 面 的 30 萬 仍 扣 6%,30~80 萬 的 部 分 稅 率 為 13%, 不 是 全 部 都 扣 20%) (4) 淨 所 得 超 過 200 萬 30% 試 寫 一 網 頁 可 以 輸 入 淨 所 得, 並 計 算 應 繳 稅 額 例 如, 淨 所 得 若 為 40 萬, 則 其 納 稅 金 額 計 算 如 下 :
68 30 x 6% + 10 x 13% = ( 超 過 30 萬 的 部 份 稅 率 為 13%, 不 是 全 部 40 萬 都 是 13%) 2. 寫 一 網 頁 輸 入 x 值, 並 印 出 其 所 對 應 的 值, 其 函 數 對 應 如 下 : x+3 x>8 x 2 3<=x<=8 y=f(x)= x 0<x<3 0 x<=0 3. 某 一 貨 品 定 價 100 元, 若 購 買 500 件 ( 含 ) 以 上 打 7 折, 若 購 買 499~300 件 則 打 8 折, 若 購 買 299~100 件 則 打 9 折, 購 買 99 件 以 下 則 不 打 折, 試 寫 一 網 頁 可 以 輸 入 購 買 件 數 而 得 總 價 4. 假 設 電 阻 串 聯 的 公 式 為 R=R1+R2+R3+R4, 並 聯 公 式 為 R=1/((1/R1)+(1/R2)+(1/R3)+(1/R4)), 請 設 計 一 網 頁, 可 以 同 時 處 理 個 電 阻 的 串 聯 或 並 聯 ( 也 就 是 您 的 網 頁, 僅 輸 入 2 個 3 個 或 4 個 都 可 以 計 算 串 聯 或 併 聯 的 值 ) 5 請 完 成 一 組 雙 向 的 紅 綠 燈 提 示 : 規 劃 時 序 如 下 : 時 序 燈 號 1 燈 號 2 0 綠 紅 1 綠 紅 2 綠 紅 3 綠 紅 4 綠 紅 5 綠 滅 紅 6 綠 紅 7 綠 滅 紅 8 黃 紅 9 黃 紅 10 紅 紅 11 紅 綠
69 12 紅 綠 13 紅 綠 14 紅 綠 滅 15 紅 綠 16 紅 黃 17 紅 黃 18 紅 紅 6 同 上 題, 但 去 掉 綠 閃 功 能, 且 顯 示 燈 號 剩 餘 秒 數 2_5 迴 圈 結 構 前 面 第 二 四 兩 章, 我 們 已 經 介 紹 如 何 輸 入 一 個 人 的 成 績, 及 判 斷 一 個 人 的 成 績 是 否 及 格, 也 介 紹 如 何 輸 入 多 人 成 績 多 人 成 績 的 極 大 值 及 排 序 問 題 我 們 發 現, 當 人 數 只 要 一 多, 寫 起 程 式 來 真 是 洋 洋 灑 灑, 程 式 設 計 的 領 域 果 真 如 此 折 磨 人 嗎? 所 幸, 答 案 是 否 定 的 因 為 本 章 要 介 紹 一 個 高 效 率 的 敘 述, 此 稱 為 迴 圈 敘 述 JavaScript 的 迴 圈 敘 述 分 別 是 for 與 while 2_5_1 for 若 於 程 式 設 計 階 段 已 知 迴 圈 的 執 行 次 數, 則 可 使 用 for 敘 述,for 敘 述 的 語 法 如 下 : for ( 計 數 變 數 = 起 始 值 ; 結 束 運 算 式 ; 計 數 變 數 的 變 量 ) { [ 敘 述 區 塊 1] [break] [continue] [ 敘 述 區 塊 2] 以 上 語 法 說 明 如 下 : 1. 計 數 變 數 可 為 正 或 負 的 整 數 或 實 數, 正 整 數 請 看 範 例 2_5_1a, 負 實 數 請 看 範 例 2_5_1b 2. 程 式 若 執 行 到 break, 則 會 提 早 離 開 for 迴 圈, 請 看 範 例 2_5_1c 其 次, 若 執 行 到 continue 則 會 忽 略 敘 述 區 塊 2, 並 繼 續 執 行 下 一 個 計 數 變 量 3. 以 下 程 式 片 段 可 印 出 1 至 10 for (i=1;i<=10;i++) document.write (i+"<br>"); //<br> 是 跳 列
70 4. 以 下 程 式 片 段 可 印 出 1 至 10, 並 統 計 其 和 其 次,JavaScript 並 不 會 自 動 將 所 宣 告 變 數 的 初 值 設 為 0, 所 以 若 要 執 行 累 加 的 變 數, 務 必 親 自 設 定 其 初 值 s=0 var i,s=0; for (i=1;i<=10;i++) { document.write (i); s=s+i; document.write ("<br>"); document.write (s); 5. 敘 述 區 塊 內 可 以 放 置 任 何 合 法 的 敘 述, 當 然 也 可 含 for for 內 有 for, 稱 為 巢 狀 迴 圈 例 如, 以 下 敘 述 可 印 出 1 至 10 五 次, 請 看 2_5_2 節 for (i=1;i<=5;i++) { for (j=1;j<=10;j++) document.write (j); document.write ("<br>") 範 例 2_5_1a 若 y=f(x)=x 2 +x-6, 其 解 在 -10 到 10 之 間 的 整 數, 請 設 計 一 網 頁, 使 用 暴 力 代 入 法 求 其 解 執 行 結 果 程 式 列 印 所 謂 暴 力 代 入 法 就 是 一 個 一 個 通 通 帶 入, 促 使 y=0 的 x 值 即 為 其 解 所 以 本 例 只 要 將 x 從 -10 到 10 一 一 代 入, 即 可 求 解 var x,y=0; for (x=-10;x<=10;x++) { y=x*x+x-6; if (y==0) document.write (x+"<br>"); 自 我 練 習 1 請 設 計 一 網 頁, 計 算 之 和
71 2 2 請 設 計 一 網 頁, 計 算 ( i ) 5 i= 1 3 若 y=f(x)=x 3 +6x 2 -x-6, 其 解 在 -10 到 10 之 間 的 整 數, 請 設 計 一 網 頁, 求 其 解 4 假 如 沒 有 乘 法 運 算 子, 請 用 加 法 完 成 乘 法 運 算 例 如, 輸 入 3,5 則 輸 出 15 範 例 2_5_1b 試 求 之 和 執 行 結 果 程 式 列 印 <html> <body onload="aa()"> <form name="myform"> <input type="text" name="t1"> </form> <script language="javascript"> function aa(){ var sum = 0,i; for (i=2.1; i>0.9; i-=0.2){ sum += i; myform.t1.value=' 和 等 於 :' + sum; </script> </body> </html> 程 式 說 明 1. 迴 圈 的 起 始 值 運 算 式 及 計 量 變 數 都 可 為 整 數 或 浮 點 數, 本 例 之 初 值 為 2.1, 終 值 等 於 -7.1, 變 量 為 -0.2 自 我 練 習 1 請 設 計 一 網 頁, 計 算 之 和 範 例 2_5_1c 若 y=f(x)=x 2 +2x-1.25 的 解 在 -10 到 10 之 間 的 實 數, 請 設 計 一 網 頁, 使 用 暴 力 法, 求 其 實 數 解
72 執 行 結 果 程 式 列 印 var x,y=0; for (x=-10;x<=10;x=x+0.1) { y=x*x+2*x-1.25; if (Math.abs(y)<=0.001) document.write (x+"<br>"); 補 充 說 明 1 因 為 實 數 運 算 有 誤 差, 本 例 若 使 用 if (f==0) 將 會 找 不 到 答 案, 所 以 將 範 圍 擴 大 if (Math.abs(f)<=0.001), 才 能 找 到 答 案 2 本 例 應 該 繼 續 使 用 四 捨 五 入, 才 可 得 較 佳 的 解 答 自 我 練 習 1 同 上, 求 其 解 的 整 數 範 圍 ( 提 示 : 若 (f(x)*f(x+1)) <0 則 肯 定 x 與 x+1 之 間 有 一 整 數 解 ) 2 若 y=f(x)=x 2 +x-6, 求 函 數 極 小 值 範 例 2_5_1d 示 範 continue break 敘 述 執 行 結 果 1 當 x 等 於 5 時, 執 行 continue, 所 以 5 未 印 出, 繼 續 執 行 下 一 個 i, 如 下 圖 所 示 2 當 x 等 於 8 時, 執 行 break, 所 以 8 以 後 未 印 出, 且 離 開 迴 圈, 如 下 圖 所 示 程 式 列 印
73 <script language="javascript"> function aa(){ var x; for (x=1;x<=10;x++) { if (x==5 ) continue; if (x==8) break; document.write (x+"<br>"); </script> 自 我 練 習 1 請 設 計 一 網 頁, 計 算 加 到 何 數, 其 和 剛 好 超 過 100? 並 列 印 出 這 些 數 字, 再 計 算 其 和 為 何? 範 例 2_5_1e 同 範 例 2_4_4d, 列 出 西 元 元 年 至 西 元 2000 年 的 所 有 閏 年 執 行 結 果 如 下 圖, 共 485 個 (97*(2000/400)=485)
74 程 式 列 印 本 題 延 續 範 例 2_4_4d, 只 要 將 a 等 於 1 到 2000 一 一 檢 驗 是 否 為 閏 年 即 可, 所 以 適 用 for 迴 圈 <html> <head><title>2_5_1e</title></head> <body onload="aa()"> </body> <script> function aa(){
75 var i,a4,a100,a400; var n=0; for(i=1;i<=2000;i++){ a4 = i % 4; a100 = i % 100; a400 = i % 400; if (a4==0){ if (a100==0){ if (a400==0){ document.write(i+" "); n=n+1; if ((n % 20 )==0) document.write("<br>"); else{ document.write(i+" "); n=n+1; if ((n % 20 )==0) document.write("<br>"); document.write("<br>"); document.write(" 潤 年 個 數 為 :"+n); </script> </html> 自 我 練 習 1 請 找 出 1~100 的 整 數 中, 是 7 的 倍 數, 且 不 是 3 的 倍 數 者, 並 統 計 其 個 數 2 請 找 出 1~100 的 整 數 中, 是 7 的 倍 數, 或 是 3 的 倍 數, 且 不 是 21 的 倍 數 者, 並 統 計 其 個 數 範 例 2_5_1f 試 設 計 一 網 頁, 可 以 輸 入 2 至 9 的 整 數, 並 輸 出 此 數 的 九 九 乘 法 表 執 行 結 果
76 程 式 列 印 function aa() { var m,i; m=eval(myform.t1.value); //eval() 可 將 字 串 轉 為 數 值 for (i=1;i<=9;i++) document.write (m+"*"+i+"="+m*i+"<br>"); 自 我 練 習 1 請 輸 入 一 整 數, 並 列 出 此 數 的 因 數 例 如, 輸 入 18 輸 出 共 6 個 因 數 範 例 2_5_1g 請 設 計 一 網 頁, 可 以 判 斷 所 輸 入 的 數 是 否 為 質 數 執 行 結 果 程 式 列 印 任 一 整 數, 除 了 1 和 本 身 外, 若 沒 有 任 何 數 可 以 整 除 此 數, 則 稱 此 數 為 質 數 所 以, 本 例 使
77 用 2 至 該 數 減 一 的 整 數 試 除, 若 無 一 數 可 整 除, 則 稱 此 數 為 質 數 <html> <head> <body> <form name="myform"> <input type='text' name="t1" value =7 size="18"><p> <input type='button' value=' 判 斷 質 數 ' onclick="aa()"></p><p> 結 果 是 <input type='text' name="t2" size="11"></p> </form> </body> <script language="javascript"> function aa(){ n=myform.t1.value; var i,t=true; for (i=2; i<n; i++){ if (n%i==0) { t=false; break; if (t) { r=n + ' 是 質 數 '; else{ r=n + ' 不 是 質 數 '; myform.t2.value=r; </script> </html> 自 我 練 習 1 費 氏 數 列 的 定 義 如 下 : F1=1,F2=1,Fn=Fn-1+Fn-2 n>=3 請 設 計 一 網 頁, 可 以 印 出 費 氏 數 列 的 指 定 項 目 例 如, 輸 入 3, 印 出 1,1,2 輸 入 4, 印 出 1,1,2,3 輸 入 5, 印 出 1,1,2,3,5
78 輸 入 6, 印 出 1,1,2,3,5,8 ( 本 例 先 不 要 使 用 陣 列 ) 2_5_2 巢 狀 迴 圈 迴 圈 中 又 有 迴 圈, 稱 為 巢 狀 迴 圈 巢 狀 迴 圈 在 程 式 設 計 的 領 域 非 常 重 要, 也 是 初 學 者 最 感 頭 疼 的 單 元, 本 節 將 使 用 若 干 範 例 來 引 領 學 生 征 服 此 領 域 範 例 2_5_2a 請 設 計 一 網 頁, 印 出 2 至 1000 的 所 有 質 數 執 行 結 果 演 算 法 1 本 例 要 測 試 2 to 1000 的 質 數, 所 以 外 迴 圈 for (i=2; i<=1000; i++) 2 每 一 數 還 沒 檢 驗 前 都 是 質 數 t=true; 2 每 一 個 數 均 要 測 試 其 是 否 質 數, 所 以 內 迴 圈 for (j=2; j<i; j++) 3 每 個 數 都 要 測 試 其 是 否 質 數 if (i%j==0) { t=false; break; 程 式 列 印 <html> <body onload="aa()"> </body>
79 <script language="javascript"> function aa(){ var i,j,t=true,n=0; for (i=2; i<=1000; i++){ t=true; for (j=2; j<i; j++){ if (i%j==0) { t=false; break; if (t) { document.write( i + " " ); n++; if (n % 20 ==0){ document.write ("<br>"); document.write ("<br>"); document.write (" 質 數 個 數 為 "+n); </script> </html> 範 例 2_5_2b 1 以 下 表 格, 共 一 列 兩 行 A B 以 HTML 輸 出 的 樣 式 如 下 : <html> <body> <table border="1"> <tr> <td> A </td> <td>
80 B </td> </tr> </table> </body> </html> 2 若 是 以 下 二 列 三 行, 其 HTML 輸 出 如 下 : A B C D E F <html> <body> <table border="1"> <tr> <td> A </td> <td> B </td> <td> C </td> </tr> <tr> <td> D </td> <td> E </td> <td> F </td> </tr> </table> </body> </html> 3 請 設 計 一 網 頁, 輸 出 如 下 的 九 九 乘 法 表
81 程 式 列 印 1 共 九 列, 所 以 外 迴 圈 for (i=1;i<=9;i++) 2 每 列 均 有 9 個, 所 以 內 迴 圈 for (j=1;j<=9;j++) 3 全 部 程 式 如 下 : <html> <body> <table border="1"> <script language=javascript> var i,j; for (i=1;i<=9;i++) { document.write("<tr>") ; for (j=1;j<=9;j++) { document.write("<td>") ; document.write(i,"*",j,"=",i*j); document.write("</td>") ; document.write("</tr>"); </script> </table> </body> </html>
82 範 例 2_5_2c 試 設 計 一 網 頁, 找 出 三 位 數 阿 姆 斯 壯 數 " 所 謂 阿 姆 斯 壯 數 是 指 一 數 等 於 各 個 位 數 的 立 方 和, 即 abc=a 3 +b 3 +c 3, 例 如 153= 執 行 結 果 程 式 列 印 <html> <head> <title>2_5_2c</title> </head> <body onload="aa()"> </body> <script language="javascript"> function aa(){ var sum1=0,sum2=0; for (i=1;i<=9;i++){ for (j=0;j<=9;j++){ for (k=0;k<=9;k++){ sum1=100*i + 10*j + k; sum2=math.pow(i,3) + Math.pow(j,3) + Math.pow(k,3); if(sum1==sum2) document.write( sum1 + "<br>" ); </script> </html> 自 我 練 習 1 試 設 計 一 網 頁, 找 出 四 位 數 阿 姆 斯 壯 數 " 例 如,abcd=a 4 +b 4 +c 4 +d 4 2 請 設 計 一 網 頁, 可 以 輸 入 一 數, 並 求 出 其 可 分 解 的 平 方 和 例 如, 輸 入 50, 可 得 1,7 與
83 5,5 兩 組 答 案 2_5_3 while 上 一 節 的 for 是 用 於 程 式 設 計 階 段 已 知 迴 圈 次 數, 但 有 些 情 況, 我 們 於 程 式 設 計 階 段 並 不 知 迴 圈 的 執 行 次 數, 此 時 即 可 使 用 while 敘 述, 且 有 些 迴 圈 可 能 一 次 都 不 執 行, 所 以 while 敘 述 又 分 為 前 測 試 迴 圈 與 後 測 試 迴 圈 while 的 前 測 試 迴 圈 語 法 如 下 圖 左, 後 測 試 迴 圈 如 下 圖 右 while( 運 算 式 ) { 敘 述 區 塊 1; [continue;] [break;] 敘 述 區 塊 2; do { 敘 述 區 塊 1; [continue;] [break;] 敘 述 區 塊 2; while ( 運 算 式 ) ; 以 上 語 法 說 明 如 下 : 1. 不 論 是 前 測 試 或 後 測 試 迴 圈, 均 是 運 算 式 值 為 真 " 時, 繼 續 執 行 迴 圈, 運 算 式 為 偽 " 時, 離 開 迴 圈 2. 前 測 試 與 後 測 試 迴 圈 的 差 別 為, 前 測 試 迴 圈 有 可 能 一 次 均 不 執 行 迴 圈, 但 後 測 試 迴 圈 至 少 執 行 一 次 3. while 敘 述 區 塊 內 亦 適 用 break, 提 早 離 開 迴 圈 4. while 敘 述 區 塊 內 亦 適 用 continue, 略 過 敘 述 區 塊 2, 直 接 回 到 運 算 式 5. 以 下 程 式 片 段, 使 用 前 測 試 迴 圈 計 算 商 與 餘 數, 因 為 程 式 設 計 階 段 並 不 知 程 式 的 結 束 值, 所 以 特 別 適 合 使 用 while 迴 圈 只 要 被 除 數 大 於 等 於 除 數, 那 就 一 直 減 去 除 數, 可 以 減 去 除 數 的 個 數 就 是 商, 離 開 迴 圈 時 所 剩 的 被 除 數 就 是 餘 數 var q=0; a=7; // 被 除 數 b=3;// 除 數 while(a>=b){ a-=b; q++; // 商 myform.t3.value= q +'.. '+ a; 商 與 餘 數
84 6. 以 下 程 式 片 段, 使 用 前 測 試 迴 圈 統 計 1 至 10 的 和 i=0;s=0; while(i<=10) { document.write (i+"<br>"); s=s+i; i++; document.write (s+"<br>"); 7. 以 下 程 式 片 段, 使 用 後 測 試 迴 圈 統 計 1 至 10 的 和 i=0;s=0; do { document.write (i+"<br>"); s=s+i; i++; while (i<=10) ; document.write (s+"<br>"); 範 例 2_5_3a 請 設 計 一 網 頁, 計 算 , 請 問 加 至 何 值, 其 和 剛 好 超 過 100? 執 行 結 果 程 式 列 印
85 本 例 設 計 階 段 並 不 知 道 迴 圈 的 終 值, 所 以 特 別 適 合 使 用 while 迴 圈 如 下 : <html> <body onload="aa()"></body> <script language="javascript"> function aa(){ var sum=0,i=1; while (sum<=100){ sum+=i; document.write(i+", "); document.write(sum+"<br>"); i++; document.write(" 總 和 :"+sum+ ",i="+i); </script> </html> 自 我 練 習 1 若 有 一 級 數 s=3+6+9+, 請 問 加 到 第 幾 項, 其 和 剛 好 超 過 100? 範 例 2_5_3b 請 設 計 一 網 頁, 滿 足 以 下 條 件 : (1) 可 以 產 生 0 至 6 的 整 數 亂 數 ( 隨 機 產 生 0 至 1 之 間 的 實 數 亂 數 為 Math.random(), 關 於 亂 數 的 使 用, 請 先 看 第 9 章 ) (2) 累 加 以 上 亂 數 (3) 輸 出 此 亂 數 與 其 和 (4) 若 亂 數 不 為 0, 則 重 複 步 驟 (1)~(3), 直 到 亂 數 為 0, 則 程 式 結 束 執 行 結 果 程 式 列 印 var x,s=0; do { x=math.floor(math.random ()*7); document.write (x,","); s=s+x; while (x!=0);
86 document.write ("<br>",s); 自 我 練 習 1 請 設 計 一 網 頁, 滿 足 以 下 條 件 :( 擲 骰 子 遊 戲 ) A 可 以 產 生 兩 個 1 至 6 的 亂 數 B 累 加 以 上 亂 數 C 輸 出 此 亂 數 與 其 和 D 若 亂 數 和 大 於 8, 則 重 複 (A)~(C), 直 到 亂 數 和 小 於 等 於 8, 則 程 式 結 束 2 請 設 計 一 網 頁, 可 以 連 續 產 生 兩 個 1~6 的 亂 數, 並 輸 出 此 兩 個 亂 數, 直 到 後 面 的 亂 數 大 於 前 面 的 亂 數 3 請 設 計 一 網 頁, 可 以 連 續 產 生 3 個 1~6 的 亂 數, 並 輸 出 此 3 個 亂 數, 直 到 有 其 中 兩 個 亂 數 相 等 為 止, 並 輸 出 另 一 亂 數 之 值 4 請 設 計 一 網 頁, 可 以 連 續 產 生 4 個 1~6 的 亂 數, 並 輸 出 此 4 個 亂 數, 直 到 有 其 中 兩 個 亂 數 相 等 為 止, 並 輸 出 另 兩 亂 數 之 和 例 如, 亂 數 為 1,5,2,6 則 繼 續 產 生 亂 數, 亂 數 若 為 2,5,2,6 則 輸 出 其 和 為 11 5 請 設 計 一 網 頁, 可 以 讓 人 與 電 腦 玩 拾 捌 拉 遊 戲 計 算 點 數 和 方 式 是, 一 直 擲 四 顆 骰 子, 直 到 有 兩 顆 相 同, 並 將 此 兩 顆 取 走, 再 計 算 另 兩 顆 之 和, 例 如, 若 擲 出 2,4,1,6 則 重 來, 若 擲 出 1,3,1,6 則 點 數 和 是 9. 其 次, 若 擲 出 2,6,6,2 則 點 數 和 為 12, 也 就 是 取 較 高 點 數 者 遊 戲 規 則 是, 人 先 擲, 且 每 擲 一 次, 顯 示 一 次, 無 效 時 亦 要 求 使 用 者 再 擲 6 設 計 一 網 頁, 可 以 累 加 所 輸 入 的 正 數, 設 計 階 段 並 不 知 數 字 個 數, 直 到 輸 入 值 是 -1 時, 印 出 所 輸 入 數 字 的 最 大 值 最 小 值 及 平 均 ( 提 示 : 請 用 prompt 函 數 ) 7 請 寫 一 猜 拳 遊 戲 程 式, 電 腦 連 續 產 生 兩 個 0~2 的 亂 數,0 代 表 剪 刀 1 代 表 石 頭 2 代 表 布, 並 輸 出 結 果, 直 到 有 任 一 方 贏 3 次 為 止 範 例 2_5_3c 假 如 沒 有 除 法 運 算 子, 請 自 行 使 用 加 減 法, 完 成 除 法 運 算 執 行 結 果 只 要 被 除 數 大 於 等 於 除 數, 那 就 一 直 減 去 除 數, 可 以 減 去 除 數 的 個 數 就 是 商, 離 開 迴 圈 時 所 剩 的 被 除 數 就 是 餘 數 程 式 列 印 <html>
87 <body> <form name="myform"> <input type="text" name="t1" value=8 size="7" > / <input type="text" name="t2" value=3 size="8" > <input type="button" value="=" onclick="aa()"> <input type="text" name="t3" size="6"> </form> </body> <script> function aa(){ var q=0; a=number(myform.t1.value); b=number(myform.t2.value); while(a>=b){ a-=b; q++; myform.t3.value= q +'...'+ a; </script> </html> 程 式 說 明 1. a= 被 除 數 2. b= 除 數 3. 商 數 q=0 4. 所 謂 的 商 就 是 被 除 數 a 共 有 幾 個 除 數 b, 也 就 是 只 要 a 大 於 等 於 b, 就 要 執 行 以 下 敘 述 : a=a-b q=q+1 5. 本 例 以 8 除 以 3, 實 際 演 練 如 下 : (1) a=8;b=3 a>=b 成 立, 所 以 執 行 迴 圈 敘 述 a=a-b=5 q=q+1=1 (2) a=5;b=3 a>=b 成 立, 所 以 執 行 迴 圈 敘 述 a=a-b=2 q=q+1=2
88 (3) a=2;b=3 a>=b 不 成 立, 所 以 離 開 迴 圈 q=2( 商 ) a=2( 餘 數 ) 4. 本 程 式 僅 能 使 用 前 測 試 迴 圈, 而 不 能 使 用 後 測 試 迴 圈, 因 為 有 可 能 一 開 始 被 除 數 就 小 於 除 數 範 例 2_5_3d 請 將 10 進 位 數 轉 為 N 進 位 數 ( 本 例 暫 討 論 N<=9, 其 餘 N>=11 時, 待 陣 列 介 紹 之 後 再 討 論 ) 程 式 列 印 <html> <body> <form name="myform"> <input type="text" name="t1" value=11 size="8"> 十 進 位 轉 <input type="text" name="t2" value=2 size="8" > 進 位 <br> <input type="button" value=" 轉 換 " onclick="aa()"> <input type="text" name="t3" size="11"> </form> </body> <script language="javascript"> function aa(){ var r,strn=""; a=number(myform.t1.value); b=number(myform.t2.value); while(a>0){ r = a%b; strn = r.tostring() + strn;//tostring() 數 值 轉 字 串 a=math.floor(a/b);// 取 整 數
89 myform.t3.value=strn; </script> </html> 演 算 說 明 1. a 為 待 轉 換 的 十 進 位 2. b 為 N 進 位 數 3. r 為 餘 數 4. strn 為 二 進 位 數 5. 只 要 a >0 則 將 a 連 續 除 以 b, 直 到 整 數 商 為 0, 其 餘 數 的 字 串 累 加, 即 為 N 進 位 數 6. 本 例 以 11 轉 為 2 進 位, 實 際 演 練 如 下 : (1) a=11;b=2;strn=" "; r=a Mod b=1 a=a\b=5 strn="1" a>0 成 立, 所 以 繼 續 迴 圈 (2) a=5;b=2;strn="1"; r=a Mod b=1 a=a\b=2 strn="11"( 剛 出 爐 餘 數 的 1, 要 放 在 原 strn 的 左 邊 ) a>0 成 立, 所 以 繼 續 迴 圈 (3) a=2;b=2;strn="11"; r=a Mod b=0 a=a\b=1 strn="011"( 剛 出 爐 餘 數 的 0, 要 放 在 原 strn 的 左 邊 ) a>0 成 立, 所 以 繼 續 迴 圈 (4) a=1;b=2;strn="011"; r=a Mod b=1 a=a\b=0 strn="1011"( 剛 出 爐 的 餘 數 1, 要 放 在 原 strn 的 左 邊 ) a> 0 不 成 立, 所 以 離 開 迴 圈 7. 本 例 進 入 迴 圈 之 前, 我 們 並 無 法 預 估 迴 圈 次 數, 所 以 較 適 用 while 迴 圈 ( 亦 可 用 for, 但 程 式 架 構 較 不 漂 亮 ) 且 有 可 能 迴 圈 一 次 均 不 執 行, 所 以 要 用 前 測 試 迴 圈 原 理 解 說
90 1. 若 要 將 十 進 位 的 a 轉 為 2 進 位, 則 以 數 學 式 表 示 如 下 : (a)10=a0+a12 1 +a22 2 +a32 3 +a =a0+2(a1+a22 1 +a32 2 +a ) //a1 以 後, 提 出 2 2. 上 式 的 a0 為 a 除 以 2 的 餘 數,a1+a22 1 +a32 2 +a42 3 則 為 a 除 以 2 的 整 數 商, 重 複 上 式, 直 至 整 數 商 等 於 零 為 止 3. 最 先 出 爐 的 餘 數 應 放 在 2 進 位 的 最 右 邊 (a)10=(an a3a2a1a0)2 範 例 2_5_3e 請 以 輾 轉 相 除 法, 求 兩 數 的 最 大 公 因 數 演 算 法 1. 輸 入 a b 兩 數 2. 調 整 a,b 兩 數, 使 得 a>b ( 假 如 b>a, 則 兩 者 交 換 ) 3. 設 r 為 餘 數 4. 將 a 除 以 b, 得 餘 數 r, 假 如 餘 數 不 為 0, 則 以 原 除 數 為 被 除 數, 原 餘 數 為 除 數, 重 複 執 行 a 除 以 b, 直 到 餘 數 為 0, 促 使 餘 數 為 0 的 除 數, 即 為 最 大 公 因 數 5. 本 例 以 a=21,b=9, 實 際 演 練 如 下 : (1) a=21;b=9; r=a % b=3 a=b=9 b=r=3 r>0 成 立, 所 以 繼 續 執 行 迴 圈 (2) a=9;b=3; r=a % b=0 a=b=3 b=r=0 r>0 不 成 立, 所 以 離 開 迴 圈, 最 大 公 因 數 為 a=3 6. 輾 轉 相 除 法 的 執 行 之 初 並 無 法 預 估 執 行 次 數, 所 以 較 適 用 while, 且 本 例 迴 圈 至 少 執 行 一 次, 所 以 用 後 測 試 迴 圈 執 行 結 果
91 程 式 列 印 <html> <body> <form name="myform"> 輸 入 a 值 <input type="text" name="t1" value=21><br> 輸 入 b 值 <input type="text" name="t2" value=9> <br> 最 大 公 因 數 <input type="text" name="t3"><br> <input type="button" value=" 計 算 " onclick="aa()"><br> </form> </body> <script language="javascript"> function aa(){ var r,t; a=number(myform.t1.value); b=number(myform.t2.value); if (b>a){ t=a; a=b; b=t; do{ r=a%b; a=b; b=r; while(r>0) myform.t3.value=a; </script> </html> 自 我 練 習 1 請 使 用 二 分 猜 值 法, 計 算 一 數 的 平 方 根 提 示 : 所 謂 二 分 猜 值 法, 就 是 先 猜 其 中 間 值, 若 猜 得 太 大, 則 調 整 上 限 值 為 所 猜 的 中 間 值,
92 若 猜 的 太 小, 則 調 整 期 下 限 值 為 所 猜 的 中 間 值, 且 每 次 都 可 縮 小 一 半 的 範 圍, 直 到 上 下 限 的 範 圍 非 常 小 為 止, 此 時 的 上 限 值 或 下 限 值 即 為 其 解 至 於 要 多 小, 則 要 依 您 所 要 取 的 精 密 度 而 定 以 9 為 例, 因 為 其 根 必 在 x1=0 與 x2=9 中 間, 那 就 先 猜 中 間 值 x=4.5, 其 次,4.5 的 平 方 大 於 9, 表 示 猜 的 太 大, 此 時 請 調 整 其 上 限 值 x2=4.5, 那 表 示 其 根 必 在 x1=0 與 x2=4.5 之 間, 且 只 要 x1 與 x2 的 距 離 大 於 0.1, 則 要 繼 續 重 複 猜 值 的 動 作 此 時 x1=0,x2=4.5, 那 就 繼 續 猜 x=2.25,2.25 的 平 方 等 於 小 於 9, 表 示 猜 的 太 小, 當 然 要 調 整 下 限 值 x1=x=2.25 ( 也 就 是 說, 當 x1 與 x2 的 距 離 非 常 小, 例 如, 它 們 之 間 的 距 離 已 經 小 於 0.1, 那 表 示 x1 與 x2 都 可 當 作 其 解 了, 就 如 同 一 片 西 瓜, 其 大 小 已 經 小 於 01 公 分, 那 您 可 能 就 沒 辦 法 再 一 分 為 2, 其 次, 電 腦 的 精 密 度 大 於 人 類, 所 以 其 精 密 度 較 大, 譬 如 只 要 大 於 即 能 在 分 割 為 2, 其 精 密 度 當 然 較 高 ) 2 請 使 用 二 分 猜 值 法, 計 算 一 數 的 立 方 根 3 請 使 用 二 分 猜 值 法, 計 算 兩 數 相 除 的 結 果 2_5_4 實 例 探 討 I 積 分 的 剖 析 若 有 積 分 式 如 下 : 1 0 xdx 此 積 分 式 就 如 同 求 右 圖 邊 長 為 1 的 等 腰 三 角 形, 則 其 面 積 依 照 公 式 是 0.5 此 公 式 的 由 來, 解 析 如 下 : (1) 若 dx=0.1, 也 就 是 將 三 角 形 切 為 10 個 矩 形, 每 個 矩 形 的 底 是 0.1, 則 其 面 積 如 下 : sum = 0; dx = 0.1;' 每 個 矩 形 的 高 分 別 是 for(x=0;x<=1;x+=dx){ sum = sum + x * dx; document.write(sum); 結 果 是 0.55 (2) 若 dx=0.01, 也 就 是 將 三 角 形 切 為 100 個 矩 形, 則 其 面 積 如 下 sum = 0; dx = 0.1;' 每 個 矩 形 的 高 分 別 是 for(x=0;x<=1;x+=dx){ sum = sum + x * dx; document.write(sum);
93 結 果 是 (3) 若 dx=0.001, 也 就 是 將 三 角 形 切 為 1000 個 矩 形, 則 其 面 積 如 下 sum = 0; dx = 0.1;' 每 個 矩 形 的 高 分 別 是 for(x=0;x<=1;x+=dx){ sum = sum + x * dx; document.write(sum); 結 果 是 (5) 若 dx 取 的 非 常 小, 也 就 是 切 為 無 限 多 個 矩 形, 則 其 結 果 將 會 是 0.5, 這 就 是 積 分 的 道 理 範 例 2_5_4a 請 設 計 程 式 示 範 以 上 積 分 的 剖 析 執 行 結 果 程 式 列 印 <html> <head><title></title></head> <body> <form name="myform"> <input type="text" name="t1"><br> <input type="text" name="t2"><br> <input type="button" value="dx=0.1" onclick="aa()"> <input type="button" value="dx=0.01" onclick="ab()"> <input type="button" value="dx=0.001" onclick="ac()"> <input type="button" value="dx=0.0001" onclick="ad()"> </form> </body> <script language="javascript"> function aa(){ myform.t1.value="dx=0.1"; sum = 0;
94 dx = 0.1; for(x=0;x<=1;x+=dx){ sum = sum + x * dx; myform.t2.value=sum; function ab(){ myform.t1.value="dx=0.01"; sum = 0; dx = 0.01; for(x=0;x<=1;x+=dx){ sum = sum + x * dx myform.t2.value=sum; function ac(){ myform.t1.value="dx=0.001"; sum = 0; dx = 0.001; for(x=0;x<=1;x+=dx){ sum = sum + x * dx myform.t2.value=sum; function ad(){ myform.t1.value="dx=0.0001"; sum = 0; dx = ; for(x=0;x<=1;x+=dx){ sum = sum + x * dx myform.t2.value=sum; </script> </html> I Sinx 的 剖 析 當 我 們 欲 求 任 意 角 度 的 Sinx 值 時, 電 腦 是 以 其 泰 勒 展 開 式 求 其 值, 如 以 下 敘 述 :
95 3 5 7 x x x sin x= x ! 5! 7! 例 如,x=30 0 其 徑 度 量 是 x= , 若 取 1 項 sin x 若 取 2 項 = x = x sin x= x = ! 若 取 3 項 3 5 x x sin x= x + = ! 5! 若 取 4 項 x x x sin x= x + = ! 5! 7! 取 的 越 多, 可 說 是 精 密 度 越 大, 那 到 底 要 取 幾 項, 那 就 是 依 使 用 者 精 密 度 而 定 範 例 2_5_4b 設 計 一 網 頁, 可 依 所 需 項 數 求 解 sin 函 數 執 行 結 果 程 式 列 印 <html> <body> <form name="myform"> 輸 入 項 數 <input type="text" name="t1" value=2 size="16"><br> 結 果 <input type="text" name="t2" size="20"><br> <input type="button" value=" 計 算 " onclick="aa()"> </form> </body> <script language="javascript"> function aa(){ var y=0; pi = 4 * Math.atan(1); x = pi * 30 / 180 ;
96 n = Number(myform.t1.value); for (i=1;i<=n;i++){ y1 = Math.pow(-1,(i - 1))* (Math.pow(x,(2 * i - 1)) / nf(2 * i - 1)); y += y1; myform.t2.value=y; function nf(y){ sum = 1; for (j=1;j<=y;j++){ sum *= j; return sum ; </script> </html> 範 例 2_5_4c 設 計 一 網 頁, 可 依 所 需 精 密 度 求 解 sin 函 數 執 行 結 果 程 式 列 印 <html> <head><title></title></head> <body> <form name="myform"> 輸 入 精 密 度 <input type="text" name="t1" size="15" value=0.1><br> 結 果 <input type="text" name="t2" size="21"><br> 所 計 算 項 數 是 <input type="text" name="t3" size="12"><br> <input type="button" value=" 計 算 " onclick="aa()"> </form> </body> <script language="javascript">
97 function aa(){ var y=0; pi = 4 * Math.atan(1); x = pi * 30 / 180 ; n = Number(myform.t1.value); i=1; do{ y1=math.pow(-1,(i - 1))* (Math.pow(x,(2 * i - 1)) / nf(2 * i - 1)); y+=y1; i++; while(math.abs(y1)>n) myform.t2.value=y; myform.t3.value=i-1; function nf(y){ sum = 1; for (j=1;j<=y;j++){ sum *= j; return sum ; </script> </html> 習 題 1. 寫 程 式 計 算 下 列 結 果 : (1) s=7^2+10^2+13^2 +83^2 (2) s=(1-1/2)(1-1/3)(1-1/4)+ +(1-1/N) ( 要 先 輸 入 N 值 ) (3) s=1-1/2^2+1/3^2-1/4^2+ +(-1)^N/N^2 ( 要 先 輸 入 N 值 ) 2. 寫 程 式 求 以 下 數 列 之 和 (n 可 任 意 輸 入 ), 此 級 數 ( 數 列 之 和 稱 為 級 數 ) 是 收 斂 或 發 散? ( 當 n 繼 續 增 大 時, 數 列 之 和 是 否 持 續 增 大, 若 不 會 增 大, 稱 為 收 斂, 否 則 為 發 散 ) n 3. 求 至 n 項 之 總 和 (n 可 任 意 輸 入 ) 4. 寫 程 式 估 計 以 下 無 窮 級 數 n 時 之 和
98 n 1 ( 1) k = 1 kk+ 5. 請 設 計 一 網 頁, 輸 入 一 正 整 數, 將 其 質 因 數 分 解 後 印 出 其 式 子, 例 如 : 輸 入 :319 輸 出 :319=11*19 輸 入 :19 輸 出 :19 = 質 數 輸 入 : 輸 出 : = 2^3*7^2*11^3 6. 請 設 計 一 網 頁, 可 以 處 理 分 數 的 加 減 乘 除 運 算, 運 算 之 後 的 結 果 應 約 分 化 為 最 簡 分 數 或 整 數 例 如 : = * = = _6 陣 列 處 理 少 量 的 資 料, 可 以 為 每 一 筆 資 料 設 定 一 個 變 數, 但 如 果 資 料 量 非 常 龐 大, 譬 如 一 個 班 級 的 50 位 同 學 成 績, 分 別 設 定 A1 A2...A50 等 50 個 變 數, 是 一 件 相 當 麻 煩 的 事, 為 了 解 決 大 批 的 資 料 處 理, 遂 有 陣 列 (Array) 的 使 用 例 如, 要 儲 存 一 個 班 級 的 數 學 成 績 可 以 宣 告 一 個 一 維 陣 列 代 表 50 個 人 的 數 學 成 績, 則 a[50] 可 以 用 來 表 示 1 號 同 學 的 數 學 成 績,a[2] 可 以 用 來 表 示 2 號 同 學 的 數 學 成 績, 依 此 類 推 若 要 表 達 每 班 每 人 的 國 英 數 三 科 成 績 時, 可 以 宣 告 一 個 二 維 陣 列 來 表 示, 其 中 a[1][1] 表 示 1 號 國 文 成 績 a[1][2] 表 示 1 號 英 文 成 績 a[1][3] 表 示 1 號 數 學 成 績, 依 此 類 推 同 理, 如 果 一 年 級 有 12 班, 則 可 以 宣 告 個 三 維 陣 列 來 儲 存, 其 中 a[7][42][2] 代 表 1 年 級 7 班 42 號 英 文 成 績 2_6_1 一 維 陣 列 I 陣 列 的 宣 告 當 我 們 使 用 一 般 變 數 時, 必 須 先 行 宣 告, 同 樣 地 陣 列 變 數 也 是 如 此, 其 宣 告 方 式 如 下 : var 陣 列 變 數 = new Array(); 且 其 索 引 下 限 值 是 0, 陣 列 的 大 小 與 型 態 都 不 用 宣 告,JavaScript 會 自 動 安 排, 例 如, 以 下 敘 述 宣 告 一 個 a 陣 列, 其 索 引 下 限 值 是 0 var a=new Array(); I 陣 列 變 數 的 存 取
99 陣 列 可 以 在 同 一 變 數 中 儲 存 多 個 元 素, 所 以 當 你 在 存 取 陣 列 中 的 某 個 元 素 時, 必 須 指 定 一 個 索 引 值 (index) 來 指 向 你 所 相 要 的 元 素 ; 其 中 索 引 值 可 以 是 整 數 常 數, 但 也 可 以 是 整 數 變 數 所 以, 以 下 的 敘 述 可 以 將 陣 列 索 引 0 的 值 設 定 為 3 a[0]=3; 以 下 敘 述 可 取 得 a[0] 的 值 b=a[0]; 其 次, 陣 列 宣 告 之 後, 您 可 任 意 放 入 數 值 或 字 串, 例 如, 以 下 敘 述 繼 續 將 a[1] 放 入 "mary" 與 數 值 的 80 a[1]="mary"; a[2]=80; I 陣 列 的 初 值 設 定 陣 列 宣 告 與 初 值 設 定 亦 可 同 時 設 定, 例 如, 以 下 敘 述 即 為 宣 告 b 陣 列, 並 且 宣 告 其 內 容 var b=new Array(0,1,2,3,4); 以 上 敘 述, 亦 可 省 略 new Array, 但 應 將 小 括 號 改 為 中 括 號, 如 以 下 敘 述 var b=[0,1,2,3,4]; 其 次, 大 部 分 的 程 式 語 言 都 規 定 所 有 陣 列 成 員 的 資 料 型 態 要 相 符, 但 是 JavaScript 並 沒 有 如 此 規 定, 所 以, 以 下 敘 述 亦 可 初 始 化 陣 列 內 容 var b=new Array(4, mary, d,70); 此 時 b[0]=4,b[1]="mary",b[2]='d',b[3]=70, 其 次, 更 神 奇 的 是 陣 列 亦 可 繼 續 增 加 其 容 量, 例 如, 繼 續 設 定 b[4]=90 則 其 容 量 即 為 5 所 以 此 時 輸 出 其 長 度 則 為 5, 如 以 下 敘 述, document.write(b.length); 範 例 2_6_1a 假 如 有 資 料 如 下 66,55,77,88,33 (1) 請 用 陣 列 儲 存 以 上 資 料 (2) 請 統 計 以 上 資 料 的 和, 並 輸 出 (3) 請 統 計 以 上 資 料 的 平 均, 並 輸 出 (4) 請 統 計 以 上 資 料 的 極 大 值, 並 輸 出 執 行 結 果
100 程 式 列 印 <html> <body onload="aa()"> </body> <script language="javascript"> function aa(){ var a=[]; a[1]=77;a[2]=66;a[3]=99;a[4]=44;a[5]=55; max = a[1];min = a[1];sum = a[1]; for (i=2;i<=5;i++){ if (a[i] > max) { max = a[i]; if (a[i] < min) { min = a[i]; sum+=a[i]; avg = Math.floor(sum/5); document.write( " 平 均 " + avg + "<br>"); document.write( " 最 高 " + max + "<br>"); document.write( " 最 低 " + min + "<br>"); </script> </html> 程 式 說 明 1. 求 最 高 分 的 方 法 為 : (1) 先 設 第 一 個 人 為 最 高 分 的 擂 台 主 (2) 第 二 個 人 起 逐 一 與 擂 台 主 比 較, 若 大 於 擂 台 主 即 取 代 擂 台 主 [ 自 我 練 習 ] 1. 設 有 資 料 如 下 : 22, 33, 44, 55, 66 (1) 請 用 陣 列 儲 存 以 上 資 料 (2) 請 將 以 上 陣 列 複 製 至 另 一 陣 列
101 (3) 將 以 上 兩 個 陣 列 內 容 逐 一 相 加, 並 放 在 第 三 個 陣 列 範 例 2_6_1b 請 用 陣 列 讀 入 5 位 學 生 的 國 文 成 績, 並 可 由 使 用 者 輸 入 座 號 來 查 詢 成 績 執 行 結 果 1 以 下 是 程 式 執 行 結 果 的 初 始 畫 面 2 以 下 是 查 詢 的 畫 面 程 式 列 印 <html> <body onload="ab()"> <form name="myform"> 輸 入 座 號 <input type="text" name="t1"><br> 國 文 成 績 <input type="text" name="t2"><br> <input type="button" value=" 查 詢 " onclick="aa()"> </form> </body> <script language="javascript"> function aa(){ j=number(myform.t1.value); myform.t2.value=a[j]; var a=[]; function ab(){ for(i=1;i<=5;i++){ a[i]=number(prompt(" 請 輸 入 "+i.tostring()+" 號 成 績 ",10*i));//toString() 將 數 值 轉 字 串
102 </script> </html> [ 自 我 練 習 ] 1. 假 設 資 料 個 數 上 限 是 50, 但 設 計 階 段 並 不 知 道 資 料 個 數, 請 寫 一 個 程 式, 可 以 輸 入 若 干 數 字, 並 由 陣 列 儲 存, 當 輸 入 是 -1 時 程 式 結 束 其 次, 資 料 輸 入 完 成, 亦 可 由 索 引 查 得 輸 入 值 2 設 有 資 料 如 下 : -1, 0, 3, 4, -5, 8 (1) 請 以 陣 列 儲 存 以 上 資 料 (2) 統 計 正 數 0 負 數 的 個 數 3 設 有 資 料 如 下 : 3, 4, 3, 8,9,22,44,1,5,66 請 問 是 否 有 資 料 重 複 4 設 有 資 料 如 下 : 3, 4, 3, 8,9,22,44,1,5,66,11,16,21,22,2,55,99,26,29,11,3,22,62,69,72,79,22 (1) 請 以 陣 列 儲 存 以 上 資 料 (2) 統 計 有 哪 些 數 字 重 複, 其 重 複 次 數 為 何? (3) 請 遞 除 重 複 的 資 料 5. 假 設 全 班 有 12 人, 請 寫 一 網 頁, 每 人 於 到 校 時, 可 鍵 入 自 己 的 座 號, 電 腦 並 逐 一 回 應 未 到 校 的 座 號 6 請 寫 程 式 完 成 以 下 條 件 A 產 生 10 個 1 到 6 的 亂 數 B 以 陣 列 儲 存 以 上 資 料 C 輸 出 以 上 資 料 D 共 有 多 少 個 3 7 請 寫 程 式 完 成 以 下 條 件 A 產 生 20 個 3 到 8 的 亂 數 B 以 陣 列 儲 存 以 上 資 料 C 輸 出 以 上 資 料 D 所 有 數 字 出 現 的 次 數 為 何? 8 請 寫 程 式 完 成 以 下 條 件
103 A 產 生 10 個 10 到 50 的 亂 數 B 以 陣 列 儲 存 以 上 資 料 C 輸 出 以 上 資 料 D 有 哪 些 數 字 重 複 出 現, 其 出 現 的 次 數 為 何? E 請 扣 除 重 複 出 現 的 數 字, 並 複 製 到 另 一 陣 列 9 請 寫 程 式 完 成 以 下 條 件 A 產 生 6 個 1 到 20 的 亂 數 B 以 陣 列 儲 存 以 上 資 料 C 產 生 6 個 1 到 20 的 亂 數 D 以 另 一 陣 列 儲 存 以 上 資 料 E 以 上 兩 陣 列 有 哪 些 相 同, 請 列 出 相 同 的 數 字 範 例 2_6_1c 請 寫 一 程 式, 可 將 任 意 十 進 位 數 轉 為 N 進 位 數 (2<=N<=16) 執 行 結 果 程 式 列 印 當 餘 數 超 過 9 時, 使 用 陣 列 做 一 個 對 照 表 如 下 : <html> <body> <form name="myform"> 請 輸 入 十 進 位 <input type="text" name="t1" value=255 size="15"><br> 輸 入 n 值 <input type="text" name="t2" value=16><br> 結 果 <input type="text" name="t3" size="23"><br> <input type="button" value=" 查 詢 " onclick="aa()"> </form> </body> <script language="javascript"> function aa(){ var strn=""; var c=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
104 a=number(myform.t1.value); b=number(myform.t2.value); while(a>0){ r = a%b ; strn = c[r] + strn ; a = Math.floor(a/b); myform.t3.value=strn; </script> </html> 自 我 練 習 1 請 以 一 維 陣 列 重 做 人 與 電 腦 猜 拳 2 請 寫 一 程 式, 可 以 輸 入 阿 拉 伯 數 字, 並 轉 為 大 寫 例 如, 輸 入 可 以 輸 出 五 萬 零 壹 十 範 例 2_6_1d 請 以 陣 列 重 做 費 式 數 列, 並 輸 出 結 果 執 行 結 果 程 式 列 印 <html> <body onload="aa()"> </body> <script language="javascript"> function aa(){ var a=[]; a[1] = 1; a[2] = 1; for(i=3;i<=15;i++){ a[i] = a[i - 1] + a[i - 2]; for(i=1;i<=8;i++){
105 document.write (i); document.write( " "+ a[i] + "<br>");//  可 連 續 產 生 多 個 空 白 </script> </html> 自 我 練 習 1 請 寫 一 程 式, 可 以 每 秒 自 動 展 示 一 張 圖 片 2 同 上 題, 但 使 用 兩 個 按 鈕, 分 別 是 往 前 與 往 後 的 展 示 照 片 3 假 如 樂 透 開 獎 號 碼 如 下 2,5,13,18,21,33 特 別 號 是 7, 請 用 陣 列 儲 存 其 次, 張 三 買 的 號 碼 是 3,13,14,18,22,33 請 以 陣 列 儲 存, 並 核 對 中 獎 類 別 2_6_2 二 維 與 多 維 陣 列 含 有 兩 個 或 兩 個 以 上 索 引 值 的 陣 列 稱 為 多 維 陣 列, 一 般 最 常 應 用 的 是 二 維 陣 列, 下 面 我 們 就 以 二 維 陣 列 為 例, 來 介 紹 如 何 使 用 多 維 陣 列 I 二 維 陣 列 變 數 宣 告 一 般 的 程 式 語 言 都 是 直 接 宣 告 幾 列 幾 行 即 可 宣 告 陣 列 的 大 小, 但 是 JavaScript 卻 不 可 以 如 此 宣 告, 他 必 須 先 行 宣 告 陣 列 名 稱, 再 逐 一 宣 告 每 一 列 例 如, 以 下 敘 述, 共 含 等 3 列, 且 每 一 列 的 長 度 則 是 可 變 長 度, 會 依 使 用 者 的 數 量 自 動 調 配 var a=new Array(); a[0]=new Array(); a[1]=new Array(); a[2]=new Array(); 以 上 敘 述, 亦 可 使 用 迴 圈 宣 告 如 下 var a=new Array(); for (var i=0 ;i<=2 ;i++) a[i]=new Array(); I 二 維 陣 列 的 存 取 以 下 敘 述 可 以 將 第 0 列 第 1 行 這 個 陣 列 元 素 的 值 設 定 為 1 a[0][1]=1 以 下 敘 述 可 以 將 第 0 列 第 5 行 這 個 陣 列 元 素 的 值 指 派 給 變 數 b b=a[0][5]; I 二 維 陣 列 的 初 始 化
106 二 維 陣 列 亦 可 於 宣 告 同 時, 設 定 其 初 值 例 如, 假 設 有 表 格 資 料 如 下 : 則 其 JavaScript 程 式 如 下 : var b=new Array ([0,91,92,93,94], [1,81,82,83,84], [2,71,72,73,74]); 以 上 敘 述, 亦 可 省 略 new Array, 但 應 將 小 括 號 改 為 中 括 號, 如 以 下 敘 述 var b=[[0,91,92,93,94], [1,81,82,83,84], [2,71,72,73,74]]; 以 上 資 料 的 索 引 值 如 下 : 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,4 2,0 2,1 2,2 2,3 2,4 例 如, 以 下 敘 述 的 結 果 是 91 document.write(b[0][1]); 以 下 敘 述 的 結 果 是 73 document.write(b[2][3]); 範 例 2_6_2a 假 設 有 兩 個 矩 陣 如 下 : 請 以 二 維 陣 列 儲 存 以 上 資 料, 並 求 其 相 加 的 結 果 如 下 : 執 行 結 果
107 程 式 列 印 <html> <head><title></title></head> <body onload="aa()"> </body> <script language="javascript"> function aa(){ var a=[[1,2,3],[4,5,6]]; var b=[[1,2,0],[2,1,3]]; var c =new Array(); c[0]=new Array(); c[1]=new Array(); //add for(i=0;i<=1;i++){ for(j=0;j<=2;j++){ c[i][j] = a[i][j] + b[i][j] ; //print a document.write("a:"+"<br>"); for(i=0;i<=1;i++){ for(j=0;j<=2;j++){ document.write( a[i][j]+" "); document.write( "<br>");
108 document.write( "<br>"); //print b document.write("b:"+"<br>"); for(i=0;i<=1;i++){ for(j=0;j<=2;j++){ document.write( b[i][j] +" "); document.write( "<br>"); document.write( "<br>"); //print c document.write("c:"+"<br>"); for(i=0;i<=1;i++){ for(j=0;j<=2;j++){ document.write( c[i][j] +" "); document.write( "<br>"); </script> </html> [ 自 我 練 習 ] 1. 假 設 有 矩 陣 如 下 : 請 以 二 維 陣 列 儲 存, 再 將 每 一 元 素 乘 以 2 後 輸 出 其 次, 此 矩 陣 共 有 幾 個 負 數 2 設 有 矩 陣 如 下 :
109 請 以 二 維 陣 列 儲 存, 並 求 其 轉 置 矩 陣 如 下 : 範 例 2_6_2b 假 設 有 學 生 成 績 如 下 : 座 號 姓 名 國 文 英 文 數 學 平 均 不 及 格 科 數 1 aa bb cc dd ee 平 均 1. 請 以 二 維 陣 列 儲 存 以 上 資 料 2. 計 算 每 人 平 均 3. 統 計 每 人 不 及 格 科 數 4. 統 計 各 科 平 均 執 行 結 果 操 作 步 驟 1 陣 列 初 值 設 定 如 下 : var a=new Array([1,"aa",50,60,70,0,0],[2,"bb",30,40,50,0,0], [3,"cc",70,80,90,0,0],[4,"dd",66,77,88,0,0], [5,"ee",22,33,44,0,0],[" 平 均 "," ",0,0,0,0,0]); 則 其 索 引 值 如 下 : 座 號 姓 名 國 文 英 文 數 學 平 均 不 及 格 科 數
110 程 式 列 印 <html> <head><title></title></head> <body onload="aa()" > </body> <script language="javascript"> function aa(){ var a=new Array([1,"aa",50,60,70,0,0], [2,"bb",30,40,50,0,0], [3,"cc",70,80,90,0,0], [4,"dd",66,77,88,0,0], [5,"ee",22,33,44,0,0], [" 平 均 "," ",0,0,0,0,0]); //average for(i=0;i<=5;i++){ sum =0; for(j=2;j<=4;j++){ sum+=a[i][j]; a[i][5] = Math.floor(sum / 3); // 不 及 格 科 數 for(i=0;i<=5;i++){ for(j=2;j<=4;j++){ if (a[i][j]<60){ a[i][6] = a[i][6] + 1 ; // 各 科 平 均
111 for(i=2;i<=5;i++){ sum=0; for(j=0;j<=5;j++){ sum+=a[j][i]; a[5][i]=math.floor(sum/5); //print document.write ("<table border=1>"); for(i=0;i<=5;i++){ document.write("<tr>") ; for(j=0;j<=6;j++){ document.write("<td>") ; document.write( a[i][j] ); document.write("</td>") ; document.write("</tr>"); document.write ("</table>"); </script> </html> [ 自 我 練 習 ] 1 同 上 範 例, 但 增 加 計 算 每 科 不 及 格 人 數 每 科 最 高 分 每 科 最 低 分 2 假 設 某 一 公 司 有 三 個 業 務 員, 其 每 季 的 業 績 如 下 : 編 號 第 一 季 第 二 季 第 三 季 第 四 季 和 零 的 個 數 和 零 的 個 數 (1) 請 以 陣 列 儲 存 以 上 資 料 (2) 計 算 每 一 個 人 的 業 績 總 和 及 零 的 個 數 (3) 計 算 每 一 季 的 業 績 總 和 及 零 的 個 數 3 假 設 以 下 資 料 是 張 三 預 先 買 的 八 張 樂 透 彩 券 號 碼 : 編 號
112 A 請 以 二 維 陣 列 儲 存 以 上 資 料 B 請 使 用 7 個 文 書 盒 輸 入 開 獎 號 碼, 七 個 號 碼 分 別 是 2,9,17,18,22,34,15,15 是 特 別 號 C 請 核 對 每 張 彩 券 的 得 獎 情 形, 並 以 表 格 輸 出 結 果 4 請 以 二 維 陣 列 重 作 人 與 電 腦 猜 拳 2_6_3 物 件 陣 列 前 面 的 眾 多 資 料 可 以 使 用 陣 列, 以 縮 短 程 式 撰 寫 的 長 度, 那 如 果 是 許 多 物 件, 是 否 可 以 使 用 陣 列, 答 案 當 然 是 肯 定 的 例 如, 下 圖 已 經 插 入 5 張 圖 片 物 件 : 且 其 程 式 碼 如 下 : <html> <body> <p><img border="0" src="../g0.jpg" width="73" height="98"> <img border="0" src="../g1.jpg" width="72" height="99"> <img border="0" src="../g2.jpg" width="73" height="100"> <img border="0" src="../g3.jpg" width="74" height="99"> <img border="0" src="../g4.jpg" width="72" height="99"></p> </body> </html> 若 我 們 將 其 name 屬 性 都 取 相 同, 例 如, 本 例 均 取 gra 如 下 : <html> <body> <p><img name="gra" border="0" src="../g0.jpg" width="73" height="98">
113 <img name="gra" border="0" src="../g1.jpg" width="72" height="99"> <img name="gra" border="0" src="../g2.jpg" width="73" height="100"> <img name="gra" border="0" src="../g3.jpg" width="74" height="99"> <img name="gra" border="0" src="../g4.jpg" width="72" height="99"></p> </body> </html> 則 以 上 5 個 物 件 即 會 以 其 出 現 的 順 序 為 索 引, 分 別 是 gra[0] gra[1] gra[2] gra[3] gra[4] 請 看 以 下 範 例 說 明 範 例 2_6_3a 請 寫 一 網 頁, 可 以 每 次 發 5 張 樸 克 牌 執 行 結 果 程 式 列 印 <html> <script language="javascript"> var i,j; var d=new Array("g0.jpg","g1.jpg","g2.jpg","g3.jpg","g4.jpg","g5.jpg","g6.jpg","g7.jpg","g8.jpg","g9.jpg", ", "g10.jpg","g11.jpg","g12.jpg","g13.jpg","g14.jpg","g15.jpg","g16.jpg","g17.jpg","g18.jpg","g19.jpg ", "g20.jpg","g21.jpg","g22.jpg","g23.jpg","g24.jpg","g25.jpg","g26.jpg","g27.jpg","g28.jpg","g29.jpg ", "g30.jpg","g31.jpg","g32.jpg","g33.jpg","g34.jpg","g35.jpg","g36.jpg","g37.jpg","g38.jpg","g39.jpg ", "g40.jpg","g41.jpg","g42.jpg","g43.jpg","g44.jpg","g45.jpg","g46.jpg","g47.jpg","g48.jpg","g49.jpg "g50.jpg","g51.jpg") ;
114 function aa() { var r; for (i=0;i<=4;i++) { r=math.floor (Math.random ()*52); gra[i].src="../"+d[r];// 表 示 圖 檔 放 在 程 式 所 在 資 料 夾 的 上 一 層 </script> <body> <img name="gra" border="0" src="../g0.jpg" width="73" height="98"> <img name="gra" border="0" src="../g1.jpg" width="72" height="99"> <img name="gra" border="0" src="../g2.jpg" width="73" height="100"> <img name="gra" border="0" src="../g3.jpg" width="74" height="99"> <img name="gra" border="0" src="../g4.jpg" width="72" height="99"> <form method="post" action="--webbot-self--"> <p><input type="button" value=" 換 牌 " name="b1" onclick ="aa()" ></p> </form> </body> </html> 自 我 練 習 1 請 設 計 一 網 頁, 可 以 每 次 展 示 5 張 照 片, 並 可 由 使 用 者 每 按 鈕 一 次 更 換 5 張 照 片 2 同 上 範 例, 可 以 自 動 每 秒 輪 轉 五 張 照 片 2_6_4 實 例 探 討 I 泡 沫 排 序 法 在 一 數 列 當 中, 從 第 一 筆 資 料 逐 一 往 後 兩 兩 給 予 比 較, 若 前 者 大 於 後 者, 則 兩 者 交 換 ( 本 例 由 小 而 大 排 序, 若 由 大 而 小 排 序, 則 當 前 者 小 於 後 者 時, 兩 者 交 換 ), 每 次 的 比 較 與 交 換 的 結 果 均 可 得 該 數 列 的 最 大 值 於 數 列 最 右 邊 ( 或 末 端 ) 所 以, 若 有 N 筆 資 料 進 行 排 序, 則 應 作 N-1 階 次 的 逐 一 比 較, 且 每 階 次 的 逐 一 比 較 範 圍 均 逐 漸 減 一 個, 此 即 為 泡 沫 排 序 法 (Bubble Sort) 若 有 五 筆 資 料, 則 其 排 序 過 程 如 下 : 1. 將 資 料 由 左 而 右 排 列 如 下 :
115 1. 共 有 五 筆 資 料 n=5, 共 需 進 行 四 個 階 次 的 逐 一 比 較, 每 一 階 次 都 能 將 該 階 次 的 最 大 值 移 至 最 右 邊, 四 個 階 次 的 逐 一 比 較 細 節 說 明 如 下 : (1) 從 第 一 筆 到 第 五 筆 兩 兩 比 較, 若 前 者 大 於 後 者 則 兩 者 交 換 如 下, 得 最 大 值 9 於 最 右 邊 9 已 是 最 大 值, 待 會 兒 不 必 參 與 比 較, 所 以 下 一 次 只 要 從 第 一 筆 比 較 至 第 四 筆 即 可 ( 索 引 從 零 開 始 ) i=0 比 較 前 j=0, 1, 2, 3 比 較 次 數 比 較 四 次 比 較 後 (2) 從 第 一 筆 到 第 四 筆 兩 兩 比 較, 若 前 者 大 於 後 者, 則 兩 者 交 換 如 下, 得 次 大 值 8 於 右 邊 8 與 9 已 達 定 位, 待 會 兒 不 用 參 與 比 較 i=1 比 較 前 j=0,1, 2 比 較 次 數 比 較 三 次 比 較 後 (3) 從 第 一 筆 資 料 到 第 三 筆 資 料 兩 兩 比 較, 若 前 者 大 於 後 者 則 兩 者 交 換 如 下, 得 第 三 大 值 7 於 右 邊 i=2 比 較 前 j=0, 1 比 較 次 數 比 較 二 次 比 較 後 (4) 從 第 一 筆 資 料 到 第 二 筆 資 料 兩 兩 比 較, 若 前 者 大 於 後 者 則 兩 者 交 換 如 下, 排 序 完 成 i=3 比 較 前 j=0 比 較 次 數 比 較 一 次 比 較 後 若 有 N 筆 資 料, 則 應 作 N-1 階 次 的 比 較 與 交 換, 每 階 次 的 比 較 範 圍 均 逐 漸 縮 小 [N-1, N-2,...,1], 其 比 較 次 數 總 計 約 為 [N*N]/2, 資 料 交 換 次 數 約 為 [N*N]/4 3. 以 上 每 次 均 找 到 一 個 最 大 值 於 右 邊, 若 將 該 次 搜 尋 所 得 最 大 值 與 右 邊 位 置 交 換, 則 可 大 大 減 少 資 料 交 換 次 數, 且 其 比 較 次 數 不 變 仍 為 [N*N]/2, 但 其 資 料 交 換 次 數 總 計 約 為 N, 請 讀 者 自 行 練 習 範 例 2_6_4a
116 示 範 泡 沫 排 序 法 執 行 結 果 程 式 列 印 <script language=javascript> var a=new Array(8,9,7,1,2); var i,j,t,n=5; for (i=0;i<=n-2;i++) { for (j=0;j<=(n-1)-i;j++) { if (a[j]<a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; for (i=0;i<=n-1;i++) document.write (a[i])+" "; </script> 程 式 說 明 本 例 採 用 泡 沫 排 序 法, 其 演 算 法 如 下 : 1. 設 有 n 筆 資 料 進 行 排 序 2. 應 進 行 n-1 階 次 尋 找 最 大 值, 並 將 最 大 值 移 至 最 右 邊 但 是 陣 列 索 引 從 0 開 始, 所 以 for (i=0;i<=n-2;i++) 3. 每 一 階 次 均 應 逐 次 尋 找 最 大 值, 並 移 至 右 邊, 且 每 階 次 的 比 較 次 數 j 與 外 迴 圈 i 的 關 係 為 i+j=n-1, 所 以 內 迴 圈 的 比 較 次 數 j 為 n-1-i for (j=0;j<=(n-1)-i;j++) 4. 兩 兩 逐 一 比 較, 若 前 者 大 於 後 者 則 兩 者 交 換 if (a[j]<a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t; [ 自 我 練 習 ]
117 1. 同 上 範 例, 但 每 階 次 均 尋 找 一 個 最 大 值, 且 逐 次 與 最 大 值 交 換 即 可 2 請 將 範 例 2_6_2b 的 輸 出 由 大 而 小 排 序 輸 出 I 計 數 排 序 法 前 面 的 泡 沫 排 序 法 是 採 用 兩 者 比 較 並 交 換, 達 到 由 小 而 大 或 由 大 而 小 排 列 的 效 果, 不 過 本 節 的 計 數 排 序 法 則 不 移 動 資 料, 但 增 加 一 個 名 次 欄 位, 並 依 照 分 數 的 高 低, 計 算 此 欄 位 的 值 為 了 充 份 理 解 計 數 排 序 法 的 原 理, 你 先 假 想 一 個 N 位 學 生 的 教 室 裡, 每 人 均 舉 著 自 己 的 分 數, 每 一 學 生 如 何 知 道 自 己 是 第 幾 名 呢? 有 一 個 辦 法 就 是 每 個 人 均 數 一 數 分 數 比 自 己 高 的 人 數 再 加 一, 就 是 自 己 的 名 次, 但 其 比 較 次 數 還 是 N*N, 所 以 若 令 他 們 排 成 一 排, 由 第 一 個 逐 一 往 右 比 較, 且 分 數 低 的, 令 其 名 次 加 1, 則 第 二 個 人 之 後 就 不 必 再 與 第 一 個 比 較 同 理, 第 二 個 也 是 往 右 比 較 即 可, 不 必 與 第 一 二 個 人 比 較, 所 以 其 總 比 較 次 數 約 為 [N*N]/2, 此 即 為 計 數 排 序 法 若 有 數 列 資 料 則 其 演 算 過 程 如 下 : 1. 先 假 設 每 人 均 為 第 一 名 分 數 名 次 * * * * * 2. 共 有 五 筆 資 料, 分 別 以 前 四 筆 資 料 為 基 準 往 右 比 較 : (1) 以 第 一 筆 資 料 8 為 基 準 往 右 ( 第 二 三 四 五 筆 ) 比 較, 分 數 低 的 名 次 加 一, 則 其 名 次 如 下, 第 一 筆 資 料 8 確 定 為 第 二 名, 下 次 不 用 再 參 與 比 較 分 數 名 次 ** ** * ** ** (2) 以 第 二 筆 資 料 2 為 基 準 往 右 ( 第 三 四 五 筆 ) 比 較, 分 數 低 的 名 次 加 一, 則 其 名 次 如 下, 第 二 筆 資 料 2 確 定 為 第 四 名, 下 次 不 用 再 參 與 比 較 分 數 名 次 ** **** * ** *** (3) 以 第 三 筆 資 料 9 為 基 準 往 右 ( 第 四 五 筆 ) 比 較, 分 數 低 的 名 次 加 一, 則 其 名 次 如 下, 第 三 筆 資 料 9 確 定 為 第 一 名, 下 次 不 用 參 與 比 較 分 數 名 次 ** **** * *** **** (4) 以 第 四 筆 資 料 7 為 基 準 往 右 ( 第 五 筆 ) 比 較, 分 數 低 的 名 次 加 一, 則 其 名 次 如 下, 全 部 名 次 確 定, 排 序 完 成
118 分 數 名 次 ** **** * *** ***** 3. 若 有 N 筆 資 料, 則 須 作 N-1 階 次 的 比 較, 每 階 次 的 比 較 次 數 均 逐 漸 縮 小, 分 別 為 N-1, N-2,...,1, 故 其 總 比 較 次 數 約 為 [N*N]/2 範 例 2_6_4b 示 範 計 數 排 序 法 執 行 結 果 程 式 列 印 <script language=javascript> var a=new Array(8,2,9,7,1); var b=new Array(5) var i,j,t,n=5; // 先 設 定 大 家 都 是 第 一 名 for (i=0;i<=n-1;i++) b[i]=1; // 分 數 (a[]) 少 的 人, 名 次 (b[]) 加 一 for (i=0;i<=n-2;i++) for (j=i+1;j<=(n-1);j++) if (a[i]>a[j]) b[j]++; else b[i]++; // 輸 出 分 數 for (i=0;i<=n-1;i++) document.write (a[i]+" "); document.write ("<br>"); // 輸 出 名 次 for (i=0;i<=n-1;i++) document.write (b[i]+" "); </script>
119 自 我 練 習 1 請 將 範 例 2_6_2b, 增 加 名 次 欄 位, 並 協 助 計 算 每 人 的 名 次, 輸 出 則 由 座 號 由 小 而 大 輸 出 I 線 性 搜 尋 法 於 序 列 中, 從 頭 到 尾 逐 一 比 對 搜 尋 的 方 式, 稱 為 線 性 搜 尋 法 例 如, 一 個 班 級 有 40 人, 您 要 找 一 個 洪 國 勝 " 的 人, 那 您 就 逐 一 從 1 號 2 號 3 號 開 始 核 對, 直 到 找 到 洪 國 勝 " 為 止, 請 看 以 下 範 例 範 例 2_6_4c 假 設 有 員 工 電 話 如 下, 請 以 陣 列 儲 存, 並 能 輸 入 姓 名 而 查 得 電 話 號 碼 編 號 姓 名 電 話 號 碼 1 aa hh cc gg ff ii ee bb jj dd kk ll 操 作 步 驟 1 請 將 以 上 資 料 以 陣 列 儲 存 2 輸 入 姓 名 3 使 用 迴 圈 逐 一 比 對 執 行 結 果 1. 如 輸 入 hh 傳 回 aa 的 電 話 號 碼 2. 如 輸 入 ww 則 傳 回 查 無 此 人 " 程 式 列 印 <html> <head><title></title></head>
120 <body > <form name="myform"> 輸 入 姓 名 <input type="text" name="t1" value="hh"><br> 電 話 號 碼 <input type="text" name="t2"><br> <input type="button" value=" 查 詢 " onclick="aa()"> </form> </body> <script language="javascript"> var a=new Array (["",""],[ "aa", " "],[ "hh", " "], ["cc", " "],["gg", " "], ["ff", " "], ["ii", " "], ["ee", " "],[ "bb", " "], ["jj", " "], ["dd", " "],["kk", " "],["ll", " "]); function aa(){ var found=false; var txt=myform.t1.value; for(i=1;i<=12;i++){ if (a[i][0]==txt){ found=true; break; if(found){ myform.t2.value= a[i][1]; else{ myform.t2.value= " 查 無 此 人 " ; </script> </html> I 二 分 搜 尋 法 前 面 的 線 性 搜 尋 法, 是 採 用 逐 一 訪 視 的 方 式 搜 尋 所 要 的 資 料, 但 當 資 料 量 龐 大 時, 就 顯 得 毫 無 效 率 舉 例 而 言, 資 料 數 量 若 有 1000 筆, 則 採 用 線 性 搜 尋 法 平 均 搜 尋 次 數 為 500 次, 但 若 採 用 本 節 所 討 論 的 二 分 搜 尋 法, 則 至 多 不 會 超 過 10 次 (2 10 =1024) 首 先, 先 將 待 搜 尋 資 料 排 序, 然 後 將 待 搜 尋 的 關 鍵 資 料 與 已 排 序 的 中 間 值 比 較, 若 中 間 值 比 待 搜 尋 資 料 大, 則 待 搜 尋 資 料 必 在 此 中 間 值 的 前 面, 並 調 整 搜 尋 上 限 範 圍 ; 反 之 則 在 前 面, 並 調 整 搜 尋 下 限 範 圍, 此 時 搜 尋 範 圍 已 經 縮 小 一 半 也 就 是 二 分 搜 尋 法 每 次 可 將 搜 尋 範 圍 減 半, 如 此 對 於 資 料 量 龐 大
121 時, 可 提 高 搜 尋 效 率 請 看 以 下 範 例 說 明 範 例 2_6_4d 同 上 範 例, 但 使 用 二 分 搜 尋 法 執 行 結 果 程 式 列 印 <html> <body > <form name="myform"> 輸 入 姓 名 <input type="text" name="t1" value="cc"><br> 電 話 號 碼 <input type="text" name="t2"><br> <input type="button" value=" 查 詢 " onclick="aa()"> </form> </body> <script language="javascript"> var a=new Array (["",""],[ "aa", " "],[ "hh", " "], ["cc", " "],["gg", " "], ["ff", " "], ["ii", " "], ["ee", " "],[ "bb", " "], ["jj", " "], ["dd", " "],["kk", " "],["ll", " "]); var n=12; //sort for(i=1;i<=n-1;i++){ for(j=1;j<=n-i;j++){ if (a[j][0]>a[j+1][0]){ t = a[j][0]; a[j][0]=a[j+1][0];a[j+1][0] = t; t = a[j][1]; a[j][1]=a[j+1][1];a[j+1][1] = t; function aa(){
122 var found=false; name=myform.t1.value; l = 1; u = 12; while(l<=u){ m = Math.floor((l + u)/2); if (a[m][0]==name){ found = true; break; else{ if(a[m][0]> name){ u = m - 1; else{ l = m + 1; // 只 要 下 限 小 於 上 限 即 可 重 複 迴 圈 if(found){ myform.t2.value= a[i][1]; else{ myform.t2.value= " 查 無 此 人 " ; </script> </html> 2_6_5 陣 列 方 法 前 面 已 經 介 紹 許 多 陣 列 的 操 作, 本 節 則 要 介 紹 一 些 陣 列 所 提 供 的 方 法, 以 提 升 程 式 撰 寫 效 率 I length length 屬 性 可 傳 回 陣 列 的 長 度 例 如, var a=new Array(2,8,4,7,3); document.write (a.length ); 其 結 果 是 5 I tostring() tostring() 方 法 可 將 陣 列 內 容 轉 為 以 逗 號 (,) 隔 開 的 字 串 例 如, var a=new Array(2,8,4,7,3); document.write (a.tostring () );
123 的 結 果 是 2,8,4,7,3 I sort sort() 方 法 可 將 陣 列 內 容 排 序 例 如, var a=new Array(2,8,4,7,3); a.sort(); document.write (a.tostring () ); 的 結 果 是 2,3,4,7,8 I reverse() reverse() 方 法 可 將 陣 列 內 容 反 轉 例 如, var a=new Array(2,8,4,7,3); a.sort(); a.reverse (); document.write (a.tostring ()); 的 結 果 是 8,7,4,3,2 習 題 1. 設 某 班 有 5 人, 每 人 有 3 科 成 績, 其 所 佔 學 分 分 別 為 6 4 及 3, 如 下 表 所 示, 請 以 陣 列 的 方 式 初 設 姓 名 座 號 及 成 績, 並 計 算 其 學 分 平 均, 輸 出 請 以 表 格 的 方 式, 按 照 學 分 平 均 由 高 而 低 排 列 座 號 姓 名 國 文 6 英 文 4 數 學 3 學 分 平 均 名 次 1 aa bb cc dd ee 不 及 格 人 數 2. 同 上 題, 增 加 名 次 欄 位 統 計 各 科 不 及 格 人 數 及 每 人 不 及 格 科 數, 且 按 照 原 欄 位 順 序 輸 出 3. 假 設 T 分 數 的 轉 換 公 式 如 下 :
124 n (1) 求 平 均 d = ( Ai) / n (Ai 為 每 人 成 績,n 為 全 班 人 數 ) i= 1 (2) 求 標 準 差 sd = n ( Ai d) i= 1 n 2 (d 為 平 均 ) Ai d (3) 求 每 人 Z 分 數 Zi = (Zi 為 每 人 的 Z 分 數 ) sd (4) 求 每 人 T 分 數 Ti = * Zi (Ti 為 每 人 的 T 分 數 ) 請 產 生 100 個 1 至 100 的 亂 數, 其 平 均 分 數 為 何? 請 依 以 上 程 序 將 每 人 成 績 轉 為 T 分 數, 列 印 如 下, 並 觀 察 名 次 50 的 人 平 均 為 何? 又 T 分 數 與 名 次 的 關 係 為 何? 座 號 原 始 成 績 T 分 數 名 次 請 寫 一 程 式, 可 以 輸 入 姓 名, 而 查 得 班 上 同 學 的 電 話, 亦 可 輸 入 電 話 號 碼 而 查 得 其 姓 名 ( 提 示 : 使 用 陣 列 預 儲 姓 名 與 電 話 ) 4 請 設 計 一 網 頁, 滿 足 以 下 條 件 A 某 次 考 試 共 10 題, 假 設 正 確 答 案 如 下, 請 用 陣 列 儲 存 : 1,4,2,4,2,3,3,3,1,1 B 某 班 共 5 人, 其 答 案 如 下, 請 用 陣 列 儲 存, 請 核 對 其 成 績 C 請 統 計 每 人 分 數 D 統 計 以 下 區 間 的 人 數 區 間 人 數 90~10 80~89 79~79 60~69 50~59 0~49
125 5 試 寫 一 魔 術 矩 陣 程 式, 例 如 輸 入 3 得 下 圖 左, 輸 入 5 得 下 圖 右 ( 請 用 表 格 輸 出 ) 提 示 : 本 例 演 算 分 析 如 下 : 規 則 1: 在 第 一 列 (Row) 中 間 行 (Column) 的 位 置 設 定 值 為 1, 然 後 按 照 其 相 鄰 的 東 北 方 向 位 置 擺 進 下 一 個 數 值, 如 下 圖 1 規 則 2: 根 據 規 則 1 推 算 的 位 置, 若 該 位 置 超 過 了 列 的 界 限, 則 列 的 位 置 為 最 大 列 的 相 對 應 位 置 如 下 圖 的 2, 其 列 已 超 界, 移 至 最 下 面 一 列 1 規 則 3: 根 據 規 則 1 推 算 的 位 置, 若 該 位 置 超 過 了 行 的 界 限, 則 其 位 置 為 最 小 行 的 相 對 應 位 置 如 下 圖 的 3, 其 行 已 超 界, 所 以 移 至 最 左 邊 規 則 4: 根 據 規 則 1, 推 算 位 置 的 所 在, 已 被 其 他 值 所 佔, 則 以 原 位 置 為 基 準, 將 下 一 個 數 字 擺 於 原 位 置 的 下 一 列 的 相 同 行 之 位 置 如 下 圖 的 4, 原 位 置 已 被 1 佔 去, 所 以 擺 在 3 的 下 面 2
126 一 列 規 則 5: 當 行 與 列 都 超 過 界, 則 採 用 規 則 2 和 規 則 3 的 綜 合 法 則, 但 因 該 位 置 已 被 佔 有, 故 再 以 規 則 4 處 理 之 如 下 圖 左 的 7 最 後 結 果 如 下 圖 _7 方 法 在 程 式 設 計 時, 常 會 遇 到 某 些 程 式 片 段 需 要 在 同 一 程 式 重 覆 出 現 許 多 次, 如 果 這 些 程 式 片 段 都 分 別 在 每 個 地 方 寫 一 次, 那 是 一 件 非 常 浪 費 時 間 的 事, 且 會 使 程 式 變 得 冗 長 而 不 易 閱 讀 更 糟 的 是, 萬 一 要 調 整 此 程 式 片 段 的 部 份 功 能, 更 要 至 不 同 的 地 方 修 改, 造 成 程 式 維 護 的 困 難, 此 時 可 透 過 本 章 所 要 介 紹 的 方 法 " 解 決 以 上 困 難 方 法 的 使 用 方 式 為 將 常 用 的 程 式 片 段 賦 予 一 個 名 稱, 此 稱 為 方 法 名 稱, 寫 在 程 式 的 最 前 面 或 最 後 面, 當 程 式 設 計 者 需 要 使 用 此 程 式 片 段 時, 只 要 鍵 入 此 方 法 名 稱, 即 可 執 行 此 程 式 片 段 2_7_1 自 訂 方 法 自 訂 方 法 的 語 法 如 下 : function 方 法 名 稱 ( 參 數 列 ) { 敘 述 區 塊 ; [return 傳 回 值 ];
127 m! 例 如, 若 要 計 算 C m = 的 組 合 運 算, 因 為 階 乘 的 運 算 共 要 3 次, 此 時 可 事 先 將 階 乘 n n!*( m n)! (m!) 運 算 寫 成 方 法 如 下 : function sum(p) { var s=1,i; for (i=1;i<=p;i++) s=s*i; return s; 則 於 主 程 式 即 可 使 用 sum( 參 數 ), 執 行 此 方 法 例 如, m1=sum(3); 則 m1 即 可 得 6 範 例 2_7_1a 計 算 執 行 結 果 C m n m! = 的 組 合 運 算, 但 使 用 function n!*( m n)! 程 式 列 印 <html> <head> <script language =javascript > function sum(p) { var s=1,i; for (i=1;i<=p;i++) s=s*i; return s;
128 function aa() { var m,n,a; var m1,n1,mn; // 輸 入 m=eval(myform.t1.value); n=eval(myform.t2.value); // 處 理 m1=sum(m); n1=sum(n); mn=sum(m-n); a=m1/(n1*mn); // 輸 出 myform.t3.value=a; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p><input type="text" name="t1" size="10" value=4></p> <p><input type="text" name="t2" size="10" value=2></p> <p><input type="button" value=" 執 行 " name="b1" onclick="aa()"></p> <p><input type="text" name="t3" size="20"></p> </form> </body> </html> [ 自 我 練 習 ] 1 f(x)=2*x 2 +3x+1, 請 寫 一 程 式, 可 以 將 f(x) 寫 成 Function, 且 f(0)=1 f(1)=6 2 f(x,y)=3x 2 +xy-6y 2, 請 寫 一 程 式, 可 以 將 f(x,y) 寫 成 function, 且 f(0,1)=-4 f(1,1)=-2 3 請 寫 一 個 程 式, 使 用 function, 計 算 1!+2!+3!+4!+5! 之 值 4 請 寫 一 個 程 式, 使 用 function, 計 算 下 表 借 貸 金 額 與 年 利 率 所 對 應 每 月 應 還 的 利 息 2% 3% 4% 5% 100 萬 200 萬 300 萬 400 萬
129 範 例 2_7_1b 請 使 用 function 完 成 下 表 借 貸 1 元 的 複 利 計 算 每 年 複 每 月 複 利 1 每 日 複 利 1 次 每 時 複 利 1 次 每 分 複 利 1 次 利 1 次 次 公 (1+1)^1 (1+1/12)^12 (1+1/365)^365 (1+/(365*24))^(365*24) (1+1/(365*24*60))^(365*24*60) 式 是 否 可 回 答, 當 每 秒 都 在 複 利 時, 則 其 本 利 和 會 趨 近 於 何 值? 執 行 結 果 程 式 列 印 <html> <head><title></title></head> <body onload="aa()"> </body> <script language="javascript"> function aa(){ var a=[]; a[1] = 1; a[2] = 12; a[3] = 365; a[4] = 365 * 24; a[5] = ; var b= new Array (""," 每 年 複 利 一 次 : "," 每 月 複 利 一 次 :"," 每 時 複 利 一 次 :"," 每 分 複 利 一 次 :"," 每 秒 複 利 一 次 :"); for(i=1;i<6;i++){ c = sum(a[i]); document.write( b[i]+c + "<br>" ); function sum(p){ sum2 = Math.pow( (1 + 1 / p), p); return sum2 ; </script>
130 </html> 遞 迴 所 謂 遞 迴 就 是 方 法 自 己 呼 叫 自 己 在 程 式 設 計 的 領 域 裏, 有 許 多 情 況 使 用 遞 迴 可 以 減 輕 程 式 設 計 的 負 擔, 並 增 加 程 式 的 可 讀 性, 就 如 同 人 類 日 常 思 考 模 式 常 有 重 覆 某 一 件 事 直 到 什 麼 條 件 時 結 束 所 以 遞 迴 也 是 一 種 特 殊 的 迴 圈 敘 述, 尤 其 數 值 分 析 的 問 題 用 得 最 多 範 例 2_7_1c 若 f(n)=1 if n=1 =n+f(n-1) if n>1 請 寫 一 程 式 計 算 f(n) 之 值 程 式 列 印 <html> <body> <form name="myform"> <input type="text" name="t1"><br> <input type="button" value=" 顯 示 " onclick="aa()"> </form> </body> <script language="javascript"> function aa(){ d = f(4); myform.t1.value=d; function f(m){ if (m==1){ return 1; else{ return (m+f(m-1)); </script> </html>
131 程 式 說 明 以 d=f(4) 解 說 m=4 執 行 else f=4+f(3) 繼 續 呼 叫 f 方 法 m=3 執 行 else f=4+3+f(2) 繼 續 呼 叫 f 方 法 m=2 執 行 else f=4+3+2+f(1) 繼 續 呼 叫 f 方 法 m=1 執 行 return 1; 已 經 可 得 1, 此 時 f= , 而 且 可 離 開 f 方 法 自 我 練 習 請 以 遞 迴 法 求 n!, 且 n 可 任 意 輸 入 範 例 2_7_1d 費 氏 數 列 的 定 義 如 下 : f(n)=1 if n<3 f(n)=f(n-2)+f(n-1) if n >=3 請 以 以 遞 迴 法 求 費 式 數 列 的 第 n 項 程 式 列 印 <html> <head><title></title></head> <body onload="aa()"> </body> <script language="javascript"> function aa(){ k=number(prompt(" 輸 入 欲 求 費 式 數 列 第 幾 項 ",5)); d=fib(k); document.write( "f("+k+")="+d); function fib(k){ if (k<=2){ return 1; else{ return fib(k-1)+fib(k-2); </script> </html> 程 式 解 說 本 例 以 d=fib(5) 解 說 如 下 : fib(5)=fib(4)+fib(3) =fib(3)+fib(2)+fib(3)
132 =fib(2)+fib(1)+1+fib(3) =1+1+1+fib(2)+fib(1) = ( 已 無 方 法 並 結 束 遞 迴 ) =5 範 例 2_7_1e 試 以 遞 迴 法 求 輸 入 兩 數 的 最 大 公 因 數 (Gcd) 提 示 :gcd(a,b)= a if b=0 =gcd(b,a % b) if b >0 輸 出 結 果 程 式 列 印 <html> <body> <form name="myform"> 輸 入 a <input type="text" name="t1" value=21><br> 輸 入 b <input type="text" name="t2" value=12><br> GCD = <input type="text" name="t3" size="20"><br> <input type="button" value=" 求 解 GCD " onclick="aa()"> </form> </body> <script language="javascript"> function aa(){ var t,a,b; a = Number(myform.t1.value); b = Number(myform.t2.value); if (b > a){ t = a; a = b; b = t; // 交 換 c = gcd(a,b); myform.t3.value = c; function gcd(a,b){ if (b==0){ return a;
133 else{ return gcd(b,a%b); </script> </html> I 參 數 列 與 傳 回 值 JavaScript 對 於 參 數 的 傳 遞 有 兩 種 方 式, 分 別 是 傳 值 呼 叫 (Call By Value) 與 傳 址 呼 叫 (Call By Reference), 分 別 說 明 如 下 : II 傳 值 呼 叫 如 果 參 數 的 資 料 型 態 是 數 值 字 串 或 布 林 值 時 就 採 用 傳 值 呼 叫, 傳 值 呼 叫 只 將 來 原 變 數 的 值 傳 給 方 法 其 次, 方 法 中 的 目 的 變 數 若 有 任 何 變 動 並 不 會 回 傳 來 源 變 數 例 如, 若 有 方 法 如 下, 此 方 法 的 目 的 變 數 已 經 被 修 改, 但 是 其 值 並 不 會 回 傳 主 程 式 function aa(a,b) { a=3;b="kk"; 其 次, 其 主 程 式 如 下 : var p=2,q="dd"; aa(p,q); document.write (p,q); 則 p 與 q 的 結 果 還 是 2 與 dd II 傳 址 呼 叫 如 果 參 數 的 資 料 型 態 是 陣 列 或 物 件 時 就 採 用 傳 址 呼 叫, 傳 址 呼 叫 將 來 源 變 數 的 值 傳 給 方 法 其 次, 方 法 中 的 目 的 變 數 若 有 任 何 改 變 都 會 回 傳 來 源 變 數 例 如, 若 有 方 法 如 下, 此 方 法 的 目 的 變 數 已 經 被 修 改, 則 此 修 改 值 將 會 回 傳 主 程 式 function bb(c){ for ( i=0 ;i<=3;i++) c[i]=c[i]*2; 其 次, 其 主 程 式 如 下 : var r=new Array(1,2,3,4); bb(r); document.write (r.tostring()); 則 因 為 r 的 型 態 是 陣 列, 不 僅 可 將 其 值 傳 給 方 法, 方 法 中 的 改 變 值 亦 回 傳 主 程 式 所 以 其 值
134 是 2,4,6,8 範 例 2_7_1f 示 範 以 上 參 數 列 的 傳 遞 執 行 結 果 程 式 列 印 <html> <body> <script language =javascript > function aa(a,b) { a=3;b="kk"; function bb(c) { for ( i=0 ;i<=3;i++) c[i]=c[i]*2; var p=2,q="dd"; aa(p,q); document.write (p,q); document.write ("<br>"); var r=new Array(1,2,3,4); bb(r); document.write (r.tostring()); </script> </body> </html> 自 我 練 習 1 請 以 遞 迴 重 做 二 分 猜 值 法, 求 某 數 的 平 方 根 2 請 以 遞 迴 重 做 二 分 猜 值 法, 求 某 數 的 立 方 根 3 請 以 遞 迴 重 做 除 法, 例 如 8/3 等 於 2 於 2 ( 被 除 數 一 直 減 去 除 數 ) 2_7_2 數 值 處 理 JavaScript 關 於 數 值 的 處 理 提 供 Math 及 Number 等 物 件, 請 看 以 下 說 明
135 I Math Math 物 件 提 供 許 多 方 法, 可 協 助 處 理 一 些 數 值 運 算, 請 看 以 下 說 明 II abs(x) abs(x) 方 法 可 傳 回 x 的 絕 對 值 例 如, 以 下 敘 述 傳 回 3 document.write(math.abs(-3)); II floor(x) floor(x) 方 法 可 傳 回 小 於 等 於 x 的 最 大 整 數 例 如, 以 下 敘 述 傳 回 3 Math.floor(3.2); 以 下 敘 述 則 傳 回 -4 Math.floor(-3.2); II ceil(x) ceil(x) 方 法 可 可 傳 回 大 於 等 於 x 的 最 小 整 數 例 如, 以 下 敘 述 傳 回 4 Math.ceil(3.4); 以 下 敘 述 則 傳 回 -3 Math.ceil(-3.4); II round(x) round(x) 方 法 可 傳 回 四 捨 五 入 的 結 果 例 如, 以 下 敘 述 傳 回 4 Math.round(3.5); II random() random() 方 法 可 傳 回 大 於 等 於 0 且 小 於 1 的 實 數 亂 數, 若 要 得 到 整 數 亂 數, 則 要 少 許 運 算 例 如, 以 下 敘 述 可 傳 回 1 到 6 之 間 的 整 數 亂 數 Math.floor(Math.random()*6)+1; II sqrt(x) sqrt(x) 可 傳 回 x 的 平 方 根 例 如, 以 下 敘 述 傳 回 2 Math.sqrt(4); II pow(m,n) pow(m,n) 可 傳 回 m 的 n 次 方 例 如, 以 下 敘 述 傳 回 8 Math.pow(2,3); 以 下 敘 述 則 傳 回 2 Math.pow(8,1/3);
136 II max(m,n) max(m,n) 傳 回 m 與 n 的 極 大 值 例 如, 以 下 敘 述 傳 回 4 Math.max(3,4); II min(m,n) min(m,n) 傳 回 m 與 n 的 極 小 值 例 如, 以 下 敘 述 傳 回 3 Math.min(3,4); I Number 輸 出 數 值 資 料 時, 若 要 控 制 其 輸 出 格 式, 例 如, 轉 為 字 串 小 數 點 後 面 取 幾 位 數 或 科 學 符 號 表 示 時, 此 時 可 使 用 Number 物 件 所 提 供 的 方 法 以 下 將 介 紹 一 些 Number 物 件 常 用 的 方 法 II tostring() 將 數 值 轉 為 字 串 例 如, var x=2;var y=3; document.write(x+y+"<br>");//5 document.write(x.tostring()+y.tostring()); //23 II tofixed(m) tofixed(m) 可 控 制 小 數 點 後 面 取 幾 位 例 如, 以 下 敘 述 傳 回 小 數 點 後 面 取 兩 位, 所 以 結 果 是 var a= ; document.write(a.tofixed(2)+"<br>"); II toprecision(m) toprecision(m) 可 將 原 數 值 以 科 學 符 號 法 表 示, 且 有 效 位 數 m 位 例 如, 以 下 敘 述 有 效 位 數 取 3 位, 所 以 結 果 是 1.23e+4 var a= ; document.write(a.toprecision(3)+"<br>"); II toexponential(m) toexponential(m) 可 將 原 數 值 以 科 學 符 號 法 表 示, 且 小 數 部 分 取 m 位 例 如, 以 下 敘 述 小 數 部 分 取 2 位, 所 以 結 果 是 1.23e+4 var a= ; document.write(a.toexponential(2)+"<br>"); 範 例 2_7_2a 請 設 計 一 網 頁, 可 以 和 電 腦 比 賽 擲 兩 顆 骰 子, 並 可 累 計 勝 負 的 次 數 執 行 結 果
137 程 式 列 印 <html> <head> <script language =javascript > function aa(){ var a,b; var a1,a2; var b1,b2; var r; a1=1+math.floor(6*math.random());// 產 生 1 到 6 的 亂 數 a2=1+math.floor(6*math.random()); a=a1+a2; b1=1+math.floor(6*math.random()); b2=1+math.floor(6*math.random()); b=b1+b2; if (a> b) r="people win"; else if (a==b) r="equal"; else r="computer win"; myform.t1.value=a1.tostring()+" "+a2.tostring()+" "+a.tostring(); myform.t2.value=b1.tostring()+" "+b2.tostring()+" "+b.tostring(); myform.t3.value =r; </script> </head> <body> <form name ="myform" method="post" action="--webbot-self--"> <p> 擲 骰 子 遊 戲 </p>
138 <p><input type="button" value=" 確 定 " name="b1" onclick="aa()"> 人 <input type="text" name="t1" size="7"> 電 腦 <input type="text" name="t2" size="8"></p> <p> 結 果 <input type="text" name="t3" size="20"></p> <p> </p> </form> </body> </html> 範 例 2_7_2b 請 設 計 一 網 頁, 可 以 模 擬 樂 透 的 開 獎 與 對 獎 假 設 開 獎 號 碼 是 1 到 42 號, 請 使 用 7 個 文 字 方 塊 輸 出 開 獎 情 形, 其 次, 有 6 個 文 字 方 塊 可 輸 入 使 用 者 購 買 的 號 碼, 最 後 請 安 排 兩 個 按 鈕 分 別 是 開 獎 與 對 獎 執 行 結 果 程 式 列 印 <html> <head> <script language ="JavaScript" > // 開 獎 var b =new Array(6); var sn; function aa(){ var a =new Array(); var i,j; // 放 入 彩 球 for (i=0;i<=41;i++) a[i]=i+1;
139 // 滾 動 彩 球 for (i=0;i<=41;i++) { j=math.floor(42*math.random()); t=a[i];a[i]=a[j];a[j]=t; // 前 面 6 個 球 即 為 開 獎 號 碼, 第 七 球 是 特 別 號 for (i=0 ;i<=5;i++) b[i]=a[i]; sn=a[6];//special number b.sort(); myform.t1.value =b[0]; myform.t2.value =b[1]; myform.t3.value =b[2]; myform.t4.value =b[3]; myform.t5.value =b[4]; myform.t6.value =b[5]; myform.t7.value =sn;// 特 別 號 myform.t8.value =b[0]; myform.t9.value =b[1]; myform.t10.value =b[2]; myform.t11.value =b[3]; myform.t12.value =b[4]; myform.t13.value =b[5]; // 對 獎 function bb(){ var c =new Array(); var i,j; var special; var d=0; // 相 同 號 碼 個 數 var e=" 槓 龜 "; c[0]=eval(myform.t8.value); c[1]=eval(myform.t9.value); c[2]=eval(myform.t10.value); c[3]=eval(myform.t11.value); c[4]=eval(myform.t12.value); c[5]=eval(myform.t13.value); // 統 計 中 獎 球 數
140 for (i=0 ;i<=5;i++) for (j=0 ;j<=5;j++) if (b[i]==c[j]) d++; special=false; for (i=0 ;i<=5;i++) if (c[i]==sn) special=true; switch (d){ case 6: e=" 頭 獎 "; break; case 5: if (special){ e=" 貳 獎 "; break; else { e=" 參 獎 "; break; case 4: e=" 肆 獎 " ; break case 3: e=" 伍 獎 "; break; myform.t14.value =e; </script> </head> <body> <p> 樂 透 開 獎 與 對 獎 </p> <form name="myform" method="post" action="--webbot-self--"> <p><input type="button" value=" 開 獎 " name="b1" onclick="aa()"></p>
141 <p><input type="text" name="t1" size="5"><input type="text" name="t2" size="5"><input type="text" name="t3" size="6"><input type="text" name="t4" size="6"><input type="text" name="t5" size="6"><input type="text" name="t6" size="5"> 特 別 號 <input type="text" name="t7" size="6"></p> <p> 請 輸 入 您 的 號 碼 </p> <p><input type="text" name="t8" size="6"><input type="text" name="t9" size="5"><input type="text" name="t10" size="6"><input type="text" name="t11" size="5"><input type="text" name="t12" size="6"><input type="text" name="t13" size="6"></p> <p><input type="button" value=" 對 獎 " name="b2" onclick="bb()" > 結 果 是 <input type="text" name="t14" size="20"></p> </form><p> </p> </body> </html> 自 我 練 習 1 請 設 計 一 網 頁, 可 以 模 擬 樸 克 牌 的 洗 牌, 並 發 給 使 用 者 13 張 牌 其 次, 為 了 方 便 使 用 者 玩 13 支 的 遊 戲, 請 分 別 再 安 排 兩 個 按 鈕, 將 輸 出 方 式 分 為 不 分 花 色 與 分 花 色 排 序 輸 出 (PS: 本 例 共 需 3 個 按 鈕, 分 別 是 發 牌 不 分 花 色 排 序 分 花 色 排 序 ) 2 同 上 自 我 練 習, 但 可 將 此 牌 分 給 4 個 人, 並 可 依 以 下 方 式 顯 示 A 依 發 牌 順 序 顯 示 B 依 牌 面 大 小 顯 示 C 先 依 花 色, 再 依 排 面 大 小 顯 示 3 請 寫 一 程 式, 可 以 重 複 產 生 並 輸 出 0 到 99 的 亂 數, 直 到 有 數 字 重 複 時 停 止, 並 輸 出 亂 數 的 個 數 及 此 重 複 數 字 4 假 設 以 下 資 料 是 張 三 預 先 買 的 八 張 樂 透 彩 券 號 碼 : 編 號 C 請 以 二 維 陣 列 儲 存 以 上 資 料 D 開 獎 開 獎 的 方 式 有 兩 種, 分 別 是 手 工 鍵 入 開 獎 號 碼 與 電 腦 自 動 開 獎, 並 使 用 7 個 文 書
142 盒 輸 輸 出 開 獎 號 碼 E 請 核 對 每 張 彩 券 的 得 獎 情 形, 並 以 表 格 輸 出 結 果 2_7_3 字 串 處 理 在 程 式 的 撰 寫 過 程 中, 常 會 遭 遇 字 串 的 問 題 例 如, 字 串 轉 數 值 求 字 串 的 長 度 字 串 的 相 加 字 串 的 比 對 字 串 的 大 小 寫 轉 換 等, 以 上 這 些 問 題, 因 為 經 常 會 碰 到, 所 以 JavaScript 提 供 String 物 件, 內 含 許 多 字 串 處 理 方 法, 以 方 便 使 用 者 使 用, 本 節 的 重 點 即 是 介 紹 這 些 字 串 處 理 方 法 I String 物 件 String 物 件 的 常 用 方 法 如 下 : II eval() 將 字 串 格 式 轉 為 數 值 例 如, x1=eval(myform.t1.value); // myform.t1.value ="3" y1=eval(myform.t2.value);// myform.t1.value="4" myform.t3.value=x1+y1; // 結 果 是 7 結 果 是 7, 但 是 x1=myform.t1.value; // myform.t1.value ="3" y1=myform.t2.value;// myform.t1.value="4" myform.t3.value=x1+y1; // 結 果 是 34 結 果 是 34 II Number 將 字 串 格 式 轉 為 數 值, 其 功 能 同 eval II 字 串 連 結 運 算 子 字 串 連 結 運 算 子 為 +", 例 如, var s1="mary"; var s2="tom"; var s3=s1+s2; document.write(s3); 結 果 是 MaryTom II 文 字 修 飾 String 的 修 飾 文 字 的 常 用 方 法 如 下 表 : 方 法 名 稱 blod() 說 明 轉 為 粗 體
143 fontcolor( color ) 設 定 顏 色 fontsize(size) 設 定 字 型 大 小 italics() 轉 為 斜 體 字 strike() 加 上 刪 除 線 sub() 下 標 字 sup() 上 標 字 tolowercase() 轉 為 小 寫 touppercase() 轉 為 大 寫 例 如, var a=new String( Mary ); document.write (a.bold()); 或 var a= Mary ; document.write (a.bold()); 都 可 將 Mary 以 粗 體 輸 出 其 次, 以 上 字 串 輸 出 方 法 可 用 點 運 算 子 同 時 加 到 同 一 字 串, 例 如, 以 下 敘 述 同 時 設 定 字 體 大 小 顏 色 及 斜 體 var a="mary"; document.write (a.fontsize(6).fontcolor("blue").italics ()); II tostring() 將 數 值 或 時 間 格 式 轉 為 字 串 格 式 例 如, var x=2; var y=3; document.write(x+y); // 結 果 是 5 document.write(x.tostring()+y.tostring()); // 結 果 則 是 23 II length 字 串 長 度 屬 性 例 如, 以 下 敘 述 傳 回 4 var a="mary"; document.write(a.length); II charat(n) charat(n) 可 取 字 串 的 第 n 個 字 元, 字 串 索 引 從 0 開 始 例 如, 以 下 敘 述 傳 回 2 a="012345"; document.write (a.charat(2)); II match( string ) 字 串 比 對 方 法 若 包 含 預 比 對 的 字 串, 則 傳 回 該 字 串, 否 則 傳 回 null 例 如, 以 下 敘 述 的 結 果 是 is a="this is a book";
144 document.write (a.match("is")); 以 下 敘 述 的 結 果 則 是 null a="this is a book"; document.write (a.match("are")); II search( string ) 字 串 搜 尋 方 法 若 包 含 要 搜 尋 的 字 串, 則 傳 回 該 字 串 的 啟 始 位 置 ( 字 串 起 始 位 置 索 引 為 0), 否 則 傳 回 -1 例 如, 以 下 敘 述 的 結 果 是 8 a="this is a book"; document.write (a.search("a")); 以 下 敘 述 的 結 果 則 是 -1 a="this is a book"; document.write (a.search("are")); II replace( string1, string2 ) 將 找 到 的 string1 取 代 為 string2, 但 原 字 串 並 沒 有 改 變 例 如, a="this is a book "; b=a.replace("book","apple"); document.write(b); 的 輸 出 結 果 是 This is a apple 但 是 原 字 串 的 內 容 並 沒 有 改 變, 也 就 是 以 下 敘 述 的 結 果 還 是 This is a book document.write(a); II split(string) 字 串 分 割 方 法 將 原 字 串 以 string 為 分 割 依 據, 將 原 字 串 轉 為 一 個 Array 物 件 例 如, 以 下 敘 述 的 結 果 是 This 讀 者 可 自 行 據 此 研 究 英 翻 中 程 式, 應 用 範 例 請 看 範 例 2_10b a="this is a book" var b=a.split(" "); document.write(b[0]); II substr(index,length) 將 原 字 串 從 index 開 始, 取 length 長 度 的 字 元 例 如, 以 下 敘 述 的 結 果 是 BC ( 字 串 索 引 從 0 開 始 ) a="abcde" b=a.substr(1,2); document.write(b);
145 II substring(index1,index2) 取 出 index1 到 index2( 不 含 ) 之 間 的 子 字 串 例 如, 以 下 敘 述 的 結 果 是 BC ( 字 串 索 引 從 0 開 始 ) a="abcde" b=a.substring(1,3); document.write(b); II slice(index1,index2) 將 index1 之 前 ( 不 含 index1) 到 index2 之 後 ( 包 含 index2) 的 字 元 刪 除 例 如, 以 下 敘 述 的 結 果 是 BC ( 字 串 索 引 從 0 開 始 ) a="abcde"; b=a.slice(1,3); document.write(b); 範 例 2_7_3a 請 寫 一 程 式, 可 以 執 行 統 一 發 票 的 對 獎, 本 例 假 設 統 一 發 票 只 有 6 碼, 且 只 有 一 組 中 獎 號 碼 例 如, 1 後 面 6 個 號 碼 相 同, 中 頭 獎 2 後 面 5 個 號 碼 相 同, 中 二 獎 3 後 面 4 個 號 碼 相 同, 中 三 獎 4 後 面 3 個 號 碼 相 同, 中 四 獎 執 行 結 果 程 式 列 印 <html> <head> <script language ="JavaScript" > function aa(){ a=myform.t1.value; b=myform.t2.value; c=" 槓 龜 "; if (a==b)
146 c=" 頭 獎 "; else if (a.substring(1,6)==b.substring(1,6)) c=" 貳 獎 "; else if (a.substring(2,6)==b.substring(2,6)) c=" 參 獎 "; else if (a.substring(3,6)==b.substring(3,6)) c=" 肆 獎 "; myform.t3.value=c; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p> 統 一 發 票 頭 獎 號 碼 <input type="text" name="t1" size="20" value="012345"></p> <p> 輸 入 您 的 發 票 號 碼 <input type="text" name="t2" size="20" value="012345"></p> <p><input type="button" value=" 對 獎 " name="b1" onafterupdate onclick="aa()"> 結 果 是 : <input type="text" name="t3" size="20"></p> </form><p></p> </body> </html> 自 我 練 習 1 同 上 範 例, 但 是 頭 獎 號 碼 有 5 組 範 例 3_7_3b 請 寫 一 程 式, 可 以 核 對 兩 個 字 串 相 同 的 程 度, 數 字 與 位 置 相 同 定 義 為 A, 數 字 相 同, 位 置 不 同 定 義 為 B 例 如, 字 串 1 字 串 2 比 對 結 果 A0B A2B A4B 執 行 結 果
147 程 式 列 印 <html> <head> <script language ="JavaScript" > function aa(){ c=myform.t1.value; d=myform.t2.value; r=" 槓 龜 "; a=0; b=0; for (i=0 ;i<=3;i++){ for (j=0;j<=3;j++) { c1=c.substr(i,1); d1=c.substr(j,1); if (c1==d1) b++; for (i=0 ;i<=3;i++){ c1=c.substr(i,1); d1=d.substr(i,1); if (c1==d1) a++; b=b-a; myform.t3.value=a.tostring()+" A "+ b.tostring()+" B"; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--">
148 <p> 字 串 1<input type="text" name="t1" size="20" value="6341"></p> <p> 字 串 2<input type="text" name="t2" size="20" value="6341"></p> <p><input type="button" value=" 字 串 比 對 " name="b1" onafterupdate onclick="aa()"> 結 果 是 :<input type="text" name="t3" size="6"></p> </form><p> </p> </body> </html> 自 我 練 習 1 請 設 計 一 網 頁, 讓 標 籤 內 文 字 自 旋 2 請 設 計 一 網 頁, 模 擬 走 馬 燈 的 功 能 3 請 設 計 一 網 頁, 可 以 找 出 指 定 字 所 出 現 的 次 數 例 如, 輸 入 This is a book. My name is Hank 且 詢 問 is 出 現 的 次 數, 則 輸 出 為 2 4 請 設 計 一 網 頁, 可 以 讓 使 用 者 完 AB Game 遊 戲 步 驟 如 下 : A 電 腦 產 生 一 個 四 位 數, 且 所 有 數 字 不 能 重 複 的 四 位 數, 例 如 不 能 0123( 不 是 四 位 數 ) 不 能 2808( 數 字 重 複 ) B 使 用 者 輸 入 所 臆 測 的 數 字 C 電 腦 回 應 A 與 B 的 數 目 D 使 用 者 繼 續 猜, 直 到 猜 到 電 腦 原 先 的 四 位 數 2_7_4 時 間 JavaScript 與 時 間 有 關 的 物 件, 常 用 的 有 Date 與 window 物 件, 分 別 說 明 如 下 : I Date 物 件 Date 物 件 可 用 來 設 定 與 取 得 系 統 的 的 日 期 與 時 間, 使 用 前 應 先 宣 告 如 下 : var d =new Date(); 往 後 即 可 使 用 d 存 取 其 屬 性 與 方 法, 以 下 是 一 些 常 用 的 方 法 取 得 方 法 設 定 方 法 說 明 getfullyear() setfullyear(year,[month],[date]) 取 得 或 設 定 年 月 日 getmonth() setmonth(month) 取 得 或 設 定 月 getdate() setdate(date) 取 得 或 設 定 日 (1~ 31) getday() 取 得 星 期 值, 範 圍 是 0~6,0 表 示 星 期 日 ) gethours() sethours(hour,[minutes],[seconds],[millisecond]) 設 定 或 取 得 時 分 秒 getminutes() setminutes(minutes) 設 定 或 取 得 分
149 getseconds() setseconds(seconds) 設 定 或 取 得 秒 gettime() settime(time) 設 定 或 取 得 從 1970 年 1 月 日 0 時 0 分 0 秒 到 現 在 所 經 過 的 毫 秒 數 tostring() 轉 為 字 串 格 式 todatestring() 轉 為 日 期 格 式 totimestring() 轉 為 時 間 格 式 例 如, 以 下 敘 述 可 取 得 現 在 的 日 期 與 時 間 var d=new Date(); document.write(d+"<br>"); 以 下 敘 述 可 取 得 現 在 的 年 份 var d=new Date(); document.write(d.getfullyear()+"<br>"); 以 下 敘 述 可 設 定 d 物 件 的 年 月 日 var d=new Date(); d.setfullyear(2002,3,2); document.write (d.getmonth()+"<br>"); //3 II 時 間 的 差 額 兩 個 時 間 物 件 相 減 的 結 果 會 傳 回 其 毫 秒 數 差 例 如, 以 下 敘 述 將 傳 回 6, 代 表 相 差 6 天 var d1=new Date(2008,3,2); var d2=new Date(2008,3,8); var a; a=d2-d1; document.write(a/(24*60*60*1000)+"<br>");// 將 毫 秒 數 轉 為 日 數 範 例 2_7_4a 停 車 場 計 費 假 設 某 一 停 車 場 第 一 小 時 60 元, 不 足 一 小 時 以 一 小 時 計, 往 後 每 半 時 為 20 元, 且 不 足 半 小 時 以 半 小 時 計, 請 寫 一 網 頁 可 以 協 助 管 理 此 停 車 場 的 計 費 網 頁 執 行 結 果 程 式 列 印 <html> <body> <script language =javascript > var d1=new Date(2008,3,2,8,0);//8 點
150 var d2=new Date(2008,3,2,9,0); //9 點 var d2=new Date(2008,3,2,9,1); //9 點 1 分 var d2=new Date(2008,3,2,9,31); //9 點 31 分 var a=d2-d1; // 時 間 差, 單 位 是 毫 秒 var b=a/(1000*60);// 將 毫 秒 轉 為 分 鐘 document.write (b+" 分 鐘 "+"<br>"); if (b<=60) c=60; else c=60+math.ceil((b-60)/30)*20; document.write (c+" 元 "+"<br>"); </script> </body> </html> 範 例 2_7_4b 銀 行 活 儲 利 息 計 算 假 設 銀 行 的 活 儲 利 息 是 以 每 日 餘 額 乘 以 日 利 率 且 累 加 每 日 的 利 息 假 設 某 一 客 戶 的 來 往 資 料 如 下, 年 利 率 為 是 百 分 之 二, 請 寫 一 網 頁, 計 算 該 客 戶 6 月 20 日 的 利 息 所 得 ( 提 示 : 請 用 陣 列 儲 存 以 下 資 料 ) 執 行 結 果 日 期 餘 額 2007/4/ /4/ /5/ 程 式 列 印 <html> <body> <script language =javascript > var d1=new Date(2008,4,5);//2008/4/5 var d2=new Date(2008,4,27); var d3=new Date(2008,5,20); var d4=new Date(2008,6,20); // 宣 告 二 維 陣 列 var a=new Array(); for (var i=0 ;i<=3 ;i++) a[i]=new Array();
151 // 儲 存 初 值 a[0][0]=30000;a[0][1]=d1; a[1][0]=40000;a[1][1]=d2; a[2][0]=20000;a[2][1]=d3; a[3][0]=20000;a[3][1]=d4 //var b=a[1][1]-a[0][1]; // 時 間 差, 單 位 是 豪 秒 //var c=b/(1000*60*60*24);// 將 毫 秒 轉 為 日 數 //document.write (c+" 天 "+"<br>"); var e=0.02; // 年 利 率 f=e/365; // 日 利 率 var c; // 日 數 var s=0 ;// 利 息 for (var i=1;i<=3;i++) { b=a[i][1]-a[i-1][1]; // 時 間 差, 單 位 是 豪 秒 c=b/(1000*60*60*24); // 將 毫 秒 轉 為 日 數 s=s+a[i-1][0]*c*f; document.write (" 利 息 共 "+Math.round(s,1)+" 元 "+"<br>"); </script> </body> </html> 補 充 說 明 1 計 算 兩 個 日 期 所 經 過 的 天 數 如 下 : var d1=new Date(2008,4,5);//2008/4/5 日 期 1 var d2=new Date(2008,4,27); // 日 期 2 a[0][0]=30000;a[0][1]=d1; a[1][0]=40000;a[1][1]=d2; var b=a[1][1]-a[0][1]; // 時 間 差, 單 位 是 毫 秒 var c=b/(1000*60*60*24);// 將 毫 秒 轉 為 日 數 document.write (c+" 天 "+"<br>"); 範 例 2_7_4c 請 設 計 一 網 頁, 一 直 顯 示 使 用 者 開 啟 網 頁 所 經 過 的 秒 數 程 式 列 印 <html> <script language =javascript > var t=0; function bb()
152 { t++; window.status=" 您 已 經 開 啟 "+t +" 秒 "; </script> </head> <body onload=setinterval("bb()",1000) > </body> </html> II 日 期 的 檢 查 若 某 一 網 頁 有 其 顯 示 的 截 止 日 期, 此 時 即 可 利 用 兩 個 時 間 物 件 的 大 小 關 係, 判 斷 是 否 顯 示 例 如, 以 下 敘 述 傳 回 true var d1=new Date(2008,3,2); var d2=new Date(2008,3,8); var b; b=d2 > d1; document.write (b+"<br>"); 範 例 2_7_4d 請 寫 一 網 頁, 可 以 顯 示 以 下 報 名 公 告, 當 超 過 截 止 日 期 時, 則 以 另 一 顏 色 顯 示 ( 提 示 : 請 用 陣 列 儲 存 以 下 資 料 ) 標 題 截 止 日 期 台 大 研 究 所 報 名 2008/3/2 交 大 研 究 所 報 名 2008/3/20 元 智 大 學 研 究 所 報 名 2008/4/2 執 行 結 果 程 式 列 印 <html> <body> <script language =javascript >
153 var d0=new Date(2008,3,17,17); // 今 天 日 期 var d1=new Date(2008,3,2,17);//2008/4/5 var d2=new Date(2008,3,20,17); var d3=new Date(2008,4,2,17); window.status =" 今 天 日 期 :"+d0.tolocaledatestring (); // 宣 告 二 維 陣 列 var a=new Array(); for (var i=0 ;i<=3 ;i++) a[i]=new Array(); a[0][0]=" 台 大 ";a[0][1]=d1; a[1][0]=" 交 大 ";a[1][1]=d2; a[2][0]=" 元 智 ";a[2][1]=d3; //print document.write ("2008 研 究 所 報 名 截 止 日 期 "+"<br>") document.write (" 今 天 日 期 :"+d0.tolocaledatestring ()); document.write ("<table border=1>"); document.write("<td>") ; document.write( " 校 名 " ); document.write("</td>") ; document.write("<td>") ; document.write( " 截 止 日 期 " ); document.write("</td>") ; for(i=0;i<=2;i++){ if ( a[i][1] < d0 ){ // 表 示 逾 期 document.write("<tr>") ; for(j=0;j<=1;j++){ // 紅 色 粗 體 document.write("<td>") ; document.write( a[i][j].tolocalestring ().bold().fontcolor ("red") ); document.write("</td>") ; document.write("</tr>");
154 else{ // 以 正 常 顏 色 與 字 體 顯 示 document.write("<tr>") ; for(j=0;j<=1;j++){ // 正 常 字 體 document.write("<td>") ; document.write( a[i][j].tolocalestring ()); document.write("</td>") ; document.write("</tr>"); document.write ("</table>"); </script> </body> </html> I window 物 件 window 物 件 提 供 settimeout() 及 setinterval() 等 方 法, 可 協 助 有 關 計 時 等 應 用, 請 看 以 下 說 明 II settimeout() settimeout() 的 語 法 如 下 : settimeout( 方 法,t) 其 中 t 是 等 候 時 間 t, 也 就 是 等 候 t 毫 秒 後 執 行 指 定 的 方 法 例 如, 以 下 敘 述 是 停 頓 2 秒 後 執 行 dd() 方 法 settimeout( dd(),2000); 範 例 2_7_4e 請 寫 一 網 頁, 當 使 用 者 按 某 一 按 鈕, 可 將 答 案 顯 示 兩 秒 後, 自 動 消 失 執 行 結 果 程 式 列 印 <html> <head> <script language="javascript"> // 提 示 畫 面
155 function bb(){ document.myform.b1.disabled=true; document.myform.t2.value =9; settimeout("b1()",2000);// 停 留 2 秒 後, 呼 叫 b1, 將 答 案 清 除 // 清 除 答 案 function b1(){ document.myform.t2.value =""; </script> </head> <body> <p> 請 問 邊 長 為 3 的 正 方 形, 其 面 積 是 多 少 </p> <form name="myform" method="post" action="--webbot-self--"> <p> 面 積 是 <input type="text" name="t1" size="20"><input type="button" value=" 提 示 " name="b1" onclick= "bb()"> <input type="text" name="t2" size="20"></p> <p><input type="button" value=" 確 定 " name="b2" onclick="aa()"></p> </form><p> </p> </body> </html> II setinterval() setinterval() 方 法 的 語 法 如 下 : setinterval( 方 法,t) 其 中 t 是 停 頓 的 毫 秒 數, 也 就 是 每 隔 t 毫 秒 自 動 執 行 指 定 的 方 法 " 例 如, 以 下 敘 述, 當 網 頁 載 入 時, 每 隔 1 秒 即 自 動 執 行 bb() 方 法 <html> <script language =javascript > var t=0; function bb() { t++; myform.t2.value=t; </script> </head>
156 <body onload=setinterval("bb()",500) > </body> </html> 範 例 2_7_4f 請 用 setinterval() 方 法 重 做 範 例 2_4_3b 紅 綠 燈 網 頁 程 式 列 印 1 將 以 下 敘 述 去 掉 settimeout("aa()",500); 2 將 以 下 敘 述 <body onload="aa()" > 修 改 如 下 : <body onload=setinterval("aa()",500) > 2_8 進 階 輸 出 入 前 面 的 2_2 節 已 經 介 紹 一 些 基 本 表 單 元 件, 例 如, 文 字 方 塊 按 鈕 與 圖 片 等, 本 單 元 則 要 介 紹 一 些 進 階 的 輸 出 入 物 件, 例 如, 核 取 方 塊 選 項 按 鈕 群 組 方 塊 下 拉 式 清 單 方 塊 文 字 區 域 及 圖 層 等 輸 出 入 物 件 2_8_1 核 取 方 塊 (checkbox) 核 取 方 塊 通 常 用 來 讓 使 用 者 勾 選 特 定 的 選 項 例 如, 下 圖 筆 者 已 經 放 入 3 個 核 取 方 塊 以 下 範 例 將 示 範 核 取 方 塊 的 用 法 範 例 2_8_1a 示 範 核 取 方 塊 執 行 結 果
157 操 作 步 驟 1 插 入 3 個 核 取 方 塊, 畫 面 如 下 圖 2 以 上 畫 面 的 程 式 碼 如 下,value 筆 者 已 經 將 其 value 值 分 別 修 改 為 羽 球 桌 球 與 籃 球 <input type="checkbox" name="c1" value=" 羽 球 "> 右 邊 的 羽 球 必 須 自 行 於 設 計 畫 面 鍵 入 其 次, 為 了 方 便 程 式 的 撰 寫, 請 將 name 值 修 改 為 相 同, 才 能 使 用 陣 列 存 取 其 值, 本 例 通 通 改 為 C1 <form name= myform method="post" action="--webbot-self--"> <p> 請 勾 選 您 的 興 趣 :</p> <p><input type="checkbox" name="c1" value=" 羽 球 "> 羽 球 <input type="checkbox" name="c1" value=" 桌 球 "> 桌 球 <input type="checkbox" name="c1" value=" 籃 球 "> 籃 球 </p> </form> 3 當 使 用 者 確 定 時, 輸 出 使 用 者 的 選 項, 所 以 插 入 一 個 按 鈕 與 一 個 文 字 方 塊, 如 下 所 示 : <p><input type="button" value=" 確 定 " name="b1" onclick=aa()></p> <p><input type="text" name="t1" size="20"></p> 4 aa() 方 法 如 下 : <script language =javascript > function aa() { var len=myform.c1.length; var i; var a=""; for (i=0 ;i<len;i++) if(myform.c1[i].checked ==true) a=a+myform.c1[i].value+" " ; myform.t1.value =a; </script> 5 length length 為 選 項 鈕 的 個 數 6 checked checked 紀 錄 每 一 選 項 是 否 選 取 7 value
158 每 一 選 項 的 值 2_8_2 選 項 按 鈕 前 面 的 核 取 方 塊 可 以 多 選, 但 本 節 的 選 項 按 鈕 則 只 能 單 選, 請 看 以 下 範 例 說 明 範 例 2_8_2a 示 範 選 項 鈕 執 行 結 果 操 作 步 驟 本 例 操 作 方 式 同 上 一 範 例, 全 部 程 式 列 印 如 下 : <html> <script language =javascript > function aa() { var len=myform.c1.length; var i; var a=""; for (i=0 ;i<len;i++) if(myform.c1[i].checked ==true) a=a+myform.c1[i].value+" " ; myform.t1.value =a; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p> 請 勾 選 您 的 最 高 學 歷 :</p> <p><input type="radio" name="c1" value=" 高 中 "> 高 中 <input type="radio" name="c1" value=" 大 學 "> 大 學 <input type="radio" name="c1" value=" 研 究 所 "> 研 究 所 </p> <p><input type="button" value=" 確 定 " name="b1" onclick=aa()></p> <p><input type="text" name="t1" size="20"></p> </form>
159 </body> </html> 2_8_3 群 組 方 塊 前 面 的 選 項 按 鈕 只 能 允 許 同 一 表 單 有 一 組 選 項 按 鈕, 若 希 望 在 同 一 表 單 有 兩 組 以 上 的 選 項 按 鈕, 則 可 使 用 群 組 方 塊 給 予 分 組, 請 看 以 下 範 例 說 明 範 例 2_8_3a 示 範 群 組 方 塊 執 行 結 果 操 作 步 驟 1 插 入 表 單 2 分 別 插 入 兩 個 群 組 方 塊, 並 分 別 修 改 其 標 題 為 性 別 與 最 高 學 歷 3 分 別 於 群 組 方 塊 內 插 入 選 項 鈕 4 插 入 一 個 按 鈕 與 一 個 文 字 方 塊 完 成 以 上 操 作, 表 單 配 置 如 下 : 程 式 列 印 <html> <head> <script language =javascript > function aa() { var len=myform.r1.length;
160 var i; var a=""; for (i=0 ;i<len;i++) if(myform.r1[i].checked ==true) a=a+myform.r1[i].value+" " ; myform.t1.value =a; len=myform.r2.length; for (i=0 ;i<len;i++) if(myform.r2[i].checked ==true) a=a+myform.r2[i].value+" " ; myform.t1.value =a; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <fieldset style="padding: 2"> <legend> 性 別 </legend> <input type="radio" value=" 男 " checked name="r1"> 男 <input type="radio" name="r1" value=" 女 "> 女 </fieldset> <fieldset style="padding: 2"> <legend> 最 高 學 歷 </legend> <input type="radio" value=" 高 中 " checked name="r2"> 高 中 <input type="radio" name="r2" value=" 大 學 "> 大 學 <input type="radio" name="r2" value=" 研 究 所 "> 研 究 所 </fieldset> <p><input type="button" value=" 確 定 " name="b1" onclick=aa()></p> <p><input type="text" name="t1" size="20"></p> </form> </body> </html> 2_8_4 下 拉 式 清 單 方 塊 下 拉 式 清 單 方 塊 有 兩 種 表 現 方 式, 一 種 是 清 單 方 塊, 如 下 圖 左, 另 一 種 稱 為 下 拉 式 清 單 方 塊, 如 下 圖 右 其 差 別 是 清 單 方 塊 的 顯 示 範 圍 較 大, 下 拉 式 清 單 方 塊 僅 顯 示 一 列, 其 餘 必 須 拉 開 才 能 看 到 其 值
161 以 下 是 一 些 常 用 的 屬 性 I size 設 定 或 取 得 清 單 方 塊 的 欄 位 高 度 例 如, 上 圖 左 設 為 3, 上 圖 右 則 設 為 1, 也 就 是 高 度 大 於 1 時, 則 為 清 單 方 塊 I length 傳 回 清 單 方 塊 所 含 的 項 目 個 數 I value 清 單 方 塊 中 被 選 取 的 項 目 名 稱 I multiple 傳 回 或 設 定 清 單 方 塊 是 否 可 複 選 I selected 傳 回 或 設 定 清 單 方 塊 某 一 項 目 是 否 被 選 取 I selectedindex 傳 回 清 單 方 塊 中, 被 選 取 的 項 目 索 引 值 I options[] 以 陣 列 形 式, 表 現 選 單 的 項 目 I options[n].text 第 n 個 選 項 的 文 字 ( 索 引 從 0 開 始 ) I options[n].value 第 n 個 選 項 的 value 範 例 2_8_4a 示 範 下 拉 式 清 單 方 塊 執 行 結 果 操 作 步 驟 1 插 入 表 單 2 插 入 下 拉 式 清 單 方 塊 設 計 畫 面 如 下 圖 左, 程 式 碼 如 下 圖 右 <p><select size="1" name="d1"></select></p> 3 請 於 <select> </select> 之 間 加 入 下 圖 右 程 式 碼, 設 計 畫 面 將 會 如 下 圖 左
162 <p><select size="1" name="d1" onchange=aa() > <option value=" 醫 生 " > 醫 生 </option> <option value=" 護 士 " > 護 士 </option> <option value=" 檢 驗 師 " > 檢 驗 師 </option> </select></p> 4 aa() 方 法 程 式 如 下 <script language =javascript > function aa() { myform.t1.value=myform.d1.value; myform.t2.value=myform.d1.selectedindex ; </script> 補 充 說 明 1 本 例 若 修 改 size=3, 則 執 行 結 果 如 下 : 範 例 2_8_4b 示 範 可 多 選 的 清 單 方 塊 執 行 結 果 ( 請 先 按 住 鍵 盤 的 Ctrl 鍵, 才 能 多 選 ) 操 作 步 驟 1 表 單 配 置 如 下 :
163 2 表 單 程 式 如 下, 請 留 意 已 經 加 入 multiple <form name="myform" method="post" action="--webbot-self--"> <p><select size="3" name="d1" multiple > <option value=" 川 芎 " > 川 芎 </option> <option value=" 生 薑 " > 生 薑 </option> <option value=" 紅 棗 " > 紅 棗 </option> <option value=" 木 瓜 " > 木 瓜 </option> </select></p> <p><input type="button" value=" 確 定 " name="b1" onclick=aa()></p> <p> 您 的 選 擇 是 <input type="text" name="t1" size="20"></p> </form> 3 aa() 方 法 程 式 如 下 : <script language =javascript > var a=""; function aa() { var len=myform.d1.length ; for (var i=0;i<len;i++) if( myform.d1.options [i].selected) a=a+myform.d1.options[i].value+" "; myform.t1.value=a; </script> 2_8_5 文 字 區 域 文 字 區 域 如 下 圖 所 示, 他 的 功 能 與 文 字 方 塊 接 近, 但 卻 可 以 以 多 列 的 方 式 顯 示 資 料, 且 當 文 字 數 量 超 過 物 件 所 在 範 圍 時, 還 會 自 動 出 現 捲 軸, 如 下 圖 右
164 以 下 是 常 用 的 屬 性 I value 文 字 區 域 的 內 容 I cols 物 件 表 現 的 列 數, 單 位 是 字 元 數 例 如, 上 圖 右 設 定 為 4, 表 示 物 件 可 同 時 呈 現 4 列 I rows 物 件 表 現 的 行 數, 單 位 是 字 元 數 例 如, 上 圖 設 定 為 30, 表 示 物 件 的 寬 度 為 30 個 字 元 範 例 2_8_5a 同 範 例 2_8_4b, 但 使 用 文 字 區 域 輸 出 結 果 執 行 結 果 程 式 列 印 <html> <head> <script language =javascript > var a=""; function aa() { var len=myform.d1.length ; for (var i=0;i<len;i++) if( myform.d1.options [i].selected) a=a+myform.d1.options[i].text+"\n"; //\n 跳 列 myform.s1.value=a;
165 </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"><p> <select size="3" name="d1" multiple > <option value=" 川 芎 " > 川 芎 </option> <option value=" 生 薑 " > 生 薑 </option> <option value=" 紅 棗 " > 紅 棗 </option> <option value=" 木 瓜 " > 木 瓜 </option> </select></p> <p><input type="button" value=" 確 定 " name="b1" onclick=aa()></p> <p> 您 的 選 擇 是 <textarea rows="4" name="s1" cols="30"></textarea></p> </form> </body> </html> 2_8_6 圖 層 圖 層 顧 名 思 義 就 是 讓 表 單 能 有 多 層 的 效 果, 也 就 是 同 一 位 置 能 放 許 多 圖 片 其 次, 若 要 達 到 圖 片 移 動 的 動 畫 的 效 果, 亦 要 先 將 圖 片 放 在 圖 層 上, 才 能 有 動 畫 的 效 果 下 圖 是 於 設 計 頁 籤 插 入 圖 層 的 畫 面, 其 程 式 碼 如 下 圖 右 <body> <div style="position: absolute; width: 100px; height: 100px; z-index: 1" id="layer1"> </div> </body> 以 下 是 移 動 圖 層 位 置 後 的 程 式 碼 : <div style="position: absolute; width: 100px; height: 100px; z-index: 1; left: 69px; top: 31px" id="layer1"> </div> I <div></div> 區 塊 設 定, 將 網 頁 中 的 段 落 設 為 區 塊 I id 圖 層 的 識 別 碼 名 稱, 與 name 屬 性 接 近, 都 可 用 來 存 取 或 設 定 圖 層 的 屬 性 例 如, 以 下 敘 述 可 設 定 位 置 document.all.layer1.style.left=x; 以 上 的 document.all 亦 可 省 略 如 下 :
166 layer1.style.left=x; I z-index 圖 層 的 z 座 標, 當 同 一 位 置 存 在 多 個 圖 層 時, 其 值 越 大 者 其 位 置 越 上 面, 而 且 螢 幕 上 僅 可 看 到 最 上 層 的 圖 片 I width,height 圖 層 的 寬 度 與 高 度 屬 性 I absolute 位 置 屬 性, 分 為 absolute( 絕 對 ) 與 relative( 相 對 ) I left,top 位 置 屬 性, 分 別 是 其 x,y 座 標 以 下 是 移 動 圖 層 位 置 後 的 程 式 碼 : <div style="position: absolute; width: 100px; height: 100px; z-index: 1; left: 69px; top: 31px" id="layer1"> </div> 範 例 2_8_6a 請 寫 一 網 頁, 可 以 讓 圖 片 自 動 移 動 執 行 結 果 請 自 行 開 啟 檔 案 e2_8_6a.htm 程 式 列 印 <html> <script language=javascript> var x=0; var y=0; function aa(){ x=(x+50) % 800; y=(y+40) % 500; document.all.layer1.style.left=x; document.all.layer1.style.top=x; settimeout("aa()",500); </script> </head> <body onload="aa()" > <div style="position: absolute; width: 100px; height: 100px; z-index: 1" id="layer1"> <img name="gra" border="0" src="../g1.jpg" width="73" height="98"></div> </body> </html> 2_9 事 件
167 JavaScript 的 事 件 處 理 主 要 分 為 三 大 類, 分 別 是 鍵 盤 事 件 滑 鼠 事 件 與 狀 態 事 件, 分 別 說 明 如 下 : 2_9_1 鍵 盤 事 件 幾 乎 大 部 分 的 遊 戲 都 會 使 用 鍵 盤 事 件, 常 用 的 鍵 盤 事 件 有 keydown onkeypress 及 onkeyup, 這 些 事 件 都 會 傳 回 按 鍵 值 keycode I keycode 傳 回 鍵 盤 的 按 鍵 值, 例 如, 以 下 敘 述 傳 回 按 鍵 值 var a=event.keycode; 小 寫 的 a 是 97, 大 寫 的 A 是 65, 大 寫 的 B 是 66, 餘 依 此 類 推 其 次, 左 移 上 移 右 移 及 下 移 等 鍵 的 keycode 分 別 是 及 40 shiftkey 傳 回 按 鍵 的 同 時, 是 否 也 按 者 Shift 鍵 ctrlkey 傳 回 按 鍵 的 同 時, 是 否 也 按 者 Ctrl 鍵 altkey 傳 回 按 鍵 的 同 時, 是 否 也 按 者 Alt 鍵 範 例 2_9_1a 請 設 計 一 網 頁, 可 顯 示 使 用 者 的 按 鍵 值, 及 是 否 按 下 Shift Ctrl 或 Alt 鍵 執 行 結 果 1 請 先 於 表 單 按 一 下, 讓 表 單 致 能 2 下 圖 是 按 一 下 "PrtScrn 的 結 果 3 若 按 下 Shift Ctrl 或 Ctrl 等 鍵, 則 上 圖 對 應 輸 出 會 得 到 true 程 式 列 印 <html> <head>
168 <script language =javascript > function aa(){ window.status =event.keycode; myform.t1.value=event.keycode; myform.t2.value=event.shiftkey; myform.t3.value=event.ctrlkey; myform.t4.value=event.altkey; </script> </head> <body onkeyup="aa()"> </body> </html> 範 例 2_9_1b 請 設 計 一 網 頁, 滿 足 以 下 條 件 (1) 網 頁 載 入 時, 圖 片 B 可 任 意 上 下 左 右 自 由 移 動 (2) 圖 片 A 可 隨 者 使 用 者 按 上 下 左 右 鍵 自 由 移 動 (3) 當 圖 片 A 與 B 重 疊 時, 顯 示 "Game Over" 執 行 結 果 程 式 列 印 <html> <script language =javascript > var xa=100,ya=100,xb=200,yb=150; // 依 按 鍵 值 移 動 function aa(){ window.status =event.keycode; switch (event.keycode){ case 37: xa=xa-20; break; case 38:
169 ya=ya-20; break; case 39: xa=xa+20; break; case 40: ya=ya+20; break; graa.style.left=xa; graa.style.top=ya; // 隨 亂 數 自 由 移 動 function bb(){ xb=parseint(grab.style.left); yb=parseint(grab.style.top); x1=math.floor(math.random()*50)-25; y1=math.floor(math.random()*50)-25; xb=xb+x1; yb=yb+y1; grab.style.left =xb; grab.style.top=yb; if (Math.abs(xa-xb) <20 && Math.abs(ya-yb)<20){ alert("game over"); xa=0;ya=0; </script> <body onkeydown=aa() onload=setinterval("bb()",1000)><p> <img name= "graa" style="position:absolute; left:150; top:63" border="0" src="../red.jpg" width="50" height="46"> <img name= "grab" style="position:absolute; left:302; top:78" border="0" src="../green.jpg" width="50" height="46"></p> </body> </html> 自 我 練 習 請 設 計 一 個 打 飛 機 網 頁, 滿 足 以 下 條 件
170 (1) 飛 機 在 網 頁 上 方 由 左 至 右 移 動 (2) 當 使 用 者 按 一 下 上 移 " 鍵 時, 可 由 下 方 發 射 砲 彈, 此 時 砲 彈 即 由 下 往 上 飛 行 (3) 當 砲 彈 打 中 飛 機 時, 顯 示 命 中 範 例 2_9_1c 請 設 計 一 網 頁, 滿 足 以 下 條 件 (1) 當 使 用 者 開 啟 網 頁 時, 要 求 使 用 者 輸 入 密 碼 (2) 當 密 碼 為 123 時, 才 可 使 用 網 頁 執 行 結 果 1 下 圖 左 是 輸 入 123 的 結 果 2 下 圖 右 是 輸 入 錯 誤 的 結 果, 此 時 無 法 執 行 網 頁 操 作 步 驟 1 網 頁 執 行 按 鈕 預 設 disable, 敘 述 如 下 : <input type="button" value=" 執 行 " name="b1" onclick="aa()" disabled > 2 請 於 輸 入 密 碼 的 文 字 方 塊 加 上 onkeyup 事 件, 如 以 下 敘 述 <p> 請 輸 入 密 碼 :<input type="text" name="t3" size="20" onkeyup=bb()> 3 bb() 方 法 撰 寫 如 下 : function bb(){ var b=event.keycode; var c=myform.t3.value; if (b==13) //Enter 鍵 if (c=="123") { myform.b1.disabled =false; // 密 碼 正 確, 此 時 才 可 使 用 此 按 鈕 myform.t3.disabled =true; else{ myform.t3.value=""; // 清 除 使 用 者 所 輸 入 的 密 碼 myform.t2.value=" 密 碼 錯 誤 " 自 我 練 習 1 同 上 範 例, 但 是 輸 入 錯 誤 三 次, 即 結 束 網 頁
171 2 同 上 題, 按 執 行 " 按 鈕 後, 先 出 現 對 話 視 窗, 要 求 輸 入 密 碼, 當 密 碼 正 確 時 才 進 行 成 績 轉 換, 錯 誤 3 次, 則 關 閉 網 頁 3 請 設 計 一 網 頁, 當 使 用 者 輸 入 答 案, 並 輸 入 Enter 鍵 時, 即 檢 查 答 案 是 否 正 確 2_9_2 滑 鼠 事 件 本 章 之 前, 我 們 就 一 直 使 用 滑 鼠 的 onclick 與 ondblclick 事 件, 本 節 則 要 繼 續 探 討 其 餘 滑 鼠 事 件, 例 如 onmousedown onmouseup onmouseover onmousemove onmouseout 等 事 件 I onmousedown 物 件 上 按 一 下 滑 鼠 按 鈕 所 引 發 的 事 件 I onmouseup 物 件 上 放 開 滑 鼠 按 鈕 所 引 發 的 事 件 I onmouseover 滑 鼠 移 動 經 過 物 件 時 所 引 發 的 事 件 I onmousemove 滑 鼠 在 物 件 範 圍 內 移 動 所 引 發 的 事 件 I onmouseout 滑 鼠 離 開 物 件 時 所 引 發 的 事 件 I event.clientx 滑 鼠 事 件 發 生 時 的 x 座 標 I event.clienty 滑 鼠 事 件 發 生 時 的 y 座 標 I event.button 傳 回 滑 鼠 事 件 發 生 時, 滑 鼠 的 哪 些 按 鍵 被 按 下 0 代 表 沒 有 任 何 鍵,1 代 表 左 鍵 被 按 下,2 代 表 右 鍵 被 按 下,4 代 表 中 鍵 被 按 下 I oncontextmenu 按 滑 鼠 右 鍵 時, 產 生 此 事 件 若 要 設 定 滑 鼠 右 鍵 無 效, 可 於 網 頁 的 <body> 設 定 如 下 : <body oncontextmenu= return false > 範 例 2_9_2a 請 設 計 一 網 頁, 可 以 顯 示 滑 鼠 座 標, 並 使 圖 片 跟 隨 滑 鼠 移 動 執 行 結 果
172 程 式 列 印 <html> <head> <script language =javascript > function aa(){ window.status =event.clientx+","+event.clienty; gra.style.left=event.clientx; gra.style.top=event.clienty; </script> </head> <body onmousemove=aa()> <p><img name="gra" style="position:absolute" border="0" src="../green.jpg" width="50" height="46"></p> </body> </html> 範 例 2_9_2b 請 設 計 一 網 頁, 滿 足 以 下 條 件 (1) 表 單 載 入 時 顯 示 綠 燈 (2) 滑 鼠 接 近 時 顯 示 黃 燈 (3) 滑 鼠 在 物 件 移 動 時, 顯 示 紅 燈 (4) 滑 鼠 離 開 時, 顯 示 白 燈 執 行 結 果 1 本 範 例 的 目 的 主 要 是 示 範 onmouseover onmousemove onmouseup 等 事 件 的 差 別 2 下 圖 左 是 滑 鼠 接 近 物 件 時 的 畫 面, 顯 示 黃 燈 3 下 圖 右 是 滑 鼠 在 物 件 上 移 動 的 畫 面, 顯 示 紅 燈
173 2_9_3 狀 態 事 件 因 為 狀 態 的 改 變 而 引 發 的 事 件, 我 們 稱 為 狀 態 事 件, 分 別 說 明 如 下 : I onload 網 頁 載 入 所 引 發 的 事 件 I onunload 關 閉 目 前 網 頁 所 產 生 的 事 件 I onchange 物 件 內 容 改 變 時, 所 產 生 的 事 件 於 文 字 方 塊 文 字 區 域 或 選 項 按 鈕 的 選 取 項 目 改 變 時, 都 會 產 生 此 事 件 相 關 範 例 請 看 2_8_4a I onsubmit 傳 送 表 單 資 料 時 所 引 發 的 事 件 onresize 物 件 改 變 大 小 時 所 引 發 的 事 件 範 例 2_9_3a 請 設 計 一 網 頁, 當 使 用 者 瀏 覽 此 一 網 頁 時, 自 動 產 生 一 歡 迎 光 臨 畫 面, 關 閉 或 離 開 時, 出 現 一 謝 謝 " 畫 面 執 行 結 果 程 式 列 印 <html> <head> </head>
174 <script language =javascript > function hello(){ alert(" 歡 迎 光 臨, 本 店 今 日 週 年 慶, 全 面 八 折 "); function bye(){ alert(" 謝 謝 您, 再 見 "); </script> <body onload ="hello();" onunload="bye();"> </body> </html> 範 例 2_9_3b 請 設 計 一 開 立 藥 品 處 方 網 頁, 當 使 用 者 選 取 藥 品 名 稱 與 重 量 後, 可 將 藥 品 名 稱 與 重 量 顯 示 在 文 字 方 塊 執 行 結 果 程 式 列 印 <html> <head> <script language =javascript > var b1=""; var b2=""; var b=""; function a1() { b1=myform.d1.value; function a2() { b2=myform.d2.value;
175 b=b+b1+" * "+b2+"\n"; myform.s1.value =b; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p><select size="4" name="d1" onchange="a1()" > <option value=" 川 芎 " > 川 芎 </option> <option value=" 生 薑 " > 生 薑 </option> <option value=" 紅 棗 " > 紅 棗 </option> <option value=" 木 瓜 " > 木 瓜 </option> </select> <select size="4" name="d2" onchange="a2()" > <option value="1" >1 </option> //  代 表 空 白 <option value="2" >2 </option> <option value="3" >3 </option> <option value="4" >4 </option> <option value="5" >5 </option> <option value="6" >6 </option> </select></p> <p> 您 的 選 擇 是 <textarea rows="4" name="s1" cols="20"></textarea></p> </form> </body> </html> 2_9_4 動 態 選 單 同 一 網 頁 若 同 時 提 供 太 多 選 項, 常 令 使 用 者 眼 花 撩 亂, 此 時 可 以 選 用 動 態 選 單, 也 就 是 先 將 若 干 相 同 的 選 項 分 類, 放 在 同 一 選 單, 當 使 用 者 點 選 該 選 單 時, 才 出 現 其 選 項, 此 稱 為 動 態 選 單 例 如 下 圖 所 示, 作 品 說 明 書 基 本 觀 念 及 電 阻 稱 為 選 單, 這 些 選 單 下 面 分 別 有 若 干 選 項, 而 且 是 點 選 該 選 單 時, 才 出 現 其 選 項
176 範 例 2_9_4a 完 成 上 圖 的 動 態 選 單 操 作 步 驟 1 分 割 框 架 A 分 割 框 架 的 HTML 標 籤 命 令 是 FRAMESET, 其 語 法 如 下 : <frameset> 分 割 框 架 內 容 </frameset> B 本 例 並 不 使 用 手 工 輸 入 方 式, 而 是 直 接 使 用 FrontPage 的 網 頁 範 本, 如 下 圖 所 示
177 C 點 選 橫 幅 與 目 錄 ", 畫 面 如 下 圖
178 E 請 分 別 新 增 網 頁, 畫 面 如 下 圖,FrontPage 已 經 自 動 完 成 首 頁 HTML
179 F 儲 存 檔 案 本 例 共 四 個 檔 案, 分 別 是 首 頁 上 面 橫 幅 左 邊 選 單 與 右 邊 內 容 放 置 框 架 所 以 請 選 擇 儲 存 檔 案 ", 電 腦 將 會 要 求 使 用 者 分 別 輸 入 四 個 檔 案 名 稱, 首 先 請 輸 入 上 面 橫 幅 檔 名, 本 例 輸 入 top, 如 下 圖 所 示 :( 請 留 意 其 框 架 位 置 )
180 接 著 儲 存 左 邊 選 單, 本 例 輸 入 left 如 下 圖 :( 請 留 意 其 框 架 位 置 ) 接 著 輸 入 右 邊 內 容 網 頁, 本 例 輸 入 right, 如 下 圖 ( 請 留 意 其 框 架 位 置 )
181 最 後 輸 入 首 頁 檔 名, 本 例 輸 入 index, 如 下 圖 ( 請 留 意 其 框 架 位 置 ) 完 成 以 上 操 作, 資 料 夾 共 四 個 檔 名, 如 下 圖 所 示
182 2 完 成 選 單 及 選 項 的 HTML 如 下 : <body > <a class="mainmenu" href="javascript:showsubmenu(1)"> 作 品 說 明 書 </a> <div id="submenu1" class="submenu" style="display:none"> <a class="submenu" href="s1/s11.htm" target="main"> 專 題 動 機 </a><br> <a class="submenu" href="s1/s12.htm" target="main"> 專 題 目 的 </a><br> <a class="submenu" href="s1/s13.htm" target="main"> 專 題 設 備 及 器 材 </a><br> <a class="submenu" href="s1/s14.htm" target="main"> 專 題 原 理 </a><br> <a class="submenu" href="s1/s15.htm" target="main"> 專 題 結 果 </a><br> <a class="submenu" href="s1/s16.htm" target="main"> 結 論 </a><br> <a class="submenu" href="s1/s17.htm" target="main"> 參 考 資 料 及 其 他 </a><br> </div> <a class="mainmenu" href="javascript:showsubmenu(2)"> 基 本 觀 念 </a><br> <div id="submenu2" class="submenu" style="display:none"> <a class="submenu" href="s2/s21.htm" target="main"> 原 子 的 組 成 </a><br> <a class="submenu" href="s2/s22.htm" target="main"> 電 能 </a><br> <a class="submenu" href="s2/s23.htm" target="main"> 庫 倫 定 律 </a><br> </div> <a class="mainmenu" href="javascript:showsubmenu(3)"> 電 阻 </a><br> <div id="submenu3" class="submenu" style="display:none"> <a class="submenu" href="s3/s31.htm" target="main"> 色 碼 電 阻 的 辨 識 </a><br> <a class="submenu" href="s3/s32.htm" target="main"> 毆 姆 定 律 </a><br> <a class="submenu" href="s3/s33.htm" target="main"> 焦 耳 定 律 </a><br> </div>
183 </body> 補 充 說 明 A style= display:none 是 設 定 不 顯 示 此 選 項 B target 是 超 連 結 的 目 標 框 架 C class 稱 為 類 別 名 稱,id 稱 為 識 別 碼, 這 兩 個 屬 性 可 用 來 協 助 樣 式 的 設 定 或 物 件 的 存 取 3 完 成 CSS 的 設 計, 如 下 圖 <html> <head> <style type="text/css"> <!-- A:hover{color:#FF0000;background-color:#FFECFF;/* 游 標 觸 碰 時 文 字 的 顏 色 及 底 色 */ A.MainMenu{text-decoration:none;font-size:16pt;color:#0000FF;/* 分 類 大 項 的 文 字 大 小 及 顏 色 */ A.SubMenu{text-decoration:none;font-sige:12pt;color:#9F40FF;margin-left:10pt;/* 內 部 連 結 的 文 字 大 小 顏 色 及 退 縮 點 數 */ --> </style> 補 充 說 明 A 能 夠 處 理 <script> 標 籤 的 瀏 覽 器, 必 須 支 援 JavaScript 才 行 如 果 是 不 支 援 JavaScript 的 瀏 覽 器, 則 會 忽 略 <script> 標 籤, 而 將 <script> 內 的 JavaScript 程 式 當 作 網 頁 內 容 的 一 部 份 為 了 避 免 這 個 問 題, 您 可 以 將 <script> 標 籤 內 的 JavaScript 程 式 碼, 以 HTML 標 籤 註 解 <!-- --> 包 含 起 來, 如 以 上 程 式 或 以 下 程 式 4 完 成 Javascript 程 式 <script language="javascript"> <!-- var currentmenu = 1; function ShowSubMenu(id) { if (document.all["submenu" + id].style.display == "") { document.all["submenu" + id].style.display = "none"; currentmenu = 0; else { if (currentmenu!= 0)
184 {document.all["submenu" + currentmenu].style.display = "none"; document.all["submenu" + id].style.display = ""; currentmenu = id; --> </script> 補 充 說 明 A 使 用 者 點 選 選 單 時, 首 先 判 斷 本 選 單 是 否 已 經 開 啟, 若 已 經 開 啟, 則 關 閉, 並 設 定 目 前 未 開 啟 任 何 選 單 (currentmenu = 0;) (display 空 字 串 代 表 選 單 顯 示, none 代 表 隱 藏 if (document.all["submenu" + id].style.display == "") { document.all["submenu" + id].style.display = "none"; currentmenu = 0; B 其 次 是 否 有 未 關 閉 的 選 單, 若 有 則 關 閉 if (currentmenu!= 0) {document.all["submenu" + currentmenu].style.display = "none"; D 開 啟 所 選 擇 的 選 單, 並 記 錄 已 經 開 啟 的 選 單 編 號 document.all["submenu" + id].style.display = ""; currentmenu = id; 4 將 <base target="main" 去 掉, 否 則 常 出 現 以 下 錯 誤 訊 息 5 本 例 首 頁 檔 名 index.htm 程 式 如 下, 共 分 為 三 個 框 架, 分 別 是 上 面 的 橫 幅 ( 檔 名 是 top.htm) 左 邊 的 contents( 檔 名 是 left.htm) 及 右 邊 的 main( 檔 名 是 right.htm) noresize 代 表 分 割 線 不 允 許 位 移 target 代 表 超 連 結 的 目 標 框 架 <noframes> 代 表 若 網 頁 不 支 援 框 架 時, 所 要 顯 示 的 文 字 <html> <head> </head> <frameset rows="80,*">
185 <frame name=" 橫 幅 " scrolling="no" noresize target="contents" src="top.htm"> <frameset cols="150,*"> <frame name="contents" target="main" src="left.htm"> <frame name="main" src="right.htm"> </frameset> <noframes> <body> <p> 此 網 頁 使 用 框 架, 但 是 您 的 瀏 覽 器 不 支 援 框 架 </p> </body> </noframes> </frameset> </html> 補 充 說 明 A rowls 蹤 向 分 割 畫 面 的 數 目 與 寬 度 本 例 首 先 將 畫 面 分 為 上 下 兩 個 框 架 上 面 佔 80 像 素, 剩 下 的 給 下 面 框 架 <frameset rows="80,*"> B cols 橫 向 分 割 畫 面 的 數 目 與 寬 度 本 例 再 將 下 面 框 架 分 為 左 右 兩 個 框 架 左 邊 佔 150 像 素, 剩 下 的 給 下 面 框 架 <frameset cols="150,*"> <frame name="contents" target="main" src="left.htm"> <frame name="main" src="right.htm"> </frameset> 以 下 程 式 則 可 以 分 為 三 個 框 架, 劃 分 的 方 式 以 比 率 劃 分, 比 率 分 別 是 15% 15% 與 70% <frameset cols="15%,15%,*"> <frame name="main1" src="m1.htm"> <frame name="main2" src="m2.htm"> <frame name="main3" src="m3.htm"> </frameset> 2_9_5 CSS 樣 式 表 CSS(Cascading Style Sheets) 樣 式 表 的 主 要 功 能 是 讓 網 頁 的 內 容 與 外 觀 樣 式 分 開 設 計, 也 就 是 網 頁 內 容 由 網 頁 設 計 師 處 理, 外 觀 樣 式 則 由 美 工 人 員 處 理 CSS 共 有 三 種 方 式 定 義 樣 式 表, 分 別 是 使 用 <style> 標 籤 於 HTML 的 標 籤 內 使 用 style 屬 性 或 使 用 獨 立 的.css 外 部 檔 案 以 下 僅 介 紹 <style> 標 籤,<style> 標 籤 語 法 如 下, 通 常 放 在 <head></head> 指 令 之 間 :
186 <head> <style type="text/css"> 樣 式 名 稱 1 { 屬 性 1: 值 1 ; 屬 性 2: 值 2 ; 屬 性 3: 值 3 ; 樣 式 名 稱 2 { 屬 性 1: 值 1 ; 屬 性 2: 值 2 ; 屬 性 3: 值 3 ; </style> </head> 樣 式 名 稱 樣 式 名 稱 有 三 種, 分 別 是 標 籤 類 別 與 識 別 碼, 分 別 說 明 下 : 標 籤 於 HTML 中,body p th td a 等 HTML 指 令 都 是 標 籤 名 稱 例 如 <head> <style type="text/css"> body {color:green ;font-size=12pt </style> </head> 則 是 將 <body> 與 </body> 之 間 的 內 容 套 用 本 樣 式 又 例 如, <head> <style type="text/css"> p,a {color:green ;font-size=12pt;font-family: 標 楷 體 </style> </head> 則 是 將 全 部 的 <p> </p> 與 <a> </a> 之 間 的 內 容 套 用 本 樣 式 類 別 與 識 別 碼 同 一 網 頁 可 能 有 很 多 個 <p> </p>( 段 落 ), 此 時 即 可 使 用 類 別 或 識 別 碼, 若 使 用 類 別 名 稱 則 應 於 名 稱 前 加 點 (.), 若 是 識 別 名 稱 則 應 於 識 別 名 稱 前 加 井 號 (#) 例 如, 以 下 程 式 可 以 定 義 類 別 名 稱 的 樣 式 <head> <style type="text/css">.main {color:green ;font-size=12pt;font-family: 標 楷 體 </style> </head> 例 如, 以 下 程 式 可 以 定 義 識 別 碼 名 稱 的 樣 式 <head>
187 <style type="text/css"> #Layer {color:green ;font-size=12pt;font-family: 標 楷 體 </style> </head> 以 下 程 式 則 可 以 使 用 已 經 定 義 的 類 別 名 稱 樣 式, 例 如 <div class= main > <div> 以 下 程 式 則 可 以 使 用 已 經 定 義 的 識 別 碼 名 稱 樣 式, 例 如 <div id= Layer > <div> 同 時 使 用 標 籤 與 類 別 有 時 同 一 段 落 可 能 好 幾 個 類 別, 此 時 可 以 同 時 使 用 標 籤 與 類 別 名 稱, 而 將 同 一 段 落 套 用 不 同 樣 式 以 下 程 式 則 是 標 籤 與 類 別 名 稱 的 聯 合 使 用 例 如, <head> <style type="text/css"> p.main {color:green ;font-size=12pt;font-family: 標 楷 體 </style> </head> 則 是 將 <p> </p> 段 落 內 的 main 類 別 套 用 本 樣 式 2_10 檔 案 網 際 網 路 的 世 界, 通 常 可 存 取 伺 服 器 與 客 戶 端 的 檔 案, 但 是 因 為 JavaScript 是 一 種 處 理 客 戶 端 的 Script 語 言, 所 以 僅 提 供 客 戶 端 的 檔 案 處 理 伺 服 器 的 檔 案 處 理 則 應 使 用 ASP JSP 或 PHP 等 語 言 較 為 靈 活 FileSystemObject FileSystemObject 物 件 是 一 個 ActiveX 物 件, 能 夠 取 得 電 腦 磁 碟 機 的 相 關 資 訊, 例 如 資 料 夾 與 檔 案 的 新 增 移 動 更 名 或 刪 除 等 動 作, 其 次 還 可 處 理 文 字 檔 的 讀 寫 動 作 使 用 此 物 件 前 應 先 宣 如 下 : var a=new ActiveXObject("Scripting.FileSystemObject"); CreateFolder() 建 立 資 料 夾 例 如, 以 下 敘 述, 可 於 使 用 者 C: 磁 碟 機 建 立 一 個 test 資 料 夾 ( 請 於 IE 執 行, 本 例 無 法 於 Frontpage 預 覽 ) <script language =javascript > var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.createfolder("c:\\test"); </script>
188 FolderExist() 傳 回 資 料 夾 是 否 存 在 例 如, 以 下 敘 述 可 傳 回 c:\test 資 料 夾 是 否 存 在 var a=new ActiveXObject("Scripting.FileSystemObject"); a.folderexists("c:\\test" ); CopyFolder() 複 製 資 料 夾 例 如, 以 下 敘 述 可 將 c:\test 複 製 至 d:\test a.copyfolder ("c:\\test","d:\\test"); //a 物 件 同 上 MoveFolder() 搬 移 資 料 夾 例 如, 以 下 敘 述 可 將 c:\test 搬 移 至 d:\test a.copyfolder ("c:\\test","d:\\test"); //a 物 件 同 上 DeleteFolder() 刪 除 資 料 夾 例 如, 以 下 敘 述 可 刪 除 d:\test 資 料 夾 a.deletefolder ("d:\\test"); CreateTextFile() 建 立 檔 案 例 如, 以 下 敘 述 可 建 立 一 個 空 的 test1.txt 檔 案,a 物 件 同 上,b 物 件 待 會 可 開 啟 檔 案 true 代 表 可 覆 寫 原 檔 案,false 代 表 不 可 覆 寫 原 檔 案 var b=a.createtextfile ("c:\\test\\test1.txt",true); //a 物 件 同 上 CopyFile() 複 製 檔 案 例 如, 以 下 敘 述 可 從 c:\test 複 製 test1.txt 至 d:\test 資 料 夾 a.copyfile ("c:\\test\\test1.txt","d:\\test\\test1.txt"); //a 物 件 同 上 MoveFile() 搬 移 檔 案 例 如, 以 下 敘 述 可 從 c:\test 複 製 test1.txt 至 d:\test 資 料 夾 a.movefile ("c:\\test\\test1.txt","d:\\test\\test1.txt"); DeleteFile() 刪 除 檔 案 例 如, 以 下 敘 述 可 刪 除 test1.txt a.deletefile ("d:\\test\\test1.txt"); Write( 字 串 ) 寫 入 一 列 資 料 例 如, 以 下 敘 述 可 寫 入 一 列 資 料, 下 圖 是 其 執 行 結 果 <script language =javascript >
189 var a=new ActiveXObject("Scripting.FileSystemObject"); b=a.createtextfile ("c:\\test\\test1.txt",true); b.write("this is a book."); b.close(); </script> WriteLine( 字 串 ) 寫 入 一 列 資 料 並 跳 列 例 如, 以 下 敘 述 可 寫 入 一 列 資 料, 下 圖 是 其 執 行 結 果 var a=new ActiveXObject("Scripting.FileSystemObject"); b=a.createtextfile ("c:\\test\\test1.txt",true); b.writeline("this is a book."); b.writeline(" 這 是 一 本 書 "); b.close(); OpenTextFile() 開 啟 文 字 檔 案 其 語 法 如 下 : OpenTextFile( 檔 案 名 稱, 開 啟 模 式 1, 開 啟 模 式 2, 開 啟 模 式 3) 以 上 語 法 說 明 如 下 : 1 開 啟 模 式 1 共 有 3 種 方 式, 分 別 如 下 表 : 值 說 明 1 開 啟 後 僅 能 唯 讀 2 開 啟 後 可 寫 入 資 料, 並 取 代 原 資 料 8 開 啟 後 可 寫 入 資 料, 且 寫 入 的 資 料 是 放 在 原 資 料 後 面 2 開 啟 模 式 2 為 決 定 是 否 建 立 新 檔 案,false 表 示 不 建 立,true 表 示 不 存 在 就 建 立 一 個 3 開 啟 模 式 3 若 為 false 表 示 使 用 ASCII 編 碼 開 啟 檔 案 ReadLine()
190 讀 取 一 列 資 料, 且 不 含 換 列 字 元 例 如, 以 下 敘 述 可 讀 取 一 列 資 料, 執 行 結 果 如 下 圖 <script language =javascript > var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.opentextfile ("c:\\test\\test1.txt",1,false,false); var c=b.readline(); document.write (c); b.close(); </script> ReadLine() 讀 取 n 個 字 元 的 資 料 例 如, 以 下 敘 述 可 讀 取 4 個 字 元 的 資 料 執 行 結 果 如 下 圖 var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.opentextfile ("c:\\test\\test1.txt",1,false,false); var c=b.read(4); document.write (c); b.close(); ReadAll() 讀 取 全 部 的 資 料 例 如, 以 下 敘 述 可 讀 取 test1.txt 的 所 有 資 料 執 行 結 果 如 下 圖 <script language =javascript > var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.opentextfile ("c:\\test\\test1.txt",1,false,false); var c=b.readall(); document.write (c); b.close(); </script> 範 例 2_10a 請 寫 一 網 頁, 可 以 將 文 字 方 塊 寫 入 硬 碟, 亦 可 讀 取 硬 碟 資 料 寫 入 文 字 方 塊 執 行 結 果
191 1 下 圖 左 是 程 式 執 行 的 初 始 畫 面 2 下 圖 右 於 文 字 方 塊 填 入 資 料 3 下 圖 左 是 以 記 事 本 開 啟 的 結 果 4 下 圖 右 是 讀 取 資 料 的 結 果 程 式 列 印 <script language =javascript > // 將 資 料 寫 入 硬 碟 function aa(){ var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.createtextfile("c:\\pbook\\test2.txt",true); var c=myform.t1.value ; b.writeline(c); b.close(); // 從 硬 碟 讀 取 資 料 function bb(){ var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.opentextfile("c:\\pbook\\test2.txt",1,false,false); var c=b.readline(); b.close(); myform.t2.value=c; </script>
192 範 例 2_10b 假 設 使 用 者 已 經 將 所 購 買 彩 券 使 用 記 事 本 記 錄 如 下, 請 寫 一 網 頁, 可 開 啟 網 頁 後, 協 助 其 對 獎, 並 顯 示 對 獎 結 果 執 行 結 果 程 式 列 印 <html> <head> <script language =javascript > // 從 硬 碟 讀 取 資 料 function aa(){ var e=new Array(2,5,12,16,28,32,20); // 開 彩 號 碼 var a=new ActiveXObject("Scripting.FileSystemObject"); var b=a.opentextfile("c:\\jsbook\\test3.txt",1,false,false); var c=b.readline(); b.close(); var d=c.split(" "); // 以 空 白 分 割 字 串, 並 儲 存 在 d 陣 列 myform.t1.value =d.tostring(); // 使 用 者 的 彩 券 號 碼 myform.t2.value=e.tostring(); var n=0; var special=false; var i,j; for (i=0 ;i<=5;i++) for (j=0;j<=5;j++)
193 if (e[i]==d[j]){ n++; break; for (i=0;i<=5;i++) if (e[6]==d[i]) { special=true; break; f=""; if (n==6) f="1"; else if (n==5) if (special) f="2"; else f="3"; else if (n==4) f="4"; else if (n==3) f="3"; else f=" 槓 龜 "; myform.t3.value=f; </script> </head> <body> <form name="myform" method="post" action="--webbot-self--"> <p> 您 的 彩 券 號 碼 :<input type="text" name="t1" size="20"></p> <p> 開 彩 號 碼 :<input type="text" name="t2" size="20"></p> <p> 結 果 是 :<input type="text" name="t3" size="20"> 獎 </p> <p><input type="button" value=" 執 行 對 獎 " name="b1" onclick=aa()> </p> </form> </body>
194 </html> 自 我 練 習 1 假 設 使 用 者 已 經 將 所 購 買 彩 券 號 碼 儲 存 如 下 ( 第 一 列 的 3 表 示, 一 共 購 買 3 張, 其 次, 每 列 的 起 始 號 碼 是 彩 券 編 號 ), 請 寫 一 網 頁, 可 以 協 助 使 用 者 對 獎
Microsoft Word - 第四章.doc
第 四 章 - 試 分 別 說 明 組 合 邏 輯 電 路 與 序 向 邏 輯 電 路 之 定 義 解 : 組 合 邏 輯 電 路 由 基 本 邏 輯 閘 所 組 成 的 此 種 邏 輯 電 路 之 輸 出 為 電 路 所 有 輸 入 的 組 合 因 此 輸 出 狀 態 可 完 全 由 目 前 之 輸 入 來 決 定 而 組 合 邏 輯 電 路 之 示 意 圖 如 圖 所 a 示 ; 而 序 向 邏
6-1-1極限的概念
選 修 數 學 (I-4 多 項 式 函 數 的 極 限 與 導 數 - 導 數 與 切 線 斜 率 定 義. f ( 在 的 導 數 : f ( h 對 實 函 數 f ( 若 極 限 存 在 h h 則 稱 f ( 在 點 可 微 分 而 此 極 限 值 稱 為 f ( 在 的 導 數 以 f ( 表 示 f ( f ( 函 數 f ( 在 的 導 數 也 可 以 表 成 f ( 註 : 為 了
目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 24 10 查 詢 股
流 動 股 票 買 賣 服 務 操 作 指 引 目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 24 10 查 詢 股 價 及 指 數 26 11 切 換 語 言 及 登 出
102.6.30.xls
之 二 資 產 負 債 權 益 展 開 表 102 年 6 月 30 日 單 位 : 新 臺 幣 千 元 資 產 會 計 項 目 展 開 項 目 現 金 及 約 當 現 金 75,497 75,497 存 放 央 行 及 拆 借 銀 178 178 同 業 透 過 損 益 按 公 允 價 值 衡 量 之 金 融 資 產 139,578 139,578 對 金 融 相 關 事 業 之 資 本 投 資
Microsoft Word - 10100000191.doc
臺 灣 集 中 保 管 結 算 所 股 份 有 限 公 司 辦 理 認 購 ( 售 ) 權 證 帳 簿 劃 撥 作 業 配 合 事 項 部 分 條 文 修 正 條 文 對 照 表 附 件 1 修 正 條 文 現 行 條 文 說 明 第 五 章 認 購 ( 售 ) 權 證 之 權 利 行 使 第 一 節 認 購 權 證 採 證 券 給 付 或 以 證 券 給 付 之 認 購 權 證 發 行 人 得 選
第一章 緒論
第 五 章 實 證 結 果 第 一 節 敘 述 統 計 表 11 表 12 分 別 為 男 女 癌 症, 實 驗 組 與 控 制 組 樣 本 之 基 本 特 性 此 為 罹 癌 前 一 年 度 樣 本 特 性 由 於 我 們 以 罹 癌 前 一 年 有 在 就 業, 即 投 保 類 別 符 合 全 民 健 康 保 險 法 中 所 規 定 之 第 一 類 被 保 險 人, 且 年 齡 介 於 35 至
目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).
行 動 電 子 商 務 管 理 師 行 動 電 子 商 務 規 劃 師 術 科 考 試 題 解 製 作 單 位 :TMCA 台 灣 行 動 商 務 運 籌 管 理 協 會 證 照 評 測 試 務 中 心 1 目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮
章節
試 題 阿 財 每 年 年 初 存 入 銀 行 0000 元, 年 利 率 %, 每 年 計 息 一 次, () 若 依 單 利 計 息, 則 第 0 年 年 底 的 本 利 和 多 少? () 若 依 複 利 計 息, 則 第 0 年 年 底 的 本 利 和 約 為 多 少?( 近 似 值 :0 0 計 ) 編 碼 0044 難 易 中 出 處 高 雄 中 學 段 考 題 解 答 ()000 元
如何加強規管物業管理行業
民 政 事 務 總 署 諮 詢 文 件 設 立 物 業 管 理 行 業 的 規 管 架 構 的 公 眾 諮 詢 ( 2010 年 12 月 ) 最 近 修 訂 日 期 : 2010 年 12 月 3 日 http://www.had.gov.hk/tc/publications/consultation_papers/consultation_papers.htm 錄 數 行 度 行 行 見 歷 力
Microsoft Word - 全華Ch2-05.doc
得 分 : 101 學 年 度 第 2 學 期 Ch2-5 數 字 系 統 與 資 料 表 示 法 命 題 教 師 : 範 圍 : 年 班 號 姓 名 一 單 選 題 : ( 1 ) 1. 通 常 PC 上 採 用 2 的 補 數 法 表 示 負 整 數, 所 使 用 的 整 數 範 圍 為 -32768 到 +32767, 請 問 此 情 況 下, 一 個 整 數 佔 用 多 少 Bytes? (1)2
<4D6963726F736F667420576F7264202D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>
國 中 數 學 基 本 學 習 內 容 補 救 教 材 第 一 冊 一 -1 單 元 一 數 線 與 整 數 的 加 減 運 算 主 題 一 正 數 負 數 的 意 義 一 正 數 和 負 數 : 尋 找 寶 藏 北 西 東 小 明 南 小 明 無 意 間 得 到 了 一 張 藏 寶 圖, 圖 上 的 黑 點 代 表 小 明 現 在 站 的 地 方, 每 個 腳 印 都 代 表 1 步 若 要 在
<4D6963726F736F667420576F7264202D20B0EAA5C1A470BEC7BB50B0EAA5C1A4A4BEC7AF5AAFC5BD73A8EEA4CEB1D0C2BEADFBADFBC342BD73A8EEB1F8A4E5B9EFB7D3AAED3936303230A14B>
國 民 小 學 與 國 民 中 學 班 編 制 及 教 職 員 員 額 編 制 準 則 修 正 總 說 明 現 行 國 民 小 學 與 國 民 中 學 班 編 制 及 教 職 員 員 額 編 制 準 則 ( 以 下 簡 稱 本 準 則 ) 係 於 九 十 四 六 月 二 十 三 日 修 正 發 布, 為 配 合 立 法 院 第 六 屆 第 三 會 期 第 五 次 會 議 決 議, 請 教 育 部 (
所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位
95 年 訂 定 96 年 11 月 修 正 97 年 10 月 修 正 100 年 2 月 修 正 101 年 4 月 修 正 102 年 1 月 修 正 103 年 4 月 修 正 103 學 年 度 入 學 新 生 適 用, 舊 生 可 比 照 適 用 1. 研 究 生 須 於 入 學 後 第 二 學 期 開 學 前 選 定 指 導 教 授, 經 課 程 委 員 會 認 定 後 方 得 繼 續
Microsoft PowerPoint - 使用 Word 編輯與排版文件 (II).ppt
課 程 大 綱 使 用 Word 編 輯 與 排 版 文 件 (II) 第 4 章 Word 表 格 第 5 章 文 件 內 容 的 進 階 處 理 許 明 宗 表 格 繪 製 表 格 表 格 的 界 面 表 格 的 選 取 表 格 欄 列 的 新 增 與 刪 除 表 頭 對 角 線 格 線 框 線 與 網 底 儲 存 格 的 新 增 刪 除 分 割 合 併 與 切 換 調 整 表 格 表 格 的
<30332EAAFEA5F3A440A142A447A142A454A142A57CA147BEC7A5CDB14DB77EC3D2B7D3BEC7B2DFA661B9CF2E786C73>
嶺 東 科 技 大 學 財 務 金 融 系 日 四 技 學 生 專 業 學 習 地 圖 02 年 6 月 28 日 0 學 年 度 第 二 學 期 財 務 金 融 系 課 程 委 會 議 通 過 名 稱 微 積 分 ( 一 ) 微 積 分 ( 二 ) 個 體 經 濟 學 商 業 套 裝 軟 體 ( 二 ) 應 用 統 計 學 ( 一 ) 期 貨 與 選 擇 權 國 際 - 管 理 學 保 險 學 商
<4D6963726F736F667420576F7264202D2030332D313032A7DEC075BAC2BC66B56EB04FB44EC5AAA7D3C440A7C7A874B2CEBEDEA740A4E2A5552E646F63>
102 學 年 度 四 技 二 專 技 優 甄 審 入 學 招 生 就 讀 志 願 序 登 記 系 統 操 作 參 考 手 冊 目 錄 一 重 要 事 項 說 明... 1 二 系 統 入 口... 2 三 操 作 步 驟... 2 ( 一 ) 進 入 就 讀 志 願 序 登 記 系 統... 2 ( 二 ) 閱 讀 登 記 就 讀 志 願 序 注 意 事 項... 3 ( 三 ) 登 記 就 讀
證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 2121 2. 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與
下 單 :2111 證 券 快 速 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 2111 2. 點 擊 主 選 單 證 券 專 區 下 單 一 般 下 單 2111 證 券 快 速 下 單 1. 點 擊 後, 可 選 擇 群 組 帳 號 或 單 一 帳 號, 選 擇 後 快 速 點 擊 滑 鼠 左 鍵 兩 下, 可 將 帳 號 完 成 登 錄 並 帶 入 視 窗 2. 點
Microsoft Word - 17300網頁設計.doc
技 能 檢 定 規 範 之 一 七 三 網 頁 設 計 行 政 院 職 業 訓 練 局 編 印 勞 工 委 員 會 中 華 民 國 九 十 年 六 月 網 頁 設 計 技 術 士 技 能 檢 定 規 範 目 錄 一 網 頁 設 計 技 術 士 技 能 檢 定 規 範 說 明... 1 二 丙 級 網 頁 設 計 技 術 士 技 能 檢 定 規 範... 2 三 乙 級 網 頁 設 計 技 術 士 技
實德證券網上交易系統示範
實 德 證 券 網 上 交 易 系 統 示 範 實 德 證 券 網 上 交 易 系 統 分 別 提 供 增 強 版 及 標 準 版, 使 用 標 準 版 必 須 安 裝 JAVA, 標 準 版 自 動 更 新 戶 口 資 料, 而 使 用 增 強 版 則 不 必 安 裝 JAVA, 但 必 須 按 更 新 鍵 才 能 更 新 戶 口 資 料, 請 用 戶 根 據 實 際 需 要 選 擇 使 用 標
第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀
第 6. 節 反 導 函 數 與 不 定 積 分 定 義 6.. 反 導 函 數 說 明 : 第 六 章 求 積 分 的 方 法 若 F( ) f ( ), Df, 則 F ( ) 為 f( ) 之 反 導 函 數 (antierivative) () 當 F ( ) 為 f( ) 之 反 導 函 數 時, 則 F( ) C,C 為 常 數, 亦 為 f( ) 之 反 導 函 數 故 若 反 導 函
Microsoft PowerPoint - 資料庫正規化(ccchen).ppt
資 料 庫 正 規 化 正 規 化 的 概 念 何 謂 正 規 化 (Normalization)?? 就 是 結 構 化 分 析 與 設 計 中, 建 構 資 料 模 式 所 運 用 的 一 個 技 術, 其 目 的 是 為 了 降 低 資 料 的 重 覆 性 與 避 免 更 新 異 常 的 情 況 發 生 因 此, 就 必 須 將 整 個 資 料 表 中 重 複 性 的 資 料 剔 除, 否 則
Microsoft Word - ch07
五 本 要 點 補 助 款 之 請 撥 及 核 結, 依 下 列 規 定 辦 理 : ( 一 ) 補 助 經 費 由 本 署 直 接 撥 付 至 地 方 政 府 經 費 代 管 學 校 及 其 他 學 校 ( 二 ) 聯 絡 處 及 校 外 會 應 檢 附 收 據, 向 經 費 代 管 學 校 或 地 方 政 府 辦 理 核 銷, 原 始 支 出 憑 證 由 經 費 核 銷 單 位 留 存 備 查
1010327
核 算 加 計 利 息 滯 納 金 滯 納 利 息 規 定 及 計 算 範 例 各 稅 法 對 納 稅 義 務 人 逾 期 繳 納 稅 款, 大 多 有 加 徵 滯 納 金 加 計 利 息 之 規 定, 而 逾 期 與 否, 應 以 繳 款 書 所 填 載 之 繳 納 期 間 繳 納 期 限 或 限 繳 日 期 為 準 認 定 之 各 代 收 稅 款 金 融 機 構 對 於 逾 期 繳 納 稅 款
研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝
嘉 義 市 第 三 十 屆 中 小 學 科 學 展 覽 會 作 品 說 明 書 猜 拳 決 勝 負 的 最 佳 策 略 探 討 科 別 : 數 學 科 組 別 : 國 小 組 關 鍵 詞 : 剪 刀 石 頭 布 黑 白 猜 編 號 : 壹 摘 要 在 玩 遊 戲 時 往 往 需 要 運 用 猜 拳 剪 刀 石 頭 布 或 黑 白 猜 來 決 勝 負 或 是 分 組, 但 人 數 一 多, 便 無 法
簽 呈
台 新 證 券 投 資 信 託 股 份 有 限 公 司 公 告 中 華 民 國 105 年 5 月 4 日 台 新 投 (105) 總 發 文 字 第 00116 號 主 旨 : 本 公 司 經 理 之 台 新 亞 美 短 期 債 券 證 券 投 資 信 託 基 金 等 3 檔 基 金 ( 以 下 合 稱 本 基 金 ), 修 正 證 券 投 資 信 託 契 約 暨 配 合 修 正 公 開 說 明
BSP 烤箱 - 封面-2
BSPO615 使 用 及 安 裝 說 明 書 總 代 理 優 氏 集 團 客 林 渥 股 份 有 限 公 司 台 北 市 內 湖 區 行 愛 路 69 號 2 樓 TEL 02-2794 2588 FAX 02-2794 3789 台 中 市 北 屯 區 后 庄 路 1080-12 號 TEL 04-2422 0958 FAX 04-2422 0938 高 雄 市 左 營 區 政 德 路 633
四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明
公 告 及 送 達 教 育 部 公 告 中 華 民 國 103 年 11 月 21 日 臺 教 師 ( 二 ) 字 第 1030167058A 號 主 旨 : 預 告 修 正 幼 稚 園 及 托 兒 所 在 職 人 員 修 習 幼 稚 園 教 師 師 資 職 前 教 育 課 程 辦 法 草 案 依 據 : 行 政 程 序 法 第 一 百 五 十 一 條 第 二 項 準 用 第 一 百 五 十 四 條
NCKU elearning Manual
成 績 一 簡 介... 3 二 成 績 彙 總... 4 三 瀏 覽 成 績... 7 1. 成 績 分 析 長 條 圖... 7 2. 成 績 單... 7 3. 用 戶 報 告... 11 四 類 別 和 項 目... 12 1. 簡 單 檢 視... 12 2. 完 整 檢 視... 15 五 成 績 匯 入... 16 六 成 績 匯 出... 19 1. 成 績 登 錄 檔... 19
PowerPoint 簡報
長 庚 科 大 雲 端 硬 碟 ( 進 階 ) 雲 端 硬 碟 ( 進 階 ) 1 招 我 的 雲 端 硬 碟 (1/3) 我 的 雲 端 硬 碟 Google Apps - 雲 端 硬 碟 查 看 使 用 者 自 己 雲 端 硬 碟 中 的 檔 案 注 意 : 離 線 版 雲 端 硬 碟 只 會 同 步 我 的 雲 端 硬 碟 資 料 夾 中 的 檔 案 1) 查 看 雲 端 硬 碟 已 使 用
e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)
有 關 登 載 事 宜 的 電 子 呈 交 系 統 簡 易 參 考 指 南 2016 年 5 月 1.4 版 本 第 1 頁 目 錄 1 登 入 前 要 準 備 的 資 料... 4 2 登 入 電 子 呈 交 系 統... 5 2.1 輸 入 使 用 者 編 號 及 密 碼... 5 2.2 接 受 免 責 聲 明 的 版 頁... 5 2.3 從 主 項 目 單 中 選 擇... 5 3 一 次
<4D6963726F736F667420576F7264202D20B773AAA9ADBBB4E4BAF4B8F4BBC8A6E6BEDEA740A4E2A5555FABC8A4E1BADD2DADD3A448AAA95F2E646F63>
目 錄 1. 介 紹...2 2. 功 能 列 表...3 3. 操 作 步 驟 說 明 ( 簽 入 / 簽 出 )...5 3.1 簽 入...5 3.2 簽 出...6 4. 操 作 步 驟 說 明 ( 查 詢 類 )...7 4.1 存 款 業 務...7 4.1.1 活 期 / 支 票 存 款 帳 戶 餘 額 查 詢...8 4.1.2 活 期 / 支 票 存 款 帳 戶 明 細 查 詢...9
互 補 : 若 兩 個 角 的 和 是 一 個 平 角 (80 0 0 ), 我 們 稱 這 兩 個 角 互 補, 如 圖, + = 80, 故 我 們 稱 與 互 補 互 餘 : 若 兩 個 角 的 和 是 一 個 直 角, 我 們 稱 這 兩 個 角 互 餘, 如 圖, + =90 0, 故 我
點 線 角 : 在 探 討 幾 何 學 之 前, 我 們 必 須 先 瞭 解 構 成 平 面 圖 形 的 基 本 元 素 - 點 線 角 點 : 點 是 幾 何 學 中 所 討 論 的 最 基 本 圖 形 點 僅 用 來 表 示 事 物 所 在 的 位 置, 而 不 考 慮 它 的 形 狀 與 大 小 圖 示 記 法 讀 法 點 或 點 點 或 點 線 : 線 可 以 想 成 是 筆 尖 在 紙 上
101年度社會福利方案 網路線上操作手冊
104 年 度 社 會 福 利 服 務 方 案 網 路 申 請 線 上 操 作 手 冊 中 華 社 會 福 利 聯 合 勸 募 協 會 103 年 8 月 編 製 中 華 社 會 福 利 聯 合 勸 募 協 會 方 案 線 上 申 請 操 作 1 2 4 0-12 104 年 度 社 會 福 利 服 務 方 案 網 路 申 請 線 上 操 作 手 冊 一 方 案 線 上 申 請 流 程 方 案 線
目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼... 10 ( 五 ) 健 保 卡 更 換... 12 ( 六 ) 重 寄 確 認 信.
補 充 保 險 費 網 路 明 細 申 報 及 列 印 繳 款 書 系 統 操 作 手 冊 衛 生 福 利 部 中 央 健 康 保 險 署 中 華 民 國 104 年 04 月 目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼... 10
授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解
台 中 市 財 團 法 人 光 華 高 級 工 業 職 業 學 校 專 業 科 目 - 數 值 控 制 機 械 教 案 本 適 用 科 別 : 機 械 科 製 圖 科 編 寫 單 位 : 光 華 高 工 機 械 製 圖 科 授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機
Microsoft Word - Draft circular on Sub Leg - 11 Apr (chi)_Traditional
檔 號 : (20) in EDB(SCR) 25/58/11 Pt.4 教 育 局 通 告 第 3/2012 號 2012 年 教 育 ( 修 訂 ) 規 例 2012 年 教 育 ( 豁 免 )( 提 供 非 正 規 課 程 的 私 立 學 校 )( 修 訂 ) 令 2012 年 香 港 考 試 及 評 核 局 條 例 ( 修 訂 附 表 1) 令 [ 注 意 : 本 通 告 應 交 ( a )
前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之
有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 管 理 辦 法 (101.06.07 修 正 ) 第 一 條 本 辦 法 依 農 產 品 生 產 及 驗 證 管 理 法 ( 以 下 簡 稱 本 法 ) 第 五 條 第 二 項 規 定 訂 定 之 第 二 條 本 辦 法 用 詞, 定 義 如 下 : 一 生 產 廠 ( 場 ): 指 在 國 內 生 產 加 工 分 裝 或 流 通 有 機
內 政 統 計 通 報
內 政 統 通 報 一 一 年 第 四 週 100 年 居 家 服 務 使 用 者 度 調 查 結 果 內 政 部 統 處 8 成 5 的 居 家 服 務 使 用 者 對 居 家 服 務 所 提 供 的 各 項 服 務 表 示 有 7 成 5 表 示 會 介 紹 他 人 使 用 有 接 受 居 家 服 務 所 提 供 的 協 助 洗 澡 協 助 換 穿 衣 服 協 助 吃 飯 協 助 起 床 站 立
頁 1 / 8 法 規 名 稱 : 公 務 人 員 俸 給 法 修 正 時 間 :97.1.16 第 一 條 ( 本 法 內 容 ) 公 務 人 員 之 俸 給, 依 本 法 行 之 第 二 條 ( 名 詞 定 義 ) 本 法 所 用 名 詞 意 義 如 下 : 一 本 俸 : 係 指 各 職 等 人 員 依 法 應 領 取 之 基 本 給 與 二 年 功 俸 : 係 指 各 職 等 高 於 本 俸
(DP_MFP_Training
影 印 機 操 作 說 明 1 人 性 化 操 作 面 板 超 大 液 晶 觸 控 面 板 : 容 易 觀 看 及 了 解 (192 x 72mm) 直 覺 性 操 作 面 板 設 計 : 由 上 而 下 由 左 至 右 的 消 費 者 直 覺 操 作 設 計 圖 形 化 界 面 : 所 有 功 能 一 目 了 然, 使 用 方 便 啟 動 統 一 式 設 計 : 全 系 列 相 同 操 作 界 面
骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒
查 詢 本 公 司 資 訊 公 開 說 明 文 件, 請 上 本 公 司 網 站, 南 山 產 物 團 體 傷 害 保 險 傷 害 醫 療 保 險 給 付 ( 日 額 型 ) 附 加 條 款 ( 主 要 給 付 項 目 : 傷 害 醫 療 保 險 金 日 額 保 險 金 ) 100.05.27(100) 美 亞 保 精 字 第 0097 號 函 備 查 101.08.08(101) 美 亞 保 精
Microsoft PowerPoint - sp2 [相容模式]
1 2 SPOTLIGHT 相 信 大 家 都 已 經 知 道, 電 腦 是 透 過 0 與 1 的 位 元 (bit) 來 處 理 資 料 的 數 位 電 子 裝 置 人 類 社 會 所 使 用 的 數 字 系 統 (number system), 或 稱 為 數 值 系 統, 是 早 在 文 明 還 未 進 化 的 時 代 就 已 經 因 為 十 根 手 指 頭 的 關 係 而 採 用 了 十
寫 作 背 景 導 讀 [98] L Lyman Frank Baum 1856-1919 1882 1886 1900 1939
綠 野 仙 蹤 繪 本 創 意 教 案 教 案 設 計 / 朱 秀 芳 老 師 28 寫 作 背 景 導 讀 [98] L Lyman Frank Baum 1856-1919 1882 1886 1900 1939 故 事 簡 介 綠 野 仙 蹤 心 得 分 享 [99] 處 處 有 仙 蹤 繪 本 創 意 教 案 設 計 者 : 朱 秀 芳 適 用 年 級 : 授 課 時 間 :200 教 學
度 ph 度 降 量 量 phph 糖 ph 度 更 3 說 酪 不 不 什 參 度 識 不 度 1
中 華 民 國 第 52 屆 中 小 學 科 學 展 覽 會 作 品 說 明 書 國 小 組 生 物 科 080318 沒 齒 難 忘 的 乳 香 ~ 乳 飲 品 對 牙 齒 的 影 響 學 校 名 稱 : 臺 北 市 大 安 區 私 立 復 興 國 民 小 學 作 者 : 指 導 老 師 : 小 四 甘 杰 生 小 四 陳 宗 駿 林 淑 慧 陳 顥 仁 小 四 黃 暐 哲 小 四 沈 平 關 鍵
(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U1000804)
(2011.08.04 修 訂 ) 目 錄 壹 舊 課 程 複 製 到 新 課 程 的 方 法... 1 一 將 舊 課 程 的 課 程 文 件 匯 入 新 課 程... 1 二 編 輯 新 課 程... 5 三 備 份 舊 課 程 資 料 還 原 至 新 課 程... 6 貳 元 課 程 (META COURSE) 說 明 與 應 用... 12 一 元 課 程 說 明... 12 二 利 用 元
<4D6963726F736F667420576F7264202D20A4A4B0EAA4E5A4C6A46ABEC7C0B3A5CEBCC6BEC7A874BEC7B873C3D2AED1B1C2BB50BFECAA6B31303130343230205F726576697365645F2E646F63>
中 國 文 化 大 學 應 用 數 學 系 學 群 證 書 授 與 辦 法 99.03.19 訂 定 101.04.13 100 學 年 度 第 2 學 期 第 1 次 系 課 程 委 員 會 議 修 訂 101.04.20 100 學 年 度 第 5 次 系 務 會 議 通 過 一 宗 旨 本 系 應 用 數 學 統 計 科 學, 與 計 算 機 科 學 學 群 證 書 授 與 的 目 的 是 希
55202-er-ch03.doc
8 第 章 機 率 - 樣 本 空 間 與 事 件 列 出 擲 一 粒 骰 子 所 出 現 點 數 的 樣 本 空 間, 並 以 集 合 表 示 下 列 各 事 件 : A 是 出 現 點 數 為 偶 數 的 事 件, B 是 出 現 點 數 為 奇 數 的 事 件, C 是 出 現 點 數 大 於 的 事 件 骰 子 出 現 的 點 數 可 能 是,,, 4,5, 6, 因 此 出 現 點 數 的
貳、研究動機
中 華 民 國 第 四 十 六 屆 中 小 學 科 學 展 覽 會 作 品 說 明 書 高 職 組 農 業 及 生 物 科 技 科 第 三 名 091406 石 蓮 花 面 膜 學 校 名 稱 : 國 立 民 雄 高 級 農 工 職 業 學 校 作 者 : 職 二 陳 雅 婷 指 導 老 師 : 李 素 菁 職 二 侯 建 鑫 職 二 許 哲 仁 職 二 侯 富 荃 關 鍵 詞 : 石 蓮 花 面
Microsoft Word - 雲林區_免試平台_國中模擬選填_操作手冊.doc
104 學 年 度 雲 林 區 高 級 中 等 學 校 免 試 入 學 報 名 及 志 願 分 發 系 統 平 臺 國 中 學 校 操 作 說 明 政 高 有 限 公 司 104 年 12 月 25 日 免 試 入 學 報 名 及 志 願 分 發 系 統 平 臺 目 錄 宣 導 事 項... 1 國 中 端 ( 承 辦 人 員 ) 系 統 操 作 流 程 圖... 4 學 生 端 ( 模 擬 選
A2: 國 中 基 測 是 一 種 標 準 化 測 驗, 測 驗 結 果 是 以 量 尺 分 數 表 示 量 尺 分 數 是 透 過 統 計 方 法, 由 答 對 題 數 轉 換 而 來, 其 目 的 是 要 呈 現 每 一 位 考 生 的 每 一 測 驗 學 科 在 所 有 考 生 中 的 相 對
98 年 國 民 中 學 學 生 基 本 學 力 測 驗 問 與 答 節 錄 目 次 肆 精 打 細 算 談 量 尺 節 錄 自 國 民 中 學 學 生 基 本 學 力 測 驗 推 動 工 作 委 員 會 網 頁 資 料 國 中 基 測 自 民 國 90 年 實 施 以 來, 為 我 國 每 年 報 考 人 數 最 多 的 重 要 測 驗 依 據 高 中 暨 高 職 多 元 入 學 方 案, 國 中
目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統... 3 2. 新 用 戶... 4 2.1 新 用 戶 登 入 帳 戶 程 序... 4 2.2 啟 動 網 上 預 約 面 談 訪 問 帳 戶... 5 2.2.1 核 對 帳 戶 的 地 址 資 料... 5 2.2.2
網 上 預 約 面 談 訪 問 使 用 指 南 香 港 特 別 行 政 區 政 府 統 計 處 目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統... 3 2. 新 用 戶... 4 2.1 新 用 戶 登 入 帳 戶 程 序... 4 2.2 啟 動 網 上 預 約 面 談 訪 問 帳 戶... 5 2.2.1 核 對 帳 戶 的 地 址 資 料... 5 2.2.2 閱
Microsoft Word - EXCEL操作說明doc.doc
Excel 操 作 說 明 1 EXCEL 操 作 說 明 關 於 Excel 的 操 作, 雖 然 本 書 已 經 在 各 相 關 章 節 做 了 介 紹, 不 過 根 據 作 者 的 經 驗, 仍 然 有 些 同 學 對 於 Excel 的 操 作 程 序 還 是 有 些 困 惑, 特 別 是 方 程 式 的 運 算, 以 及 資 料 的 編 輯 方 面 針 對 以 上 的 問 題, 我 們 特
鍵 標 準 型 數 位 話 機 來 電 指 示 燈 會 談 暫 留 鈴 聲 跟 隨 靜 音 禁 鈴 可 程 式 鍵 喇 叭 6 ABC DEF 暫 切 4 GHI 5 JKL 6 MNO 重 撥 固 定 功 能 鍵 7 PQRS 8 TUV 9 WXYZ 功 能 聽 筒 0
一 面 板 說 明 1.1 6 鍵 標 準 型 數 位 話 機 喇 叭 6 可 程 式 鍵 ABC DEF 1 2 3 暫 切 4 GHI 5 JKL 6 MNO 重 撥 固 定 功 能 鍵 7 PQRS 8 TUV 9 WXYZ 功 能 聽 筒 0 # 免 持 廣 播 保 留 外 線 燈 號 紅 燈 快 閃 : 外 線 進 入 紅 燈 慢 閃 : 他 人 保 留 中 紅 燈 直 亮 : 他 人 使
行 政 院 衛 生 署 醫 事 人 員 繼 續 教 育 積 分 管 理 系 統 使 用 手 冊 ( 醫 事 人 員 版 ) 中 華 民 國 100 年 2 月 15 日 文 件 修 訂 歷 史 版 本 制 / 修 訂 人 員 變 更 內 容 摘 要 頁 數 提 供 日 期 V1.0 蕭 鳴 孙 初 版 制 訂 All 100.1.18 目 錄 壹 登 入 說 明... 3 貳 操 作 描 述...
網 路 請 購 操 作 手 冊 目 錄 (95~154) 壹 使 用 網 路 請 購 系 統 資 格...95~95 貳 如 何 進 入 網 路 請 購 系 統...96~96 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...97~111 肆 受 款 人 填 法 範 例...112~11
國 立 臺 北 教 育 大 學 網 路 請 購 操 作 手 冊 會 計 室 編 訂 99 年 10 月 網 路 請 購 操 作 手 冊 目 錄 (95~154) 壹 使 用 網 路 請 購 系 統 資 格...95~95 貳 如 何 進 入 網 路 請 購 系 統...96~96 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...97~111 肆 受 款 人 填 法 範 例...112~115
Microsoft PowerPoint - chap5
第 五 章 條 件 判 斷 式 資 訊 科 技 系 林 偉 川 本 章 簡 介 有 時 所 做 的 事 情, 常 常 會 因 為 不 同 的 條 件, 而 有 不 同 的 做 法, 甚 至 會 產 生 不 同 的 結 果 條 件 判 斷 式 的 功 能 善 用 條 件 判 斷 式 的 功 能, 程 式 便 能 選 擇 以 不 同 路 徑 完 成, 也 就 是 選 擇 性 流 程 : 2 1 條 件
投影片 1
文 件 的 格 式 化 本 章 重 點 文 字 的 格 式 設 定 段 落 格 式 的 處 理 使 用 定 位 點 讓 文 章 整 齊 排 列 美 化 條 列 項 目 為 文 字 及 段 落 加 上 框 線 與 網 底 複 製 文 字 與 段 落 的 格 式 設 定 文 字 的 方 向 與 亞 洲 方 式 配 置 將 段 落 首 字 放 大 調 整 英 文 字 的 大 小 寫 與 全 半 形 2 設
<4D6963726F736F667420576F7264202D20AA69AD59ABC2A4BDA571B6C5B56FA6E6A4CEB56FA6E6A4CEC2E0B4ABBFECAA6B31303230363238>
波 若 威 科 技 股 份 有 限 公 司 國 內 第 一 次 無 擔 保 轉 換 公 司 債 發 行 及 轉 換 辦 法 一 債 券 名 稱 波 若 威 科 技 股 份 有 限 公 司 ( 以 下 簡 稱 本 公 司 ) 國 內 第 一 次 無 擔 保 轉 換 公 司 債 ( 以 下 簡 稱 本 轉 換 公 司 債 ) 二 發 行 日 期 民 國 102 年 7 月 8 日 ( 以 下 簡 稱 發
教 學 活 動 教 學 元 件 時 間 編 號 類 型 時 間 元 件 內 容 說 明 ( 請 填 入 8-9 個 元 件 ) 準 引 起 動 機 1.10-1-1-1 動 畫 1 分 鐘 請 製 作 一 動 畫 備 活 以 動 畫 方 式 向 學 生 闡 述 運 算 放 大 器 的 基 本 應 用
高 職 數 位 教 材 發 展 與 推 廣 計 畫 - 電 子 科 單 元 教 案 設 計 表 教 學 目 標 單 元 編 號 10-1-1 單 元 名 稱 理 想 運 算 放 大 器 簡 介 理 想 運 算 放 大 器 簡 介 預 計 本 單 元 總 教 學 時 50 分 鐘 ( 約 30-50 分 鐘 ) 對 應 之 課 綱 間 1. 學 習 目 標 : (1) 瞭 解 運 算 放 大 器 的
連江縣政府所屬學校兼任代課及代理教師聘任實施要點(草案)
連 江 縣 中 小 學 兼 任 代 課 及 代 理 教 師 聘 任 補 充 規 定 中 華 民 國 95 年 5 月 4 日 連 教 學 字 第 0950012838 號 中 華 民 國 97 年 7 月 25 日 連 教 學 字 第 0970022418 號 修 訂 中 華 民 國 99 年 1 月 11 日 連 教 學 字 第 0990001112 號 修 訂 中 華 民 國 101 年 10
Microsoft Word - ATTCH4.docx
高 級 中 等 學 校 多 元 入 學 招 生 辦 法 部 分 條 文 修 正 草 案 總 說 明 現 行 高 級 中 等 學 校 多 元 入 學 招 生 辦 法 ( 以 下 簡 稱 本 辦 法 ) 係 於 一 百 零 二 年 八 月 二 十 三 日 訂 定 發 布, 教 育 部 於 一 百 零 三 學 年 度 實 施 十 二 年 國 民 基 本 教 育, 為 使 十 二 年 國 民 基 本 教 育
題目:中醫師配發藥材及合成中成藥簡介會
中 醫 師 配 發 中 藥 材 及 合 成 中 成 藥 簡 介 會 由 於 中 藥 商 過 渡 性 領 牌 工 作 已 完 成, 當 局 現 正 考 慮 實 施 中 醫 藥 條 例 中 有 關 限 制 管 有 及 銷 售 中 藥 材 及 中 成 藥 以 及 製 造 中 成 藥 的 罰 則 及 相 關 條 文 在 有 關 法 例 實 施 後, 中 醫 師 如 售 賣 或 配 發 中 藥 材 予 任 何
校 長 遴 選 者 就 相 關 遴 選 事 項, 有 程 序 外 之 接 觸 遴 選 會 委 員 在 任 期 間 因 故 無 法 執 行 任 務 或 有 不 適 當 之 行 為 者, 由 各 該 主 管 機 關 解 聘 之 ; 其 缺 額, 依 第 一 項 至 第 五 項 規 定 聘 ( 派 ) 委
高 級 中 等 學 校 校 長 遴 選 聘 任 及 辦 學 績 效 考 評 辦 法 修 正 對 照 表 中 華 民 國 一 百 零 二 年 十 二 月 二 十 日 教 育 部 臺 教 授 國 部 字 第 1020118431A 號 令 修 正 高 級 中 等 學 校 校 長 遴 選 聘 任 及 任 期 考 評 辦 法, 名 稱 並 修 正 為 高 級 中 等 學 校 校 長 遴 選 聘 任 及 辦
瑞興銀行
網 路 銀 行 基 金 服 務 系 統 - 查 詢 類 操 作 手 冊 中 華 民 國 一 零 五 年 版 第 1 頁 目 錄 文 件 導 引 說 明... 3 壹 基 金 服 務 - 查 詢 類... 1 一 我 的 基 金 ( 含 使 用 者 風 險 等 級 )... 1 1.1 更 新 損 益... 2 二 基 金 往 來 明 細 查 詢 ( 含 配 息 )... 5 2.1 基 金 單 筆
中華民國 第51屆中小學科學展覽會
中 華 民 國 第 51 屆 中 小 學 科 學 展 覽 會 作 品 說 明 書 國 小 組 數 學 科 佳 作 080401 連 續 整 數 和 的 難 題 學 校 名 稱 高 雄 市 鼓 山 區 中 山 國 民 小 學 作 者 指 導 老 師 小 五 陳 書 玟 小 五 黃 鈺 媚 邱 郁 芳 許 紋 菁 小 五 方 培 蓉 小 五 許 家 哲 小 五 蔣 承 軒 關 鍵 詞 連 續 整 數 和
99年版人口推計報告
(99)033.805 GPN1009903003 ISBN978-986-02-4626-1 2010 年 2060 年 行 99 年 9 (99)033.805 GPN1009903003 ISBN978-986-02-4626-1 2010 年 2060 年 行 力 行 99 年 9 2010 年 2060 年 數 2010 年 23.17 2060 年 19.90 18.84 17.19
二 兒 歌 選 用 情 形 ( ) 2 ( ) ( ) 1. 158 2.
兒 歌 內 容 分 析 ~ 以 台 灣 省 教 育 廳 發 行 之 大 單 元 活 動 設 計 內 之 兒 歌 為 例 ~ 摘 要 82 76 158 一 兒 歌 類 目 的 分 布 情 形 ( ) 26 23 22 16 61 38.6 16.5 ( ) 二 兒 歌 選 用 情 形 ( ) 2 ( ) ( ) 1. 158 2. 第 一 章 緒 論 第 一 節 研 究 動 機 79 第 二 節 研
一
Hot Potatoes 命 題 軟 體 操 作 說 明 一 註 冊 操 作 程 序 1. 進 入 Hot Potatoes 的 官 方 網 站 網 址 http://web.uvic.ca/hrd/hotpot/index.htm 並 點 選 Register 2. 點 選 read the licence terms. 閱 讀 使 用 說 明 3. 點 選 I have read the license
printing.indd
上 帝 信 仰 與 古 代 中 國 13 基 督 教 之 景 教 在 唐 朝 傳 入 中 國 人 類 最 早 期 活 動 都 在 兩 河 流 域 一 帶 人 類 文 化 始 於 巴 比 倫 兩 河 流 域 14 圖 片 中 國 基 督 教 簡 史 挪 亞 三 子 後 裔 分 散 全 地, 中 國 人 是 閃 族 的 後 人 四 大 文 明 古 國 都 離 不 開 大 河 滋 潤 一 般 書 籍 所
Microsoft Word - 08工程與管理總評_文龍修0508_.doc
群 類 : 工 程 與 管 理 類 科 目 : 專 業 一 ( 物 理 ) 一 試 題 總 體 評 論 : 1. 整 體 分 析 : (1) 分 析 表 評 論 主 題 評 論 內 容 備 註 難 易 是 否 適 中 是 評 量 層 次 是 否 恰 當 是 是 否 符 合 課 程 綱 要 ( 測 驗 目 標 ) 88% 符 合 各 章 節 佔 分 比 重 是 否 適 切 是 是 否 掌 握 重 點
2 2.1 A H 2.2 601288 1288 12 360001 360009 69 100005 86-10-85109619 86-10-85108557 [email protected] 2
AGRICULTURAL BANK OF CHINA LIMITED 1288 2016 2016 3 31 571 XIVA 13.09(2) 13.10B 1 1.1 1.2 2016 4 28 2016 5 2016 1414 1.3 1.4 1 2 2.1 A H 2.2 601288 1288 12 360001 360009 69 100005 86-10-85109619 86-10-85108557
Annual General Meeting statements – Chinese
香 港 交 易 及 結 算 所 有 限 公 司 及 香 港 聯 合 交 易 所 有 限 公 司 對 本 文 件 的 內 容 概 不 負 責, 對 其 準 確 性 或 完 整 性 亦 不 發 表 任 何 聲 明, 並 明 確 表 示 概 不 會 就 因 本 文 件 或 因 信 賴 本 文 件 的 全 部 或 任 何 部 分 內 容 而 引 致 的 任 何 損 失 承 擔 任 何 責 任 滙 豐 控 股
Microsoft PowerPoint - 102教師升等說明會
2 1 3 4 2 5 6 3 7 8 4 9 10 5 11 12 6 13 14 7 15 靜 宜 大 學 教 師 升 等 資 料 ( 僅 供 參 考 ) 一 姓 名 : 二 單 位 : 三 現 職 : 四 學 歷 ( 請 詳 填 起 訖 日 期 ): 五 經 歷 ( 請 詳 填 起 訖 日 期 ): 六 教 師 證 書 字 號 : 年 資 起 算 日 : 七 學 術 專 長 領 域 : 八 任
(1) 參 加 直 轄 市 縣 市 性 比 賽 : 可 得 6 分, 可 得 5 分, 可 得 4 分, 可 得 3 分, 第 5 名 可 得 2 分, 第 6 名 以 後 可 得 1 分 (2) 參 加 性 比 賽 : 直 轄 市 縣 市 性 比 賽 各 之 得 分 乘 以 2 (3) 參 加 國
一 依 據 : 國 立 臺 南 大 學 附 設 實 驗 國 民 小 學 應 屆 畢 業 生 市 長 獎 給 獎 實 施 要 點 1030520 臨 時 校 務 會 議 訂 定 1030903 校 務 會 議 修 訂 ( 一 ) 本 校 應 屆 畢 業 生 畢 業 給 獎 實 施 原 則 ( 二 ) 臺 南 市 102 學 年 度 國 民 中 小 學 畢 業 生 市 長 獎 給 獎 實 施 計 畫 二
???T????????
資 訊 王 資 料 可 於 相 關 網 站 查 詢 對 應 表 系 統 選 項 資 料 選 項 對 應 相 關 網 址 上 櫃 公 司 現 金 增 資 資 料 現 金 增 資 與 股 上 市 股 票 公 開 申 購 資 訊 票 申 購 上 櫃 股 票 公 開 申 購 資 訊 http://www.twse.com.tw/ch/announcement/public.php 合 併 / 個 別 財 務
Microsoft Word - 立法會十四題附件.doc
附 件 一 公 務 員 資 歷 組 別 I. 資 歷 組 別 及 名 稱 資 歷 組 別 名 稱 1 無 需 中 學 會 考 五 科 及 格 2 中 學 會 考 證 書 第 一 組 : 需 要 香 港 中 學 會 考 五 科 及 格 的 第 二 組 : 需 要 香 港 中 學 會 考 五 科 及 格 並 具 相 當 經 驗 的 3 高 級 文 憑 及 文 憑 第 一 組 : 高 級 文 憑 第 二
肆 研 究 方 法 進 行 本 研 究 前, 我 們 首 先 對 研 究 中 所 用 到 名 詞 作 定 義 定 義 : 牌 數 : 玩 牌 時 所 使 用 到 撲 克 牌 數 次 數 : 進 行 猜 心 術 遊 戲 時, 重 複 分 牌 次 數 數 : 進 行 猜 心 術 遊 戲 時, 每 次 分
摘 要 魔 術 師 讀 心 術 背 後 到 底 藏 了 多 少 祕 密? 一 般 觀 眾 心 裡 常 有 著 這 句 話 本 研 究 我 們 破 解 了 魔 術 師 透 過 數 學 規 律 加 上 置 中 手 法 完 成 一 連 串 騙 人 撲 克 牌 遊 戲, 也 學 會 了 如 何 透 過 整 理 表 格 方 式, 來 找 出 數 學 規 律, 也 更 懂 得 如 何 把 簡 單 數 學 技 巧
C12711--CH4.tpf
第 直 流 迴 路 章 4-1 節 點 電 壓 法 4-2 迴 路 電 流 法 4-3 重 疊 定 理 4-4 戴 維 寧 定 理 4-5 最 大 功 率 轉 移 4-6 諾 頓 定 理 4-7 戴 維 寧 與 諾 頓 之 轉 換 重 點 掃 描 習 題 探 討 熟 練 節 點 電 壓 法 的 解 題 技 巧 熟 練 迴 路 電 流 法 的 解 題 技 巧 熟 練 重 疊 定 理 的 解 題 技 巧
本 題 各 點 彼 此 均 有 相 互 關 聯, 作 答 不 完 整, 將 影 響 各 評 分 點 之 得 分, 請 注 意 檔 名 儲 存 錯 誤, 該 題 一 律 0 分 計 算 1. 1. 深 淺 圖 表.xlsx 請 依 下 方 題 目 敘 述 操 作 ( 佔 總 分 :) 儲 存 格 範
2012 世 界 盃 電 腦 應 用 技 能 競 賽 全 國 總 決 賽 競 賽 試 題 暨 評 分 彙 總 表 競 賽 項 目 文 書 處 理 文 書 處 理 Word 2007 Word 2010 電 子 試 算 表 電 子 試 算 表 Excel 2007 電 腦 簡 報 電 腦 簡 報 PowerPoint 2007 PowerPoint 2010 試 題 攜 出 試 場, 一 律 零 分
題組一 文書排版
電 腦 軟 體 應 用 乙 級 檢 定 術 科 題 組 一 附 件 一 解 題 ACCESS 一 建 立 檔 案 匯 入 資 料 表 1 從 開 始 功 能 表 的 所 有 程 式 中, 開 啟 ACCESS 1.1 按 工 作 列 上 的 開 新 檔 案 鈕 1.2 點 選 右 側 窗 格 的 空 白 資 料 庫 1.3 檔 案 名 稱 輸 入 題 組 一 1.4 按 鈕 2 匯 入 題 本 中
<4D F736F F F696E74202D20C4B3C344322DA8CCAA6BB5BDA5CEB3CCA6B3A751BCD0A4CEADADA8EEA9CAA9DBBCD0BFECB27AB1C4C1CAA4A7A740AA6B2E707074>
依 法 善 用 最 有 利 標 及 限 制 性 招 標 辦 理 採 購 之 作 法 行 政 院 公 共 工 程 委 員 會 1 壹 前 言 貳 最 有 利 標 参 限 制 性 招 標 簡 報 大 綱 2 1 壹 前 言 最 有 利 標 決 標 及 限 制 性 招 標, 皆 為 採 購 法 規 定 之 合 法 決 標 及 招 標 方 式 之 ㄧ, 如 能 依 法 善 用, 對 於 提 升 採 購 效
臺灣省教師申訴評議委員會再申訴評議書(草案)
臺 灣 省 教 師 申 訴 評 議 委 員 會 再 申 訴 評 議 書 案 號 :95051 號 再 申 訴 人 : 出 生 年 月 日 : 民 國 年 月 日 身 分 證 字 號 : 服 務 單 位 及 職 稱 : 高 級 中 學 教 師 住 居 所 : 出 生 年 月 日 : 民 國 年 月 日 身 分 證 字 號 : 服 務 單 位 及 職 稱 : 高 級 中 學 教 師 住 居 所 : 出
一、模型資訊
SketchUp 操 作 手 冊 廠 商 : 鴻 維 科 技 ( 股 ) 公 司 住 址 : 高 雄 市 鼓 山 區 昌 盛 路 三 三 四 號 六 樓 中 華 民 國 九 十 八 年 十 一 月 目 錄 一 模 型 資 訊...1 二 偏 好 設 定 ( 使 用 者 設 定 )...2 三 外 廓 線 顯 示 設 定...3 四 圖 面 樣 板 製 作...4 五 快 捷 鍵 使 用 說 明...5
網 路 請 購 操 作 手 冊 目 錄 (117~181) 壹 網 路 請 購 系 統 開 放 對 象...117~117 貳 如 何 進 入 網 路 請 購 系 統...118~118 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...119~134 肆 受 款 人 填 法 範 例...
國 立 臺 北 教 育 大 學 網 路 請 購 操 作 手 冊 會 計 室 編 訂 101 年 11 月 網 路 請 購 操 作 手 冊 目 錄 (117~181) 壹 網 路 請 購 系 統 開 放 對 象...117~117 貳 如 何 進 入 網 路 請 購 系 統...118~118 參 網 路 請 購 / 查 詢 系 統 功 能 簡 介...119~134 肆 受 款 人 填 法 範 例...135~139
CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 064 067 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓
BOOK 山 與 溪 谷 社 編 堀 內 一 雄 執 筆 蕭 雲 菁 譯 CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 064 067 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓 練 068 心 率 計 為
(Microsoft Word - \246\250\301Z\272\336\262z.doc)
模 組 名 稱 : 成 績 管 理 適 用 單 位 : 國 小 目 錄 第 一 章 模 組 簡 介... 5 一 模 組 架 構 圖... 5 二 模 組 權 限 說 明... 6 三 模 組 功 能 說 明... 6 第 二 章 操 作 流 程 - 成 績 管 理... 8 一 成 績 管 理 ( 管 理 權 ) 流 程 圖... 8 二 成 績 管 理 ( 級 任 權 限 ) 流 程 圖...
奇 妙 的 24 摘 要 從 撲 克 牌 中 隨 機 抽 取 4 張 牌 可 以 有 1820 種 牌 組, 在 這 1820 種 牌 組 中, 有 1362 組 可 經 由 四 則 運 算 的 方 式, 算 出 24 點, 有 458 組 無 解 快 速 求 解 的 方 法 有 相 加 法 因 數
金 門 地 區 第 55 屆 中 小 學 科 學 展 覽 會 作 品 說 明 書 科 別 : 數 學 組 組 別 : 國 小 組 作 品 名 稱 : 奇 妙 的 24 關 鍵 詞 :24 點 四 則 運 算 ( 最 多 3 個 ) 編 號 :( 由 主 辦 單 位 填 寫 ) 奇 妙 的 24 摘 要 從 撲 克 牌 中 隨 機 抽 取 4 張 牌 可 以 有 1820 種 牌 組, 在 這 1820
第二組掃描器規範書
第 二 組 掃 描 器 規 範 書 1. A4 規 格 2400 DPI( 含 ) 以 上 掃 描 器 第 1 項 ) 1-1. 機 型 : 平 台 式 掃 瞄 器 1-2. 光 學 解 析 度 :2400x2400DPI( 含 ) 以 上 1-3. 最 大 輸 出 解 析 度 :9600DPI( 含 ) 以 上 1-4. 介 面 :SCSI 介 面 ( 附 介 面 卡 及 傳 輸 線 ) 或 USB
Microsoft Word - 15
行 政 院 農 業 委 員 會 令 中 華 民 國 100 年 12 月 22 日 農 企 字 第 1000010430 號 修 正 產 銷 履 歷 驗 證 機 構 認 證 作 業 要 點, 並 自 即 日 生 效 附 修 正 產 銷 履 歷 驗 證 機 構 認 證 作 業 要 點 主 任 委 員 陳 武 雄 產 銷 履 歷 驗 證 機 構 認 證 作 業 要 點 修 正 規 定 一 行 政 院 農
untitled
目 錄 論 1 2 4 12 14 六 17 19 行 22 理 25 26 料 27 35 0 第 一 章 緒 論 精 療 若 類 不 若 不 易 識 練 識 見 勞 88 年 5 11 88 勞 021084 了 易 識 練 不 易 類 類 料 了 理, 力 易 識 更 1 一 名 稱 化 學 式 第 二 章 乙 炔 氣 之 特 性 Acetylene C 2 H 2 量 26.04 92.3%
128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清
Chapter 06 使 用 樞 紐 分 析 表 快 速 分 組 資 料 127 學 習 要 點 認 識 樞 紐 分 析 表 建 立 樞 紐 分 析 表 調 整 樞 紐 分 析 表 的 版 面 配 置 顯 示 群 組 小 計 的 合 計 折 疊 與 展 開 明 細 資 料 篩 選 與 排 序 樞 紐 分 析 表 資 料 新 增 計 算 欄 位 本 章 結 構 什 麼 是 樞 紐 分 析 表 適 用
LP5-102072電腦週邊設備用品_第一組印表機規範書
1. 印 表 機 1-1 (14~25 頁 ) Host Based(GDI) 印 表 機 1 2 項 ) 第 一 組 印 表 機 規 範 書 及 答 標 單 1-1-1. 可 用 紙 張 : 標 準 A4/Letter 紙 張 1-1-2. 列 印 速 度 :A4 紙 張 每 分 鐘 14~25 頁 1-1-3. 輸 出 格 式 : 黑 白 輸 出 1-1-4. 解 析 度 :600dpi( 含
Microsoft Word - 4.關鍵教學--陳秀湘new.doc
二 元 一 次 聯 立 方 程 式 的 幾 何 意 義 嘉 義 市 國 中 輔 導 團 陳 秀 湘 壹 教 學 活 動 設 計 一 設 計 理 念 在 一 次 數 學 精 進 教 學 研 習 中, 教 授 分 享 一 句 話 : 讀 文 章 是 在 揣 摩 作 者 寫 的 意 思, 的 確, 閱 讀 一 本 小 說 一 份 報 章 雜 誌, 都 是 根 據 讀 者 自 己 所 理 解 的 意 義 來
Microsoft Word - 發行CB轉換辦法_1030717_.doc
振 樺 電 子 股 份 有 限 公 司 國 內 第 一 次 無 擔 保 轉 換 公 司 債 發 行 及 轉 換 辦 法 一 債 券 名 稱 振 樺 電 子 股 份 有 限 公 司 ( 以 下 簡 稱 本 公 司 ) 國 內 第 一 次 無 擔 保 轉 換 公 司 債 ( 以 下 簡 稱 本 轉 換 公 司 債 ) 二 發 行 日 期 民 國 103 年 07 月 28 日 ( 以 下 簡 稱 發 行
長跨距暨挑高建築特殊結構系統之調查分析
第 一 章 1 2 3 4 第 二 章 5 6 7 8 1. 2. 9 3. 4. 5. 6. 7. 8. 9. 10. 11. 10 12. 13. 14. 15. 16. 17. 18. 19. 11 第 三 章 p 12 b / B 0.75 13 p 14 15 D = l 20 +10 16 17 p l D l D l D 3 p 4 3 18 19 20 21 22 23 24 25
<4D6963726F736F667420576F7264202D20B2C433B3B92020B971B8F4A4C0AA52A7DEA5A9>
研 習 完 本 章, 將 學 會 1. 節 點 電 壓 法 --------------------------------------------01 2. 節 點 電 壓 法 之 特 例 -----------------------------------------08 3. 網 目 分 析 法 --------------------------------------------15 4.
ART_RAE16_ticket_cn_p.1
1. 2. 3. 4. 基 础 部 分 - 色 彩 TM TM Premier B2C Sales to China 2014 TM OCR www.divcom.com.hk/ocrc 現 在 開 始 計 劃 訪 問 亞 洲 零 售 博 覽 的 行 程! 交 通 配 套 乘 車 路 線 : 由 機 場 乘 坐 公 共 汽 車 : A11 或 E11 到 灣 仔 (~80 分 鐘 ) 地 鐵 :
國中數學基本學習內容補救教材 第二冊
五 -1 單 元 五 比 與 比 例 式 主 題 1 比 與 比 值 及 其 應 用 一 比 : 兩 個 數 量 以 : 區 隔, 藉 以 呈 現 兩 個 數 量 的 關 係 稱 為 比 例 如 : 一 年 四 班 有 15 個 男 生,18 個 女 生, 則 男 生 人 數 : 女 生 人 數 =15:18 練 習 大 小 兩 個 正 方 形 的 邊 長 各 為 3 公 分 與 2 公 分, 請
投影片 1
著 作 權 文 件 核 驗 業 務 單 證 比 對 作 業 推 廣 說 明 會 報 告 單 位 : 經 濟 部 智 慧 財 產 局 財 政 部 關 稅 總 局 關 貿 網 路 股 份 有 限 公 司 96 年 10 月 12 日 簡 報 大 綱 PART 1 單 證 比 對 作 業 說 明 通 關 方 式 PART 2 申 辦 說 明 - 報 單 PART 3 申 辦 說 明 - 核 驗 單 PART
