亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pl004.asp

?? ASPWeb數據庫范例總覽
?? ASP
?? 第 1 頁 / 共 3 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
   <TITLE>程式設計基礎講座(四) ─ 向 bug 宣戰, 程式中最容易潛藏 BUG 的地方</TITLE>
   <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
</HEAD>
<BODY BACKGROUND="back01.jpg">

<H3><FONT COLOR="#008000">程式設計基礎講座(四)</FONT></H3>

<H2 ALIGN=CENTER><FONT COLOR="#0000FF"><FONT SIZE=+3>向 bug 宣戰─<BR>
程式中最容易潛藏 BUG 的地方</FONT></FONT></H2>

<P>
<HR WIDTH="100%"><A NAME="S0"></A><B><FONT COLOR="#0000FF"><FONT SIZE=+2>本文大綱</FONT></FONT></B></P>

<UL>
<TABLE WIDTH="80%" >
<TR VALIGN=TOP>
<TD VALIGN=TOP><A HREF="#s1">數學運算式</A></TD>

<TD><A HREF="#s2">程式轉彎處</A></TD>

<TD><A HREF="#s3">變數</A></TD>
</TR>
</TABLE>
</UL>

<CENTER><TABLE WIDTH="95%" >
<TR>
<TD>蟑 螂 是 生 命 力 很 強 的 動 物 , 大 概 有 人 的 地 方 就 有 它 ,
雖 然 人 類 發 明 了 許 多 殺 蟑 的 方 法 , 但 蟑 螂 還 是 沒 有 因 此
絕 跡 ; 電 腦 的 bug 很 像 蟑 螂 , 它 總 是 悄 悄 地 躲 進 我 們 所 開
發 的 程 式 中 , 雖 然 大 部 份 的 軟 體 開 發 工 具 都 有 殺 蟲 劑 (debugger),
但 bug 也 沒 有 因 此 絕 跡 。 
<P>我 有 一 位 很 強 壯 的 同 事 卻 很 怕 蟑 螂 , 只 要 看 到 蟑 螂 ,
他 一 定 要 翻 箱 倒 柜 把 它 找 出 來 , 否 則 便 無 法 入 睡 , 這 讓
我 聯 想 到 是 否 有 人 為 了 一 個 bug 而 翻 遍 所 有 的 程 式 ? 對 於
小 程 式 來 說 , 這 也 許 不 是 太 難 的 事 情 , 但 對 於 大 型 程 式
, 這 卻 是 不 實 際 的 , 就 像 您 要 在 幾 十 層 的 大 樓 中 搜 索 一
支 蟑 螂 一 樣 。 </P>

<P>我 想 應 該 先 從 蟑 螂 最 常 出 沒 的 地 方 開 始 , 甚 至 在 這 些
地 方 擺 放 殺 蟑 劑 , 同 樣 的 , 在 程 式 中 也 有 bug 比 較 容 易 躲
藏 的 地 方 , 我 們 首 先 要 確 定 bug 是 否 會 躲 藏 在 這 些 地 方 ,
并 且 埋 設 一 些 檢 查 的 關 卡 , 只 要 bug 出 現 就 能 顯 現 警 告 訊
息 。 </P>

<P>蟑 螂 的 多 寡 與 家 具 的 選 擇 有 極 大 的 關 系 , 同 樣 的 , bug
的 多 寡 與 開 發 程 式 的 語 言 也 有 極 大 的 關 系 , 而 在 眾 多 流
通 廣 泛 的 程 式 語 言 中 , 又 以 C 語 言 為 bug 的 最 愛 , 本 期 探
討 一 般 程 式 語 言 容 易 潛 藏 bug 的 地 方 , 或 多 或 少 會 以 C 語
言 為 例 , 不 過 較 完 整 的 整 理 及 討 論 則 留 待 以 後 。 </P>
</TD>
</TR>
</TABLE></CENTER>

<H2><A NAME="s1"></A><FONT COLOR="#0000FF">數學運算式</FONT></H2>

<UL>
<P>如 果 客 戶 的 利 息 算 錯 , 如 果 飛 彈 的 彈 道 算 錯 , 如 果 …
, 利 用 電 腦 來 代 替 人 類 作 運 算 , 原 本 在 取 其 既 迅 速 又 準
確 的 特 性 , 為 什 麼 還 會 有 錯 呢 ? </P>
</UL>

<H3><B><U><FONT COLOR="#000080">錯 誤 類 型 之 一 : 溢 位</FONT></U> </B></H3>

<UL>
<P>對 人 類 來 說 , 「 整 」 的 范 圍 是 從 -∞ 到 +∞ , 對 電 腦 程
式 語 言 來 說 , 「 數 」 卻 有 固 定 的 范 圍 , 因 此 只 要 含 有 +
- × ÷ 等 運 算 符 號 ( operator) 的 運 算 式 , 其 運 算 結 果 都
可 能 超 過 電 腦 程 式 語 言 所 預 設 的 范 圍 。 舉 個 例 子 來 說 :
以 16 位 元 為 整 數 范 圍 ( -32768 到 32767) 的 運 算 中 , 當 a &gt;=
128時 , 運 算 式 「 a * 256」 的 結 果 ( &gt;=32768) 即 超 出 整 數
的 范 圍 , 這 就 是 所 謂 的 「 溢 位 」 ( overflow) 。 </P>

<P>溢 位 的 預 防 別 無 他 法 , 只 有 檢 視 每 一 個 運 算 式 , 并 且
確 定 運 算 子 ( operand ) 的 可 能 值 不 會 使 運 算 式 造 成 溢 位
, 舉 例 來 說 , 您 可 以 在 a * 256 的 運 算 式 前 面 加 上 一 段 邏
輯 判 斷 , 例 如 : </P>

<UL>
<ADDRESS><FONT COLOR="#000080">If -128 &lt;= a And a &lt; 128 Then </FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">x = a * 256 </FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">Else </FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">' 停 止 運 算 </FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">End If</FONT></ADDRESS>
</UL>

<P>但 對 於 比 較 復 雜 的 運 算 式 , 這 種 作 法 并 不 實 際 , 舉 例
來 說 , 我 們 很 難 寫 出 運 算 式 「 a*a + b*10 + c」 是 否 溢 位 的
判 斷 式 , 解 決 這 個 問 題 較 好 的 方 法 是 利 用 程 式 語 言 「 例
外 處 理 」 的 能 力 , 例 如 Visual Basic 就 有 「 On Error ...」 ( 當
發 生 錯 誤 時 , 就 … ) 的 語 法 , 以 下 是 一 個 實 例 : </P>
</UL>

<UL>
<UL>
<ADDRESS><FONT COLOR="#000080">On Error GoTo ErrorHandler</FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">x = a*a + b*10 + c ...</FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">ErrorHandler:</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">' 若 發 生 「 溢 位 」 的 錯 誤 時 , 變
數 Err 將 等 於 6 </FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">If Err = 6 Then ... </FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">' 告 訴 使 用 者 發 生 溢 位 了 </FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">Exit Sub </FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">Else </FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">... </FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">End If</FONT></ADDRESS>
</UL>

<P>不 過 并 不 是 所 有 的 程 式 語 言 都 具 有 「 例 外 處 理 」 的 機
制 , 以 C 語 言 為 例 , 發 生 溢 位 時 , 并 不 會 產 生 溢 位 的 錯
誤 , 只 是 簡 單 地 把 溢 位 的 部 份 去 掉 , 表 面 看 起 來 程 式 還
能 夠 正 常 地 執 行 , 但 實 際 上 執 行 的 結 果 卻 是 錯 誤 的 , 這
是 使 用 C 語 言 應 該 特 別 注 意 的 地 方 。 </P>
</UL>

<H3><B><U><FONT COLOR="#000080">錯 誤 類 型 之 二 : 浮 點 數 的 不 準
確 性 </FONT></U></B></H3>

<UL>
<P>10 + 0.1 等 於 10.1, 這 麼 簡 單 的 算 數 小 學 生 都 會 , 以 下 是
以 Visual Basic 所 做 的 實 驗 : </P>

<UL>
<ADDRESS><FONT COLOR="#000080">x = 10.0</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">While x &lt; 20.0</FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">x = x + 0.1</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">Print x</FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">Wend</FONT></ADDRESS>
</UL>

<P>結 果 列 印 出 來 的 值 自 11.3 以 後 就 不 完 全 正 確 了 : </P>

<UL>
<ADDRESS><FONT COLOR="#000080">...</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">11.1</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">11.2</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">11.3</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">11.40001 ← 開 始 產 生 偏 差 </FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">11.50001</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">11.60001</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">...</FONT></ADDRESS>
</UL>

<P>這 并 非 Visual Basic 的 錯 誤 , 問 題 的 原 因 是 電 腦 以 有 限 的
位 數 來 表 達 無 限 的 數 值 范 圍 所 產 生 的 誤 差 , 雖 然 這 些 誤
差 通 常 都 小 得 可 以 忽 略 它 的 存 在 , 但 仍 有 幾 件 事 情 必 須
加 以 注 意 : </P>

<UL>
<P>·當 我 們 需 要 更 精 確 的 浮 點 計 算 值 時 , 先 確 定 程 式 語
言 能 否 滿 足 需 求 。 </P>

<P>· 同 樣 的 浮 點 運 算 式 在 不 同 機 器 、 或 不 同 的 程 式 語 言
, 可 能 因 為 其 表 達 浮 點 數 的 方 法 不 同 , 而 造 成 計 算 出 來
的 結 果 也 不 同 。 </P>

<P>· 在 邏 輯 判 斷 式 中 , 盡 量 不 要 判 斷 兩 個 浮 點 數 是 否 相
等 , 例 如 以 下 的 回 圈 極 可 能 無 法 結 束 : </P>

<UL>
<ADDRESS><FONT COLOR="#000080">x = 10.0</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">While x &lt;&gt; 20.0</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">' 當 x 等 於 20.0 時 跳 出 回 圈 </FONT></ADDRESS>

<UL>
<ADDRESS><FONT COLOR="#000080">...</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#000080">x = x + 0.1</FONT></ADDRESS>
</UL>

<ADDRESS><FONT COLOR="#000080">Wend</FONT></ADDRESS>
</UL>
</UL>

<P>其 原 因 是 x 雖 然 會 達 到 20.0 的 及 近 似 值 ( 以 Visual Basic
為 例 , 其 值 會 達 到 20.00004) , 但 終 究 不 等 於 20.0, 以 致 無
法 跳 出 回 圈 。 </P>
</UL>

<P><B><U><FONT COLOR="#000080"><FONT SIZE=+1>錯 誤 類 型 之 三 : 除 以
0</FONT></FONT></U></B></P>

<UL>
<P>當 然 沒 有 人 會 笨 到 寫 出 (x / 0) 這 樣 的 運 算 式 , 但 類 似
(x / y) 的 運 算 式 相 信 大 家 都 寫 過 , 因 此 遇 有 相 除 的 運 算
式 時 , 不 妨 先 檢 查 除 數 y 是 否 為 0 的 判 斷 式 , 例 如 : </P>

<UL>
<ADDRESS>If y &lt;&gt; 0 Then</ADDRESS>

<UL>
<ADDRESS>z = x / y</ADDRESS>
</UL>

<ADDRESS>Else</ADDRESS>

<UL>
<ADDRESS>...</ADDRESS>
</UL>

<ADDRESS>Endif </ADDRESS>
</UL>
</UL>

<P><B><U><FONT COLOR="#000080"><FONT SIZE=+1>錯 誤 類 型 之 四 : 弄 錯
運 算 符 號 的 優 先 順 序 </FONT></FONT></U></B></P>

<UL>
<P>數 學 運 算 式 中 , 先 × ÷ 後 + - , 相 信 大 家 都 記 得 清 清
楚 楚 , 不 過 一 個 夠 格 的 程 式 語 言 , 其 所 包 含 之 運 算 功 能
應 該 不 只 這 些 , 可 能 還 包 括 冪 次 方 、 求 馀 數 、 AND、 OR、
XOR 等 , 而 各 種 程 式 語 言 在 運 算 符 號 的 優 先 順 序 定 義 上 并
不 盡 相 同 , 舉 例 來 說 , 以 下 的 運 算 式 在 BASIC 及 C 語 言 的
運 算 結 果 并 不 相 同 : ( 注 : Mod 及 % 分 別 是 BASIC 及 C 語 言
的 求 馀 數 ) </P>

<UL>
<ADDRESS><FONT COLOR="#0000FF">BASIC: 10 Mod 6 / 2 結 果 等 於 1</FONT></ADDRESS>

<ADDRESS><FONT COLOR="#0000FF">C : 10 % 6 / 2 結 果 等 於 2</FONT></ADDRESS>
</UL>

<P>這 兩 種 運 算 式 的 結 果 之 所 以 不 同 , 問 題 就 出 在 運 算 符

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜国产精品一区| 国产精品乱人伦一区二区| 国产在线日韩欧美| 国产精品福利电影一区二区三区四区| 美女高潮久久久| 久久女同精品一区二区| gogogo免费视频观看亚洲一| 国产精品成人在线观看| 欧美精品第1页| 福利电影一区二区三区| 亚洲香肠在线观看| 欧美激情中文不卡| 欧美猛男gaygay网站| 99riav久久精品riav| 激情综合网天天干| 视频一区二区国产| 亚洲一卡二卡三卡四卡| 国产精品成人免费在线| 精品国产亚洲在线| 欧美精品第1页| 欧美亚洲国产怡红院影院| 不卡视频免费播放| 成人综合在线网站| 国产一区在线精品| 国内精品写真在线观看| 肉丝袜脚交视频一区二区| 亚洲精品视频一区二区| 中文字幕欧美三区| 日韩一级成人av| 亚洲影视资源网| 欧美日韩一区三区四区| 色综合咪咪久久| 91在线观看地址| 东方欧美亚洲色图在线| 国产成人a级片| 精品制服美女久久| 青青草国产成人99久久| 蜜臀久久99精品久久久画质超高清| 夜夜嗨av一区二区三区四季av| 国产精品久久综合| 国产欧美视频一区二区| 国产日韩在线不卡| 久久精品一区蜜桃臀影院| 久久这里只精品最新地址| 精品久久久久香蕉网| 久久亚洲二区三区| 精品第一国产综合精品aⅴ| 2022国产精品视频| 国产亚洲欧美日韩日本| 国产精品免费视频观看| 亚洲天堂2014| 亚洲国产成人91porn| 男女男精品视频| 国产精品综合在线视频| 成人高清视频免费观看| 91在线一区二区| 欧美日韩国产精品自在自线| 日韩一卡二卡三卡四卡| 日本一区二区三区高清不卡| 亚洲视频每日更新| 亚洲第一精品在线| 日韩影院在线观看| 精品一区二区在线观看| 欧美精选午夜久久久乱码6080| 3751色影院一区二区三区| 欧美一区二区三区在线视频| 精品国产一区二区三区久久久蜜月| 欧美刺激午夜性久久久久久久| 精品粉嫩aⅴ一区二区三区四区| 久久精品亚洲乱码伦伦中文| 国产欧美日韩精品a在线观看| 亚洲天堂2014| 日韩电影在线一区二区三区| 精品影视av免费| 99久久99久久综合| 69久久夜色精品国产69蝌蚪网| 久久久99久久精品欧美| 亚洲精品免费一二三区| 日韩av电影免费观看高清完整版 | 99久久伊人久久99| 欧美日韩在线三级| 亚洲精品一区二区三区在线观看| 中文字幕中文乱码欧美一区二区| 亚洲第一成人在线| 国产91露脸合集magnet| 欧美日韩一卡二卡| 欧美国产日韩在线观看| 一区二区三区自拍| 国产一区二区不卡在线 | 99精品一区二区三区| 欧美日韩免费视频| 久久你懂得1024| 亚洲成a天堂v人片| 国产成人啪免费观看软件| 欧美日韩一区二区在线观看视频| 久久色中文字幕| 午夜精品久久久久久久| 成+人+亚洲+综合天堂| 日韩欧美激情一区| 一卡二卡三卡日韩欧美| 国产精品996| 日韩一区二区中文字幕| 亚洲欧美电影一区二区| 久草这里只有精品视频| 欧美视频一区在线| 综合激情成人伊人| 国产麻豆午夜三级精品| 91麻豆精品国产91久久久久久 | 6080亚洲精品一区二区| 亚洲欧美综合在线精品| 国产一区二区精品久久99| 91精品婷婷国产综合久久性色| 中文字幕一区二区三| 国产精品综合久久| 精品国产乱码久久久久久影片| 亚洲午夜激情av| 色香蕉成人二区免费| 久久久国际精品| 国产在线精品视频| 欧美不卡一区二区| 麻豆精品视频在线观看| 91麻豆精品国产91久久久更新时间| 亚洲精品乱码久久久久久久久| 不卡电影一区二区三区| 国产精品乱码妇女bbbb| 国产精品亚洲一区二区三区妖精| 91精品国产高清一区二区三区蜜臀| 亚洲一区日韩精品中文字幕| 99精品视频在线播放观看| 国产午夜久久久久| 风流少妇一区二区| 国产精品麻豆欧美日韩ww| 国产凹凸在线观看一区二区| 国产丝袜在线精品| 国产suv精品一区二区6| 国产三级精品三级在线专区| 国产成人自拍高清视频在线免费播放| 精品国产不卡一区二区三区| 国内精品嫩模私拍在线| 欧美韩国日本综合| 波多野结衣欧美| 亚洲欧美视频在线观看| 色婷婷久久久综合中文字幕| 一区二区三区四区精品在线视频| 97久久精品人人澡人人爽| 中文字幕中文字幕一区二区| 99re亚洲国产精品| 亚洲一区免费观看| 在线成人小视频| 日本免费新一区视频| 欧美成人aa大片| 国产精品白丝av| 亚洲色图20p| 欧美久久一二三四区| 久久精品国内一区二区三区| 国产欧美日韩在线| 91免费观看国产| 亚洲成人免费在线观看| 日韩视频中午一区| 成人免费毛片嘿嘿连载视频| 亚洲欧美视频在线观看视频| 欧美日韩成人综合天天影院 | 亚洲色图欧美激情| 欧美剧情电影在线观看完整版免费励志电影| 国产91精品一区二区麻豆亚洲| 日韩欧美成人一区| 国产91丝袜在线播放0| 亚洲免费观看高清完整版在线观看| 欧美亚洲一区二区在线观看| 久久精品国产第一区二区三区| 欧美bbbbb| 成人综合在线网站| 成人午夜又粗又硬又大| 欧美精品高清视频| 国产呦精品一区二区三区网站| 国产精品天干天干在线综合| 欧美伊人久久久久久久久影院| 日本aⅴ亚洲精品中文乱码| 久久嫩草精品久久久精品| www.亚洲在线| 久久电影网电视剧免费观看| 亚洲三级在线免费| 日韩精品一区国产麻豆| 一本色道a无线码一区v| 秋霞午夜av一区二区三区| 国产精品传媒入口麻豆| 日韩欧美在线综合网| 色综合天天综合| 激情综合网激情| 午夜久久福利影院| 久久久久国产精品厨房| 在线观看欧美日本| 成人开心网精品视频| 日本vs亚洲vs韩国一区三区二区| 一区在线观看视频| 久久久精品人体av艺术| 日韩一区二区视频| 欧美性xxxxx极品少妇| 99久精品国产| 国产69精品久久99不卡|