程式語言觀點談潛水規劃表格操作原理 - 潛水運動討論
By Enid
at 2020-01-01T22:25
at 2020-01-01T22:25
Table of Contents
學潛水其實可以培養孩子許多能力,今天來談談對於培養對於演算法、程式語言興趣的可能性。
假如你除了學潛水電腦錶操作,也有學如何用傳統的「規劃表格」來規劃的話,一開始一定覺得很複雜,
可能過了一陣子就忘了怎麼用,然後就從此只會按電腦錶。
其實從程式語言的角度來看,程式=資料+演算法,你只要告訴電腦怎麼去處理資料,以及餵給電腦可以處理的資料,就能夠幫我們演算出結果
規劃表格也不例外,也是有資料的部份和演算法的部份
==
資料型態
表格裡其實只有兩種資料,時間和深度,而深度其實就是長度單位。
也就是說,我們潛到海裡,真正能控制的,也只有時間和深度,你可以控制要在多深的地方停多久,僅此而已。
但為什麼要做規劃,其實就是要「聰明地」控制時間和深度,減低罹患減壓病的機率。
所以我們想知道的是,例如:
想下多深可以待多久?給深度 -> 查 NDL
想待那麼久最深可以下多深? 給 NDL -> 查深度
下了某深度待某段時間後 -> 回水面休息一陣子 -> 在下某個深度,查NDL
之後想下多深待多久,在水面上必須休息多久?
這些問題的資料都是時間和深度
==
演算法虛擬碼(Pseudo code)
至於怎麼去用這表格,其實可以運用虛擬碼來思考,也就是真正寫程式之前,
先用一種介於白話和電腦程式語言之間的虛擬碼,可以讓意思更簡潔明瞭,
讓我們把重點專注在程式的行為和處理的資料上,等確定虛擬碼符合我們想要的需求,
再根據虛擬碼寫成真正電腦能看懂得程式語言。
所以潛水課本看完之後可以嘗試寫下潛水規劃表格的虛擬碼,看看自己是否理解整個運算過程,
也方便日後複習。
==
例外處理(Exception)
有時候某些情況會被歸為例外情況,要特別處理。
例如可能「壓力等級」太大,好比說到XYZ後,就可能得讓SI至少1小時等
這些在表格上會另外註明,使用前必須看清楚。
==
函式(Function)
基本上就是有傳回值的副程式
可以應用在高氧的規劃表格
其實我不需要另外為高氧設一個表格,我只要用原本空氣用的規劃表格就好。
也就是說,假如我可以算出一個值,這個值也可以丟進去吸空氣用的規劃程式就好
那就輕鬆了
在高氧的規劃,其實就試算一個EAD,我吸多少濃度的高氧下多深,其實等同於吸空氣下到另一個深度。
這個換算的原理是建立在氮分壓,所以只要用高氧其實等於低氮的概念去想,就知道怎麼換算。
等我用這個 EAD 函式去算了以後,得到新的深度,再回傳給空氣規劃表格下去計算即可。
當然,你也可以不把這個EAD寫成副程式,但你就得為22-40%每一個整數的濃度都做一個表格,
當然,最常用的就是 EAN32
==
迭代與遞迴
潛水往往是重複潛水,所以我們有機會持續用到表格好幾次,這其實就是迭代的精神。
又或者是我們想要反推,這也會用到遞迴的精神。
例如我們想要知道潛了第一潛之後,要下第二潛該怎麼繼續為資料給演算法
這時候就會查出一個壓力等級的英文符號,這會告訴我們怎麼繼續算下去。
然後得到新的壓力等級,又繼續算下去....
不過,壓力等級這英文符號不能餵給潛水電腦錶繼續算下去,或是潛水電腦錶也不會算一個壓力等級給你
所以當你電腦錶中途壞了,想要切換成表格繼續來規劃,就得利用「歸零大法」,
等到「壓力等級」消失,一切從頭算起就好了。
--
假如你除了學潛水電腦錶操作,也有學如何用傳統的「規劃表格」來規劃的話,一開始一定覺得很複雜,
可能過了一陣子就忘了怎麼用,然後就從此只會按電腦錶。
其實從程式語言的角度來看,程式=資料+演算法,你只要告訴電腦怎麼去處理資料,以及餵給電腦可以處理的資料,就能夠幫我們演算出結果
規劃表格也不例外,也是有資料的部份和演算法的部份
==
資料型態
表格裡其實只有兩種資料,時間和深度,而深度其實就是長度單位。
也就是說,我們潛到海裡,真正能控制的,也只有時間和深度,你可以控制要在多深的地方停多久,僅此而已。
但為什麼要做規劃,其實就是要「聰明地」控制時間和深度,減低罹患減壓病的機率。
所以我們想知道的是,例如:
想下多深可以待多久?給深度 -> 查 NDL
想待那麼久最深可以下多深? 給 NDL -> 查深度
下了某深度待某段時間後 -> 回水面休息一陣子 -> 在下某個深度,查NDL
之後想下多深待多久,在水面上必須休息多久?
這些問題的資料都是時間和深度
==
演算法虛擬碼(Pseudo code)
至於怎麼去用這表格,其實可以運用虛擬碼來思考,也就是真正寫程式之前,
先用一種介於白話和電腦程式語言之間的虛擬碼,可以讓意思更簡潔明瞭,
讓我們把重點專注在程式的行為和處理的資料上,等確定虛擬碼符合我們想要的需求,
再根據虛擬碼寫成真正電腦能看懂得程式語言。
所以潛水課本看完之後可以嘗試寫下潛水規劃表格的虛擬碼,看看自己是否理解整個運算過程,
也方便日後複習。
==
例外處理(Exception)
有時候某些情況會被歸為例外情況,要特別處理。
例如可能「壓力等級」太大,好比說到XYZ後,就可能得讓SI至少1小時等
這些在表格上會另外註明,使用前必須看清楚。
==
函式(Function)
基本上就是有傳回值的副程式
可以應用在高氧的規劃表格
其實我不需要另外為高氧設一個表格,我只要用原本空氣用的規劃表格就好。
也就是說,假如我可以算出一個值,這個值也可以丟進去吸空氣用的規劃程式就好
那就輕鬆了
在高氧的規劃,其實就試算一個EAD,我吸多少濃度的高氧下多深,其實等同於吸空氣下到另一個深度。
這個換算的原理是建立在氮分壓,所以只要用高氧其實等於低氮的概念去想,就知道怎麼換算。
等我用這個 EAD 函式去算了以後,得到新的深度,再回傳給空氣規劃表格下去計算即可。
當然,你也可以不把這個EAD寫成副程式,但你就得為22-40%每一個整數的濃度都做一個表格,
當然,最常用的就是 EAN32
==
迭代與遞迴
潛水往往是重複潛水,所以我們有機會持續用到表格好幾次,這其實就是迭代的精神。
又或者是我們想要反推,這也會用到遞迴的精神。
例如我們想要知道潛了第一潛之後,要下第二潛該怎麼繼續為資料給演算法
這時候就會查出一個壓力等級的英文符號,這會告訴我們怎麼繼續算下去。
然後得到新的壓力等級,又繼續算下去....
不過,壓力等級這英文符號不能餵給潛水電腦錶繼續算下去,或是潛水電腦錶也不會算一個壓力等級給你
所以當你電腦錶中途壞了,想要切換成表格繼續來規劃,就得利用「歸零大法」,
等到「壓力等級」消失,一切從頭算起就好了。
--
Tags:
潛水
All Comments
By Hazel
at 2020-01-04T02:16
at 2020-01-04T02:16
By Lauren
at 2020-01-06T06:08
at 2020-01-06T06:08
Related Posts
高雄場尾牙
By David
at 2019-12-30T10:49
at 2019-12-30T10:49
自潛新手 中高階玻纖vs入門碳纖維請益
By Blanche
at 2019-12-29T20:16
at 2019-12-29T20:16
[心得]從下潛恐慌到拿到AOW心得
By David
at 2019-12-29T14:42
at 2019-12-29T14:42
自動駕駛+切換車道 解釋潛水減壓理論
By Liam
at 2019-12-27T23:34
at 2019-12-27T23:34
SDI / TDI 高氧課程大解析 - 高雄場
By Caroline
at 2019-12-26T23:32
at 2019-12-26T23:32