學程式遇到困難 - 學習
By Carol
at 2008-05-15T02:01
at 2008-05-15T02:01
Table of Contents
※ 引述《xvimg (sweet bye and bye)》之銘言:
: 每個課程要的語言也不一定一樣
: 導致 我現在每個語言都不熟
: 遇到問題時 想法有 可是都攪在一塊
: debug能力又很弱
: 可是 參考了別人的碼 亂交一番後
: 我就會瞬間忘記那種感覺了
妳的情況,覺得應該對程式有一點基礎了
所以原因可能是對程式的語法不熟
舉個例子,就像是英文單子會一點,文法會一點,
但是沒辨法用完整的英文句子表達一樣
以下是我在寫 c,c++,java,c#,asp,matlab的一些經驗,
前三個有上課,後三個是找工具書自學,
如果是MFC,DirectX的話我就沒辨法,野人獻曝,希望對妳有幫助
上手比較快的方法是,找出程式的基本語法架構
例如:
C++:
#include <iostream.h>
main() { cout>>"hello world"; }
C:
#include <stdio.h>
main() { printf(%s,"hello world"); }
java:
class test{
public static void main(String args[])
{ System.out.println("hello world"); }
}
C#:
using System;
namespace test {
class testClass {
static void Main(string[] args) {
Console.Write("hello world");
}}}
上面4個語言,做的都是印出 hello world
這是程式語言的基本架構,無論寫多複雜的程式,都是以此為基礎發展
其他如副函式,函式呼叫...也是有其基本架構, 所以都是查工具書就可以上手
----------------------------------------
Debug也是熟悉語法的手段之一
MS的編譯器,java的netbeans,matlab編譯器的debug功能都做得不錯
設停駐點、逐行執行、即時變數值...,這些功能比用紙筆debug方便
因為只有幾個按鍵而已,這些功能也能用來實驗程式碼的性質
在上百上千行程式碼中抓bug的原則是,
"切割程式碼,再一段一段的確認"
副函式的好處之一就在這裡,可以在別處測試副函式,
直到傳入和傳出的值"完全沒錯誤",再接原來的主程式中,
如果主程式出來的結果和自己想的不一樣的話
那麼問題不是傳入的值出錯,就是後面的程式碼有問題,但一定不是副函式的問題
如此就把程式碼的範圍確定並簡化了。
--------------------------------------
有時回頭看自己寫過的程式,
常常發現自己看不懂這是寫來做什麼、或為什這樣寫
救急的方法就是用編譯器的逐行執行去看
預防的方法就是"養成寫註解"的習慣,例如:
/**************************************
函式名稱:
函式功能:
變數義意:
傳入傳回值的義意:
........
*****************************************/
-------------------------
如果是有方法,但不知如何下手,從哪開始的話
建議可以先畫流程圖,或者邊寫程式邊畫,這樣就不會迷路了
以上
這不是廣告,我覺得很不賴的程設網站
推獎網站:程式設計俱樂部
http://programmer-club.com/index.asp
※ 編輯: hosen0036 來自: 218.163.172.36 (05/15 02:07)
: 每個課程要的語言也不一定一樣
: 導致 我現在每個語言都不熟
: 遇到問題時 想法有 可是都攪在一塊
: debug能力又很弱
: 可是 參考了別人的碼 亂交一番後
: 我就會瞬間忘記那種感覺了
妳的情況,覺得應該對程式有一點基礎了
所以原因可能是對程式的語法不熟
舉個例子,就像是英文單子會一點,文法會一點,
但是沒辨法用完整的英文句子表達一樣
以下是我在寫 c,c++,java,c#,asp,matlab的一些經驗,
前三個有上課,後三個是找工具書自學,
如果是MFC,DirectX的話我就沒辨法,野人獻曝,希望對妳有幫助
上手比較快的方法是,找出程式的基本語法架構
例如:
C++:
#include <iostream.h>
main() { cout>>"hello world"; }
C:
#include <stdio.h>
main() { printf(%s,"hello world"); }
java:
class test{
public static void main(String args[])
{ System.out.println("hello world"); }
}
C#:
using System;
namespace test {
class testClass {
static void Main(string[] args) {
Console.Write("hello world");
}}}
上面4個語言,做的都是印出 hello world
這是程式語言的基本架構,無論寫多複雜的程式,都是以此為基礎發展
其他如副函式,函式呼叫...也是有其基本架構, 所以都是查工具書就可以上手
----------------------------------------
Debug也是熟悉語法的手段之一
MS的編譯器,java的netbeans,matlab編譯器的debug功能都做得不錯
設停駐點、逐行執行、即時變數值...,這些功能比用紙筆debug方便
因為只有幾個按鍵而已,這些功能也能用來實驗程式碼的性質
在上百上千行程式碼中抓bug的原則是,
"切割程式碼,再一段一段的確認"
副函式的好處之一就在這裡,可以在別處測試副函式,
直到傳入和傳出的值"完全沒錯誤",再接原來的主程式中,
如果主程式出來的結果和自己想的不一樣的話
那麼問題不是傳入的值出錯,就是後面的程式碼有問題,但一定不是副函式的問題
如此就把程式碼的範圍確定並簡化了。
--------------------------------------
有時回頭看自己寫過的程式,
常常發現自己看不懂這是寫來做什麼、或為什這樣寫
救急的方法就是用編譯器的逐行執行去看
預防的方法就是"養成寫註解"的習慣,例如:
/**************************************
函式名稱:
函式功能:
變數義意:
傳入傳回值的義意:
........
*****************************************/
-------------------------
如果是有方法,但不知如何下手,從哪開始的話
建議可以先畫流程圖,或者邊寫程式邊畫,這樣就不會迷路了
以上
這不是廣告,我覺得很不賴的程設網站
推獎網站:程式設計俱樂部
http://programmer-club.com/index.asp
※ 編輯: hosen0036 來自: 218.163.172.36 (05/15 02:07)
推 nowar100:matlab :) 拼錯了 05/15 02:07
※ 編輯: hosen0036 來自: 218.163.172.36 (05/15 02:13) → hosen0036:筆誤,謝謝樓上 05/15 02:13
推 crazybad:"hallow world"? 05/15 03:01
※ 編輯: hosen0036 來自: 218.163.180.193 (05/15 09:23) 推 fishexex:推一下 這篇超詳細的 05/15 12:48
推 zha0:沒在寫 comment +1 XDXD 05/17 20:44
推 JustbeXD:推薦這篇文章,雖然不是相關領域,但覺得很詳細 05/18 15:38
推 lauw:很棒的解說! 06/02 13:44
→ my99:y1 08/23 18:28
Tags:
學習
All Comments
By Jacky
at 2008-05-19T04:33
at 2008-05-19T04:33
By Aaliyah
at 2008-05-23T11:40
at 2008-05-23T11:40
By Kyle
at 2008-05-23T19:26
at 2008-05-23T19:26
By Zenobia
at 2008-05-24T19:53
at 2008-05-24T19:53
By Kelly
at 2008-05-26T17:37
at 2008-05-26T17:37
By Olga
at 2008-05-28T22:04
at 2008-05-28T22:04
By Thomas
at 2008-05-30T22:16
at 2008-05-30T22:16
By Kristin
at 2008-06-02T10:53
at 2008-06-02T10:53
Related Posts
心得報告
By Agnes
at 2008-05-15T01:18
at 2008-05-15T01:18
努力永遠輸作弊
By Ida
at 2008-05-15T00:53
at 2008-05-15T00:53
心得報告
By Dinah
at 2008-05-15T00:42
at 2008-05-15T00:42
大學第一階段申請上的人
By Frederic
at 2008-05-14T22:33
at 2008-05-14T22:33
大家讀書視力有變差嗎?
By Agnes
at 2008-05-14T22:26
at 2008-05-14T22:26