童蒙程式
苟日新,日日新,又日新。若遵此理,則諸君當學近今潮流提倡之編程乎?小童然也?大人然也? 然也非也其故甚長,唯且嘗析程式思想之基要,解其魅之所以然。 基要 程式有四基要,條件判斷、運算、指派、執行。 我們先想作有一白紙,此白紙上可寫上命令並遞予執行者。執行者將由上至下,逐步執行敕令:判斷、運算、指派。 試作如下: 甲:[將 1+1 之和值與 3對等之結果指派予 X。] 乙:[若 X 為真,請執行者靜默;否則揚聲。] 執行者欲語默或揚聲,須先判斷靜默之條件是否成立。若靜默之條件成立,則可開出靜默;反之,則揚聲。 欲知靜默之條件是否成立,須求得 X 之值。若 X 之值為真,則靜默之條件成立;反之,則靜默之條件不成立。 欲求 X 之值,先計算 1+1之和,再將此值與 3 相比。結果是二值不對等,則可說: [1+1 之和值與 3 對等]之運算得出[否] [否]之結果將指派予 X, X 有如傳令者,將此令從甲傳至乙以判斷。若無指派此傳令者,則甲乙之間有萬象深淵,信息不能傳也。 既然判斷 靜默之條件 不成立(二值不對等),理當執行 之命令:揚聲。 續問,何解不將甲乙合併,則不需指派傳令員? 甲’:[若 1+1 之和值與 3對等之結果 為真,請執行者靜默;否則揚聲。] 答曰:善,唯程式之冗長實非只有甲乙二者。若有六十甲子之多命令,汝亦忍心一併合之?此合一之命令則難免冗長難閱,使撰命令者勞心詳寫;雖省卻傳令者,唯缺了書寫之通達。雖執行者可為無貪嗔痴所毒之電腦,可謂信達雅三者只求信;書寫欶令者、往後謄正欶令者卻是凡人,有信而無達無雅之文令可謂艱深難解。汝當能忍此心? 數理問題之可解 設有一難題如下:請列出一至一百以內之質數。 此難題之懶解,可謂將一至一百內之數字逐個試驗,看看能否被其之外之數所整除。 唯當中涉及之步驟之次數可達五仟,難免累人。相比凡人在紙上手算,電腦之計算速度可謂極快,善編程者則可請電腦勞之。 迴圈者,乃方便重複功夫及依規律改變部分傳令之值之式也。此式正可派上用場。 甲:[將 1 之值指派予 i ] 乙:[若 i 能被 i 以外之數值整除 為真,請執行者讀出 i ;否則語默。] 丙:[若 i 之值少於 101 為真,請 將 i+1 之值指派予 i 並返回乙令;否則語默。] 乙丙如此則能形成一迴圈,當 i 之值少於 101 時,執行者將回...