從零之022 狗狗的年齡(加入演算法)

程式設計學習不光是為了學習一門程式語言,更重要的是要學會處理問題的方法。孔德之容,惟道是從,在這裡道才是我們需要抓住的靈魂。

關鍵詞:資料模型和演算法

前面的文章,我們做出基本的程式

從零之022 狗狗的年齡(加入演算法)

前文的程式

可以看出,這個程式沒有演算法,雖然程式可以正常執行,但是得不出我們需要的結果。

要想程式能夠算出正確的結果,就要在程式中加入演算法部分,在前面的文章中,我們總結出了資料模型(中型狗)如下:

1歲的狗狗的年齡相當於16歲的人類年齡。

3歲前,每一年狗會老6歲。

以後,每年狗會老5歲。

我們把上述的模型變成程式,加入到年齡計算函式中,函式就變成了下面的模樣

從零之022 狗狗的年齡(加入演算法)

第一個綠線標註的,是把輸入的字串引數轉化為數值型的,這樣才可以參與計算。

第二個綠線標註的,是把計算的結果變成字串,方便資料輸出。這裡主要是遵從我們上一章所講的字串交換資料的預設規則。

第12-13行處理三歲以前的資料計算。

第14和15行,用於計算大於三歲的狗狗。

上面的計算語句,相當於資料模型的翻譯。這幾句話就是這個程式的計算部分,我們就叫它演算法吧。目前的演算法不一定是最好的,但是它的加入使得程式有了靈魂。

為了讓程式執行輸出的更加清楚,在輸入的部分,我們加了換行符

從零之022 狗狗的年齡(加入演算法)

圖中畫了紅線的就是換行符。

在輸出部分加了輔助文字:

從零之022 狗狗的年齡(加入演算法)

輔助文字如上圖。

於是,程式便成了下面的模樣

從零之022 狗狗的年齡(加入演算法)

圖中程式和最初的程式相比,僅僅是改變了函式,主程式沒有任何變化。讀者可自行比較。

下面我們上執行結果

從零之022 狗狗的年齡(加入演算法)

從零之022 狗狗的年齡(加入演算法)

上面的結果我們可以看出,基本得到了我們想要的結果。但這個程式並不完善,在後面繼續研究。