程式語言就是最好的邏輯訓練

"邏輯"濫用指數可能是第一名,根本沒幾個人知道"邏輯"是甚麼。

談 邏輯沒多大意義,談甚麼樣的訓練可以培養邏輯?

很多教邏輯的課程 書 都很無聊 。 最接近邏輯的是 數學上的證明題。

缺點是答案都有了,真實的世界是不會先給答案的。

自從電腦出現後,所有的邏輯課程都變的一點意義都沒有了。

因為電腦程式語言就是把邏輯直接實現的 最好的科學。

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看起來很神奇,

混亂的語言結果就是  巴別塔。