"邏輯"濫用指數可能是第一名,根本沒幾個人知道"邏輯"是甚麼。
談 邏輯沒多大意義,談甚麼樣的訓練可以培養邏輯?
很多教邏輯的課程 書 都很無聊 。 最接近邏輯的是 數學上的證明題。
缺點是答案都有了,真實的世界是不會先給答案的。
自從電腦出現後,所有的邏輯課程都變的一點意義都沒有了。
因為電腦程式語言就是把邏輯直接實現的 最好的科學。
int array[100]; //有100個隨機整數的數字,從這裡面挑出你想要的數字
1. N>=30 而且 N <= 80. //這樣怎麼寫?
if( N>=30 && N <= 80 ){ Push(N); }// 就這樣而已 跟若P則Q很像,但是更嚴謹
2. N<=30 或者 N >= 80.
if( N>=30 || N <= 80 ){ Push(N); }
3. N<=30 或者 N >= 80 而且是偶數
if( N>=30 || N <= 80 && N%2==0 ){ Push(N); }
我不大確定這個對不對。 不過我通常不會這麼寫。
if( N>=30 || N <= 80 )
{
if( N%2==0 ){ Push(N); }
}
多麼好的邏輯訓練。
C++跟JavaScipt
巴別塔(也譯作巴比倫塔,或意譯為通天塔),據《聖經·創世記》第11章記載,當時人類聯合起來興建希望塔頂通天能傳揚己名的高塔。為了阻止人類的計劃,上帝讓人類說不同的語言,使人類相互之間不能溝通,計劃因此失敗,人類自此各散東西。
這說明了目前程式語言混亂的情形。
程式語言就只分兩種,能編譯成機器碼,跟不能編譯成機器碼(script language)。
所以除了c++以外,你看到的幾乎都是script language。
java, c# ,VB也是 script language, 網頁用的也都是script language。
混亂的就是這 script language部分。
其實語言定義的愈嚴格,愈容易學。
C裡面的每個變數宣告,例如 int i; 就會直接表明這個變數佔了多少個byte,寫得很死,型態也清楚。不用懷疑。
javascipt: var i; 你根本不知道這個i是甚麼? 字串?整數,......通通不曉得,多少個byte?不曉得。
javascript最後導致最佳化很困難。javascript 函數物件很多寫法都很混亂,很多種寫法。
不管是debug跟最佳化,最後就是個大麻煩。沒人會想用javascript寫超過10萬行的程式。
這種因為網頁興起的語言的特性本來就是如此, 簡單 方便入門, 網頁快速看到結果,
寫一行 javascript, 瀏覽器幫你做了幾百行的工作, script language看起來很神奇,
混亂的語言結果就是 巴別塔。
這說明了目前程式語言混亂的情形。
程式語言就只分兩種,能編譯成機器碼,跟不能編譯成機器碼(script language)。
所以除了c++以外,你看到的幾乎都是script language。
java, c# ,VB也是 script language, 網頁用的也都是script language。
混亂的就是這 script language部分。
其實語言定義的愈嚴格,愈容易學。
C裡面的每個變數宣告,例如 int i; 就會直接表明這個變數佔了多少個byte,寫得很死,型態也清楚。不用懷疑。
javascipt: var i; 你根本不知道這個i是甚麼? 字串?整數,......通通不曉得,多少個byte?不曉得。
javascript最後導致最佳化很困難。javascript 函數物件很多寫法都很混亂,很多種寫法。
不管是debug跟最佳化,最後就是個大麻煩。沒人會想用javascript寫超過10萬行的程式。
這種因為網頁興起的語言的特性本來就是如此, 簡單 方便入門, 網頁快速看到結果,
寫一行 javascript, 瀏覽器幫你做了幾百行的工作, script language看起來很神奇,
混亂的語言結果就是 巴別塔。
訂閱:
文章 (Atom)