鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所 整合發展環境初步與 簡易C# 程式 鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
Visual C# 2008 Express IDE 官方網站 http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express/ 善用線上資源 MSDN Beginner Developer Learning Center
VC# 2008 Exp. 建立與執行專案 檔案>新增>專案>主控台應用程式>專案命名 功能表與工具列 程式編寫區 方案總管與屬性視窗 輸入並編寫程式 建置方案/啟動但不偵錯 儲存專案
第1支C#應用程式 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Hello { class Program{ static void Main(string[] args) Console.WriteLine("Hello!"); }
(Common Language Runtime) .NET 架構 VB .NET C# C++ 原始碼 (Source Code) 建置 (Build) 共同中介語言 (Common Intermediate Language) 碼集(Package) CIL (.exe, .dll, etc.) 偵錯, 執行 CLR (Common Language Runtime) Win32 (Windows Operating System)
傳統高階程式語言架構 C++ 原始碼 (Source Code) 編譯 (Compile) .obj. 二進碼( binary code ) 連結(Link) .exe 二進碼( binary code ) 執行(Load, Run) Win32 (Windows Operating System)
.NET 架構優缺點 優點 缺點 跨語言, 跨平台 自動處理停用記憶區回收(Garbage Collection) 共通資料形別 增一層級, 執行效率多少受影響
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
第2支C#應用程式 /* * 第2支C#程式 * 2/6/2009 */ using System; namespace SayHello { class Program static void Main(string[] args) string message; // 宣告變數 message = "Hello"; Console.WriteLine( message ); }
常見句法錯誤 拼字錯誤 大小寫錯誤 同一名稱拼字或大小寫不統一 漏掉分號 括弧、雙引號、/*與*/未能配對
句法錯誤訊息 建置錯誤訊息 錯誤清單 波狀底線
顯示行號 工具>選項 勾選下方”顯示所有設定” 文字編輯器>C#>顯示>行號
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
程式解說 註解 保留字(關鍵字) 物件觀念、類別宣告 程式進入點與大括弧 變數與資料型別、字串 程式敘述與分號
類別Program class Program { static void Main(string[] args) //. . . }
變數 資料代名 數學: x = 1 C#:message = “Hello”; 變數宣告
記憶系統的概念 *J. G. Brookshear, Computer Science – An Overview, 8th edition, Addison-Wesley, 2005
Main Memory 0 0 0 . . . 0 1 0 0 1 0 0 0 ‘H’ 0 0 0 . . . 0 1 1 0 0 1 0 1 ‘e’ 0 0 0 . . . 0 1 1 0 1 1 0 0 ‘l’ 0 0 0 . . . 0 1 1 0 1 1 0 0 ‘l’ 0 0 0 . . . 0 1 1 0 1 1 1 1 ‘o’
類別Console 鍵盤(Keyboard) 主控台視窗螢幕(Screen)
函式、參數 傳回值 輸入參數 函式 數學: sin(p/2) C#:Console.WriteLine(“Hello”)
命名空間觀念 namespace Hello { class Program static void Main(string[] args) //. . . }
命名空間觀念 包裝類別 重複使用類別名稱 專案與命名空間 命名空間System 類別System.Console 指令using
語法錯誤與語義錯誤 語法錯誤(syntax error) 語義錯誤(semantics error)或邏輯錯誤(logic error) 程式敘述不完整 類似文法錯誤 建置時可發現,較易處理 語義錯誤(semantics error)或邏輯錯誤(logic error) 想法邏輯錯誤或輸入資料錯誤 建置成功,但執行結果不符預期 難以發現
尋找語義錯誤的方法 反複閱讀程式碼 紙筆程式追蹤(tracing) 程式複核(walk-through) 使用偵錯器
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
利用偵錯器 (欲設中斷點處)右鍵>中斷點>插入中斷點 開始偵錯 區域變數/監看式 偵錯>逐步執行/不進入函式/跳離函式 偵錯>繼續/停止偵錯/重新啟動 取消中斷點
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
基本輸出與輸入 /* * 示範基本輸入, 輸出敘述 * 2/12/2009 */ using System; namespace SayHelloIO { class Program static void Main(string[] args) Console.WriteLine("Enter your name"); string name = Console.ReadLine(); Console.WriteLine("Hello," + name); }
練習 寫一支程式,讓電腦提示問題,由使用者回答後,電腦複誦(Echo)其內容,可連續提問及回應。
綱要 整合發展環境初步與第一支C#程式 第二支C#程式與錯誤訊息 程式大略解說 偵錯器使用初步 基本輸入與輸出 剪貼視窗內容與列印程式碼
列印程式碼 檔案>版面設定>列印
擷取執行結果視窗 游標移至欲擷取之視窗內 Ctrl – Alt – Prt Sc 貼入Word或PowerPoint等文件內 調整背景及文字顏色