[心得] 程式语言观点谈潜水规划表格操作原理

楼主: magicfx (去南半球度假)   2020-01-01 22:25:10
学潜水其实可以培养孩子许多能力,今天来谈谈对于培养对于算法、程式语言兴趣的可能性。
假如你除了学潜水电脑表操作,也有学如何用传统的“规划表格”来规划的话,一开始一定觉得很复杂,
可能过了一阵子就忘了怎么用,然后就从此只会按电脑表。
其实从程式语言的角度来看,程式=资料+算法,你只要告诉电脑怎么去处理资料,以及喂给电脑可以处理的资料,就能够帮我们演算出结果
规划表格也不例外,也是有资料的部份和算法的部份
==
资料型态
表格里其实只有两种资料,时间和深度,而深度其实就是长度单位。
也就是说,我们潜到海里,真正能控制的,也只有时间和深度,你可以控制要在多深的地方停多久,仅此而已。
但为什么要做规划,其实就是要“聪明地”控制时间和深度,减低罹患减压病的机率。
所以我们想知道的是,例如:
想下多深可以待多久?给深度 -> 查 NDL
想待那么久最深可以下多深? 给 NDL -> 查深度
下了某深度待某段时间后 -> 回水面休息一阵子 -> 在下某个深度,查NDL
之后想下多深待多久,在水面上必须休息多久?
这些问题的资料都是时间和深度
==
算法虚拟码(Pseudo code)
至于怎么去用这表格,其实可以运用虚拟码来思考,也就是真正写程式之前,
先用一种介于白话和电脑程式语言之间的虚拟码,可以让意思更简洁明了,
让我们把重点专注在程式的行为和处理的资料上,等确定虚拟码符合我们想要的需求,
再根据虚拟码写成真正电脑能看懂得程式语言。
所以潜水课本看完之后可以尝试写下潜水规划表格的虚拟码,看看自己是否理解整个运算过程,
也方便日后复习。
==
例外处理(Exception)
有时候某些情况会被归为例外情况,要特别处理。
例如可能“压力等级”太大,好比说到XYZ后,就可能得让SI至少1小时等
这些在表格上会另外注明,使用前必须看清楚。
==
函式(Function)
基本上就是有传回值的副程式
可以应用在高氧的规划表格
其实我不需要另外为高氧设一个表格,我只要用原本空气用的规划表格就好。
也就是说,假如我可以算出一个值,这个值也可以丢进去吸空气用的规划程式就好
那就轻松了
在高氧的规划,其实就试算一个EAD,我吸多少浓度的高氧下多深,其实等同于吸空气下到另一个深度。
这个换算的原理是建立在氮分压,所以只要用高氧其实等于低氮的概念去想,就知道怎么换算。
等我用这个 EAD 函式去算了以后,得到新的深度,再回传给空气规划表格下去计算即可。
当然,你也可以不把这个EAD写成副程式,但你就得为22-40%每一个整数的浓度都做一个表格,
当然,最常用的就是 EAN32
==
迭代与递回
潜水往往是重复潜水,所以我们有机会持续用到表格好几次,这其实就是迭代的精神。
又或者是我们想要反推,这也会用到递回的精神。
例如我们想要知道潜了第一潜之后,要下第二潜该怎么继续为资料给算法
这时候就会查出一个压力等级的英文符号,这会告诉我们怎么继续算下去。
然后得到新的压力等级,又继续算下去....
不过,压力等级这英文符号不能喂给潜水电脑表继续算下去,或是潜水电脑表也不会算一个压力等级给你
所以当你电脑表中途坏了,想要切换成表格继续来规划,就得利用“归零大法”,
等到“压力等级”消失,一切从头算起就好了。
作者: jack7614614 (林阿轩)   2020-01-01 22:55:00
教练 推推 不过数学向来是罩门啦 数学没及格过
楼主: magicfx (去南半球度假)   2020-01-01 22:57:00
查表用到的数学很简单

Links booklink

Contact Us: admin [ a t ] ucptt.com