Pseodo Code(虛擬碼)
介紹何謂虛擬碼
什麼是虛擬碼
又稱為偽代碼,是高層次描述演算法的一種方法。它不是一種現實存在的程式語言;它可能綜合使用多種程式語言的語法、保留字,甚至會用到自然語言。 -引用自維基百科-虛擬碼
由此可知,虛擬碼不限於任何程式語言,做為幫助我們以邏輯思考,理解解釋代碼的語法、規則、內涵和結構,再將每個步驟安排,在以自己會的程式語言撰寫出來:
- 想好模擬碼與流程圖
- 實現並排除錯誤
經典範例Fizz Buzz
if 被3整除
印出 Fizz
if 被5整除
印出 Buzz
if 被15整除
印出 Fizz Buzz
由上面的條件,我們可以先從文字條件規劃一下流程圖,
先以文字順序規劃想法:
- 數字1-30(程式代入i=1)->被3整除->印出Fizz
- 無法被3整除但可以被5整除->印出Buzz
- 皆無法但可以被15整除?(有點奇怪!)
- 應該把能被15整除移至前面步驟。
經過上面思考順序改成:
- 數字1-30(程式代入i=1)->能被15整除->印出FizzBuzz
- 無法被整除但能被3整除->印出Fizz
- 無法被3整除但可以被5整除->印出Buzz
- 皆無法就顯示原始數字(
console.log(i)
)
經過上面思考我們可以得知:
1.被15整除,等同於可以被3整除且可以被5整除
2.整除在程式之中為餘數等於0
因此撰寫成程式:
1 | function fizzbuzz() { |
經過釐清之後我們順利印出FizzBuzz想要的結果囉!
練習題:得到字串長度的 wordLength() 函式
- 預期 pen 的字串長度為 3
- 預期 apple 的字串長度為 5
- 預期 Pineapple 的字串長度為 9
- 預期 古坂大魔王 的字串長度為 5
先以文字規劃想法並思考順序:
1.得知 length可計算字串長度
2.宣告 欲輸入值的名字 為 要輸入的值
3.印出 宣告後的輸入值名字.length
將想法寫成程式:
1 | //這裡欲輸入值的名字取為wordLength |
需求是得到函式結果:
4.把上面計算代入函式內
1 | function wordLength(word) { |
練習題:將單字變成小寫 wordLowerCase() 函式
- 預期大寫的喵變成小寫的喵 CAT 變成 cat
- 預期 Tea 變成 tea
先以文字規劃想法並思考順序:
1.得知 toLowerCase()可字母轉成小寫
2.宣告 欲輸入值的名字 為 要輸入的值
3.印出 宣告後的輸入值名字.toLowerCase()
將想法寫成程式:
1 | var wordLowerCase = '(要輸入的值.ex:CAT)'; |
需求是得到函式結果:
4.把上面計算代入函式內
1 | function wordLowerCase(word) { |
練習題:將單字變成大寫 wordUpperCase() 函式
- 預期 Dog 變成 DOG
- 預期 hello world 變成 HELLO WOLRD
先以文字規劃想法並思考順序:
1.得知 toUpperCase()可字母轉成小寫
2.宣告 欲輸入值的名字 為 要輸入的值
3.印出 宣告後的輸入值名字.toUpperCase()
將想法寫成程式:
1 | var wordUpperCase = '(欲輸入值.ex.dog)'; |
需求是得到函式結果:
4.把上面計算代入函式內
1 | function wordUpperCase(word) { |