You are on page 1of 8

CNECLWS-CIT s4cit15_notes.doc/P.

1
中華傳道會劉永生中學
中四級 電腦及資訊科技科
第十五課 使用高階語言
使用 Javascript
  筆記採用 Javascript 示範程式編寫,但 Javascript 為指令碼語言,與一般由電
腦直接執行的程式不同。
 考試只要求考生以偽代碼 偽代碼及流程圖
偽代碼 流程圖理解程式,並不要求程式編寫。
流程圖
 使用 Javascript 時,需於網頁檔中加入 Javascript 語句部份︰
<Script LANGUAGE="JavaScript">
…(程序部份)…
</Script>
 可使用 P:\Form4\CIT\ JavaScript 範本.htm 修改
 修改時可按 檢視  原始檔 。

1 變數/變量
在程式執行期間,記憶體內的數值會不停改變,程式需以變 數 / 變 量 以貯存數據。
因此變量/變數是一個記憶體位 置 ,變量中的值則是記憶體位置中的內 容 。

2 輸入資料
利用彈出視窗可容許用戶輸入資料到變量︰
輸入 語法 例子
變量=Prompt(語句) Name=Prompt("請問尊姓大名?")

文字框內的資料會寫進變量 Name

3 輸出資料
利用 Document.write 可將結果輸出到網頁視窗上︰
輸出 語法 例子 輸出結果
輸出字串 Document.write(字符/串) Document.write(“李老師!”) 李老師!
Document.write( “S” ) S
輸出變量 Document.write(算術表式) Num = 12 12
Document.write( Num )
Document.write( 0.4*2 ) 0.8
CNECLWS-CIT s4cit15_notes.doc/P.2
試寫出以下程式的顯示結果
程式 輸出結果
A = 12; A
B = 0.5; 1.5
C = 4; A*B
document.write("A"); 24
document.write("<br>");
document.write( B*3 );
document.write("<br>");
document.write("A*B");
document.write("<br>");
document.write(A*B*C)

4 賦值語句
把數值記錄進某個變量當中。以下為常見賦值語句表示法︰
 A  5 (流程圖)
 C = D-2
 Pi = 3.1415 (C 或 BASIC)
 A := A+3 (PASCAL)
雖然賦值語句沒有特定的符號,但也有其共識的意思︰
4.1 數據賦值是由 右 方的值或表達式賦值至 左 方的變量。
變量名稱=表達式
4.2 語句並不會影響右 方任何變量。(例如︰以上的變量“D”)
4.3 左方只能有 1 個變量。
4.4 賦值語句不是 數 學 等 式 ,不可作化簡、調項等運算。

5 數據類型
每一個變量也要先決定它的類型,電腦才可以運作(註 Javascript 不需先設定變量類型)。
數據類型 描述
數字  包括整 數 及實 數
 主要根據記錄的數據性質以作區別。例子如下︰
籃球賽計分︰ 整 數 / 血壓︰ 實 數
文字  包括字 元 及字 符 串 ,文字也可以是 數 字 或 符 號 。
 一般程式語言以 “ 字符括住文字。
布爾值/  值為 1 或 0 或作 True-False / 真-假 / 是-否,於邏輯判定時使用。
邏 輯 值  數據大小只有 1 位 元
(Boolean)
CNECLWS-CIT s4cit15_notes.doc/P.3
6 算術運算
加、減、乘、除為 + - * /。運算符優次以「先乘除後加減」方式進行。
運算符加

7 條件語句
7.1 條件語句指在符合指定條件下,電腦才執行某些動作。
7.2 條件語句的結果為 布 爾 值 ,即 1 或 0。
偽代碼 流程圖 語法 例子
如果 條件
則 語句 1 真 條件 If (條件) If (sex==“M”)
語句 假
{
語句
{
Document.write(“先生”)
} }

如果 條件 If (條件) If (sex==“M”)
則 語句 1 { {
否則 語句 2 真 條件 假 語句 1 Document.write(“先生”)
語句 1 語句 2 }else }
else
{ {
 語句 2 Document.write(“小姐”)
} }
8 關係運算符
當條件內需要決定
意義 偽代碼 / 流程圖 Javascript 語法 例子
等於 = == Password==”LWSx0011”
不等於 <> 或 ≠ != Sex != “M”
大於 > > B*B-4*A*C > 0
小於 < < X < 2*Y
大於或等於 ≥ >= Date >= 31
小於或等於 ≤ <= Month <= 12

9 布爾運算符
當 if 語句內之條件由兩個條件構成時,需要以布爾運算符連合︰
意義 偽代碼 / 流程圖 Javascript 語法 例子
及 及 / AND && Sex==”F” && Married==”Y”
或 或 / OR || Age<12 || Age>65
非 不 / NOT ! ! A=3
CNECLWS-CIT s4cit15_notes.doc/P.4
10 邏輯運算
邏輯運算包括將不同的條件結合,以處理較複雜的運算。
運算 及 (AND) 或 (OR) 非 (NOT)
兩個條件 同 時 為真,結 兩個條件 其 中 一 個 為 將所得的結果相反。
描述
果為真。 真,則結果為真。
條件 P 條件 Q P 及 Q 條件 P 條件 Q P 或 Q 條件 P 非P
T T T T T T T F
邏輯運
F T F F T T F T
算表
T F F T F T
F F F F F F

Javascript 例子︰
要求 Javascript 語句
如果 score 大於 50,顯示 “合格”。 if (score>50) {
document.write(“合格”)
}
如果 rain 是 “Y”,顯示 “下雨”,否則顯 if (rain == “Y”) {
示 “晴天”)。 document.write(“下雨”)
}
e l s e {
document.write(“晴天”)
}
如果 age 介乎於 12~18,顯示 “學生”。 if (age>=12&&age<=18) {
document.write(“學生”)
}
如果 vip 為 1,price 為八折; if (vip==1) {
如果 vip 為 2,price 為九折; p r i c e = p r i c e * 0 . 8
否則沒有折扣。 }
else i f ( v i p = = 2 ) {
p r i c e = p r i c e * 0 . 9
}
如果 a、b 及 c 均為 “*”,則顯示 “冠軍” if (a==“*”&&b==“*”&&c==“*”) {
document.write(“冠軍”)
}
如果 a、b 或 c 其中一個為 “*”,則顯示 “季 if (a==“*”||b==“*”||c==“*”) {
軍”。 document.write(“季軍”)
}
CNECLWS-CIT s4cit15_notes.doc/P.5
11 迴路 / 迴圈(Loop)
迴圈
除了選擇語句,程序可重複某工作直至乎合某條件。這種結構稱為迴路 迴路 (迭代
迭代)
迭代 語句。常
語句
見以下三種︰
11.1 for 迴路
11.2 while 迴路
11.3 do…while 迴路(或作 repeat…until 迴路)

迴路 For While Do…while


用法 有特定重覆次數的工序 當條件仍為真時, 先進行工作,
不斷重覆工作 再檢查是否需要重覆
偽代碼 重覆以下步驟 n 次 如果 條件 語句
語句 則 語句 如果 條件
跳回(條件) 則跳回(語句)
偽代碼例子 1. 如果 x 小於 100,則 1. 輸出 “輸入密碼”
2. 輸出 x 2. 讀入密碼至 pass
3. x 加1 3. 如果 pass 不是 “lws”
4. 跳回步驟 1 4. 跳回步驟 1
流程圖
i=1
假 語句
條件

i<=n 真 假
條件
真 語句

 
語句…

i=i+1

Javascript For (i=1;i<=n;i++) While (條件) Do
語法 { { {
語句… 語句… 語句…
} } }
While (條件)

例子︰以不同 Javascript 迴路計算 10 個數的總和︰


For 迴路 While 迴路 Do…while 迴路
sum = 0; sum = 0; sum = 0;
For (I=1;i<=10; i++) I = 1; I = 1;
} while (I < = 1 0 ) do
n=prompt(“輸入數字:”); { {
sum = sum + n; n=prompt(“輸入數字:”); n=prompt(“輸入數字:”);
} sum = sum + n; sum = sum + n;
I = I + 1; I = I + 1;
} }
while (I < 1 1 )
CNECLWS-CIT s4cit15_notes.doc/P.6
程式錯誤
11.4 語法錯誤
電腦只會根據輸入的指令工作,不能理解 理解不合語法的指令,故程式編寫員有必要輸
理解
入準確指令︰
Javascript 例子 修正
if (x=5) if (x==5)
document.wrote(‘A”); document.write(‘A”);

11.5 執行錯誤
錯誤例子
錯誤例子 可能的原因
X = 0; 分母是 0
Y = 10 / X;
X = 12345; 數值大於變量的容量 /
Y = Math.pow(X,X); 溢出 (Overflow)
X = -1000; 把負數平方根(非實數)
Y = Math.pow(X,0.5);

11.6 邏輯錯誤
常見的邏輯錯誤有以下數類︰
要求 例子 錯誤 修正
找出輸入中的最少值 1. min = 0
當輸入-1 表示完成輸入 2. 如 x ≠ -1
3. 則 輸入 x
初始值
4. 如 x < min 1. min = 99999
錯誤
5. 則 min = x
6. 跳回步驟 2
7. 輸出 min
顯示 1 至 100 的數字 1. x = 1
2. 如果 x<100
判斷條
3. 則 輸出x 2. 如果 x ≤ 100
件錯誤
4. x=x+1
5. 回到步驟 2
用戶需輸入正確密碼方 1. 如果 pass <> “lws” 於步驟 1 後加入︰
可登入 2. 則 輸出 “密碼不符!” 遺漏語句 輸入 pass
3. 回到步驟 1
計算梯型面積 1. 輸入 b1
2. 輸入 b2
算式錯誤 (b1+b2)*h/2
3. 輸入 h
4. 輸出 b1+b2*h/2
CNECLWS-CIT s4cit15_notes.doc/P.7
12 空運行表(Dry Run Table)
可以利用空運表測試程序輸出是否合乎要求。工序如下︰
12.1 列出所有變量
12.2 將變量以表列顯示
12.3 按程序運作,並記下變量之變化
12.4 檢查輸出是否正確

例子 1︰於空運行表寫出每次程序完成步驟 5 後變量的數值 空運行表


1 sum = 0 n Sum
2 n=1 2 1
3 如果 n<5,則 3 5
4 sum = sum + n2 4 14
5 n=n+1 5 30
6 跳回步驟 3

例子 2︰於空運行表寫出每次程序完成步驟 7 後變量的數值 空運行表


1. amount = 1000 amount term
2. interest = 0.02 1000 0
3. pay = 150 870` 1
4. term = 0 737.4 2
5. 如果 amount>0,則 602.15 3
6. term = term + 1 464.19 4
7. amount = amount × (1+interest) – pay 323.47 5
8. 回到步驟 5 179.94 6
9. 顯示 term 33.543 7
-115.79 8

例子 3: 課本 137 頁 – 練習 7
CNECLWS-CIT s4cit15_notes.doc/P.8
13 回波檢查(Echo Check)
當程序出現錯誤或需要檢查時,由於程序未必會顯示運行中的資訊,故較難以找出錯誤。
回波檢查是於程序中加插入輸出語句以取得運行時中的數值。

沒有回波檢查的程序 輸出結果
<Script LANGUAGE="JavaScript"> 8

amt = 1000
ints = 0.02
pay = 150
term = 0

while (amt>0) {
term = term+1
amt = amt*(1+ints)-pay
}
document.write(term)

</script>

加入回波檢查的程序 輸出結果
<Script LANGUAGE="JavaScript">
1, 870
amt = 1000 2, 737.4
ints = 0.02 3, 602.148
pay = 150 4, 464.19096
term = 0 5, 323.4747792
while (amt>0) { 6, 179.94427478400001
term = term+1 7, 33.54316027968002
amt = amt*(1+ints*1)-pay 8, -115.78597651472637
document.write(term+", "+amt+"<br>") 8
}
document.write(term)

</script>

You might also like