化學式與莫耳數計算機 – 快速計算出分子的莫耳數、分子量等數據

4 / 14, 2014 PHP , 軟體推薦

之前為了消滅邪惡的理化作業,所以寫了一個可以透過化學式算出莫耳數和在指定重量內每個元素佔有的重量、分子量、每個分子的重量、每個原子的係數、每個原子對應的原子量,根本是解題神器。同時也感謝Yuxin協助我設計UI,不然原始UI悲劇XD

https://github.com/s3131212/chemical-formula-calculators

一如往常,MIT授權,你爽怎用就怎用,不要違反MIT授權就好

這Project最困難的就是拆解化學式,因為目前我和 Licson 和 Yuxin 都寫不出一個完美的 Regex 解法,只好用 for 迴圈來解決,而我也花了超級久在製作括號處理,像是Mg(OH)2之類的

UI是 Yuxin 設計的,用 MathJax ,每次進入的顏色都不一樣喔
chemical-formula-calculators-1

當然剛剛說了,括號是可以被正常處理的,但是如果括號裡有係數會悲劇喔XD
chemical-formula-calculators-2

目前還有一些問題,除了Github上面的提到的,在效能較差的伺服器或是同時太多人使用,可能導致解答載入緩慢,和當係數超過百位(通常是亂輸入)或元素名稱有三位以上(Uut等等,幾乎不可能用到)時,可能因為化學式無法被正確拆解而發生 CPU 超載或是 PHP 被強制停止以外,如果非簡式(如CH3COOH)時,也會有解析的 Bug ,尚待解決
更新:已經可以解析非簡式

最後,最近這幾個月不是平凡的混,一兩個星期一篇文,我知道啦以後認真點~

  • 很無聊地做了個簡單的JS版本

    https://github.com/kamira/MolecularMassCounter

    • s3131212

      厲害
      不過 CO2 帶進去就 GG 惹

      • 哈哈哈,我完全忘記單元素會發生的狀況了,感謝,目前已修正。

        另外我並不厲害,我完全不知道閣下的php怎麼寫出來的,而我只是利用摸過的東西以及分析要如何達成一樣效果的流程依樣畫葫蘆吧了。

        • s3131212

          用正規表達式解,太厲害了
          我當初研究了很久怎麼用 regex 解都沒成功,最後就放棄了選擇用暴力拆開的 XD

          • 別這麼說,比起 我破破的 js ,你 php 寫得看起來更整齊更容易理解

            • s3131212

              你認真的嗎 ==
              我這專案的 PHP 已經亂到我完全不打算維護了

  • 余明霖

    喜歡這東西~www

    希望有繼續更新~XDD

    • s3131212

      最近這個 Project 一直都有在維護喔,只是這篇文沒有更新而已,去 Github 看就會看到 Commit Log 了

      • 余明霖

        OK!

  • 超好用:))我喜歡理化,但最討厭一堆古板的計算題…

    • s3131212

      我算是不喜歡也不討厭理化啊,不過計算真的很煩….

  • 正為此頭痛中XD

    • s3131212

      其實我是上完這段課了才把檔案放出來XD