C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.

Slides:



Advertisements
Similar presentations
第四章 类、对象和接口.
Advertisements

C#程式設計 第二部分 第5-6章 C# 程式設計 - 南華大學資管系.
第一章 認識程式語言.
第 2 章 初探 C++.
第7章 C#函數與.NET Framework類別函數庫
課程名稱:程式設計 授課老師:________
程設一.
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
第二章 JAVA语言基础.
第8章 字串與陣列 8-1 字串處理 8-2 一維陣列的處理 8-3 建立多維陣列 8-4 不規則陣列與參數傳遞 8-5 陣列排序與搜尋.
本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
第1章 程式語言與Visual Basic的基礎
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
第ㄧ章 認識 VB 2008 與主控台應用程式 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
第一章 認識Visual C 環境架構 1-1 認識Visual C Visual Studio 概觀
BLANK overview.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
Asp.net 基礎.
第17章 使用B4J建立跨平台應用程式 17-1 認識B4J整合開發環境 17-2 下載與安裝B4J開發環境
課程名稱:程式設計 授課老師:________
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
物件導向程式設計 (Object-Oriented rogramming)
第二章 C# 基础知识.
南华大学计算机学院 软件工程系 QQ讨论群:
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
第9章 Windows窗体应用程序设计 9.1 窗体设计 9.2 常用的控件设计 9.3 多个窗体之间的数据传递 9.4 多文档窗体
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
C++ with Managed Extensions
基于 C# 的 .NET Framework 程序设计
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
委派與執行緒 建國科技大學 資管系 饒瑞佶.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
移动电子商务 第十二章 Windows Mobile应用案例 倚动软件工厂实验室.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
變數命名 保留字(Reserved Word)
視窗程式設計 (Windows Programming)
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
Visual Basic.NET 程序设计语言课程内容
C#程序设计基础 第二章 数据类型.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第三章 C# 基础知识.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
第三课 标识符、关键字、数据类型.
Java變數 2014/6/24.
開發Java程式語言的工具 JDK.
C# 基本語法、變數.
保留字與識別字.
第二章 Java基本语法 讲师:复凡.
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
第6章 運算式與運算子 [算術與多功能計算機]
第二章 Java语法基础.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
變數、資料型態、運算子.
第2章 Java语言基础.
變數與資料型態  綠園.
Introduction to the C Programming Language
Presentation transcript:

C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系

程式語言(Programming Language) 機器語言(Machine Language) - 使用0和1二進位來表示程式碼,電腦可以直接執行機 器語言的程式碼。 - 單一CPU只懂一種機器語言(指令集)。 組合語言(Assembly Language) - 使用簡單符號的指令集,來代表二進位的機器碼。 高階語言(High Level Language) -語法接近人類語言的程式語言。 0111 0001 0000 1111 1001 1101 1011 0001 C# 程式設計 - 南華大學資管系 MOV AX , 01 MOV BX , 02 ADD AX , BX 組譯程式 (Assembler) X=X+Y 編譯器(Compiler)或直譯器(Interpreter)

Visual C# 與 .NET Framework .NET Framework是Microsoft新世代的程式開發平台, 它是由CLR(Common Language Runtime)和.NET Framework 類別庫(Class Library)所組成。 Visual C# 語言是一種支援 .NET Framework平台的物件 導向程式語言。 (a) 其應用程式的基本架構就是許許多多的類別(Classes) (b) 類別是一個用來建立物件(Object)的藍圖。該藍圖描述 內含的資料成員(Data Members)以及處理資料的成員 方法(Member Methods)。 (c) .NET Framework 類別函數庫是一個龐大且良好組織 架構的函式庫。 (d) 程式設計師可以利用和擴充類別函式庫,以開發各式 各樣功能的應用程式。 先求寫出正確執行的程式,再求寫出高效率、組織良好易 維護的程式。 C# 程式設計 - 南華大學資管系

C#程式的開發與執行 Source Code 使用者解決問題的邏輯 Editor 編輯器 (原始碼) .NET 編譯程式 .NET a.cs b.cs . Source Code (原始碼) .NET 類別函式庫 .NET 編譯程式 Portable Executable (PE) File MSIL Code+ metadata CLR JIT Compiler 轉成Native Code(第一次執行時),載入主記憶體中,由CPU執行 C# 程式設計 - 南華大學資管系 【跨平台】

C# 程式開發環境 Visual Studio (Visual C# Express) 提供整合開發環境(Integrated Development Environment, IDE),只需在同一個應用程式(環境)中,就可利用一組工具程式來編輯、編譯、執行和維護應用程式。 以專案(Project)的方式來控管應用程式的相 關資源。 C# 程式設計 - 南華大學資管系

主控台應用程式 (CONSOLE APPLICATIONS) 以文字模式執行的應用程式。 新增專案(Project) -選擇主控台應用程式(輸入專案名稱、位置) -方案總管(已有自動產生的相關檔案) -起始物件:Program.cs 執行:建置方案→啟動但不偵錯。 儲存,關閉方案,開啟方案。 using System; - - - - namespace 專案名稱 { class Program { static void Main(String[] args) { // 程式執行的入口(起始點) // { } 程式區塊(Block) } C# 程式設計 - 南華大學資管系

利用程式語言(語法)將解題的邏輯轉換成程式 編輯程式碼與存檔 問題: 《兩位數相加》 數字一:10 數字二:30 10 + 30 = 40 解法分析: 1. 輸入與輸出介面。 2. 資料的取得。 3. 資料在記憶體中的表示(變數)。 4. 資料的存取與運算。 C# 程式設計 - 南華大學資管系 利用程式語言(語法)將解題的邏輯轉換成程式

ConsoleApplication1 (程式碼) 1/2 提示(輸出):Console.WriteLine(“<<兩位數相加>>"); 取得資料(兩個二位數) :由鍵盤輸入並存在主記憶中。 - 宣告變數:儲存的型態與名字 - 提示讀入資料並轉換型態 string input1; int num1; C# 程式設計 - 南華大學資管系 input1 = Console.ReadLine(); num1 = Convert.ToInt16(input1);

ConsoleApplication1 (程式碼) 2/2 3. 運算(相加):變數的存取。 4. 輸出結果(格式化輸出)。 " + = " 5. 程式碼的整理。 int result; result = num1 + num2; C# 程式設計 - 南華大學資管系 Console.WriteLine(" {0} + {1} = {2} " , num1, num2, result);

程式碼的語法測試與執行 可利用“註解”(Comments)來測試不同程式碼片段的語法和執行結果 新的主控台程式範例 /* 這是多行註解 編譯器不會處理 */ // 這是單行註解,編譯器不會處理 新的主控台程式範例 將不想測試的程式碼加以註解,只加上目前欲測試的程式碼即可。(不須要新增專案) 程式也可以在IDE之外執行。 C# 程式設計 - 南華大學資管系

視窗型應用程式(Windows Application) 新增方案: Windows → Windows Form 應用程式。 自動產生相關的檔案: - 已可執行(建置方案→啟動但不偵錯) - 觀察: Graphic User Interface (GUI,圖形使用者介面) + Event-driven Programming (事件驅動程式設計)。 Program.cs Form1.cs 類別→物件 #region ~ #endregion C# 程式設計 - 南華大學資管系

Graphic User Interface 在工具箱中提供多樣的控制項(類別) (a) 表單(Form類別所產生的物件)可視為控制項的容 器 (container)。 (b) 在表單內依需要加入控制項(產生對應的物件) - Label標籤 (提示、輸出) - TextBox文字盒 (輸入、輸出) - Button按鈕 (動作) (c) 依介面的設計需要,在屬性視窗中設定屬性的內容 值 (設計階段) - 控制項和屬性視窗的同步 - 常用的屬性:Name、Text、Font C# 程式設計 - 南華大學資管系

事件處理程序 (Event Handler) 事件驅動的程式設計方式 (a) 當事件(按一下按鈕、表單載入、按鍵等)發生時才觸 發對應的處理程序加以反應。 若沒有給予對應的 event handler,則不會有任何動 作發生。 (b) 當事件發生時(一般是由使用者所引發),系統會捕捉 到。系統會準備好對應的事件物件,連同產生事件的 控制項物件,一起傳給 event handler 處理。 (c) 依應用的需要撰寫處理事件的程式碼。 C# 程式設計 - 南華大學資管系

建立事件處理程序 預設事件:在控制項上按二下 其他事件: 選取控制項→屬性視窗→閃電圖示→找到事件→在欄位上 按二下(也可以選取共用的 event handler,如果有的話) 控制項 預設事件 預設的Event handler 表單(Form1) Load Form1_Load() 按鈕(button1) Click button1_Click() 標籤(label1) label1_Click() 文字盒(textBox1) TextChanged textBox1_TextChanged() C# 程式設計 - 南華大學資管系

Event Handler的程式碼 在執行階段改變控制項屬性值 由控制項上取得資料。 資料的表示與處理。 將變數的內容顯示在控制項上 -將資料儲存在記憶體(變數)中,以便計算。 必要時可進行型態轉換 將變數的內容顯示在控制項上 控制項名字.屬性名字 (例如,textBox1.Text) C# 程式設計 - 南華大學資管系 int n1 = Convert.ToInt16(textBox1.Text); lblResult.Text = “結果 = ” + result; 在執行階段改變控制項屬性值

WindowsFormsApplication1 程式碼 1/2 1. GUI的設計(設計階段) (a) 在表單(容器)中,依序加入文 字盒、標籤、按鈕等控制項 (通用控制項)。 (b) 在屬性視窗中設定屬性值, 如:Name、Text、Font等。 (c) 觀察 Form1.cs 以及 Form1.Designer.cs C# 程式設計 - 南華大學資管系 字首 控制項 屬性 frm 表單 Form Name , Text , Font , StartPosition lbl 標籤 Label Name , Text , AutoSize , BorderStyle txt 文字盒 TextBox Name , Text btn 按鈕 Button

WindowsFormsApplication1 程式碼 2/2 2. 處理"結束"按鈕的Click事件。 3. 處理"相加"按鈕的Click事件。 (a) 取得資料: (b) 計算: (c) 輸出結果:(在執行階段改變控制項屬性值) [this.]Close(); int num1=Convert.ToInt16(txtN1.Text); C# 程式設計 - 南華大學資管系 int result = num1 + num2; lblResult.Text = num1+" + " +num2+ " = " +result;

指定起始的表單 新增應用範例 新增表單 在 Program.cs 中指定執行的起始表單 程式碼 - 在專案按右鍵→加入→Windows Form 在 Program.cs 中指定執行的起始表單 Application.Run( new ch2ex() ); 程式碼 lblOutput.Text = txtInput.Text; lblOutput.BackColor = Color.Yellow; C# 程式設計 - 南華大學資管系

C# 應用程式架構與寫作風格 1/2 1. 基本架構就是Classes(類別)→產生物件。 2. 有豐富且組織良好的類別庫可以使用。 3. Using 指引指令 (匯入 .Net Framework 提供的 類別,須指定所在的名稱空間)。 4. namespace 名稱空間的名字 { // 群組的類別 // 每個名稱空間能夠擁有多個類別 // 每個類別可定義其相關的資料和方法 } using System; C# 程式設計 - 南華大學資管系

C# 應用程式架構與寫作風格 2/2 5. 類別(Class):Program.cs、Form1.cs、 Form1.Designer.cs 6. 程式敘述(以;結尾) → 程式區塊。 7. 自由格式(Free-format)的程式語言。 8. 善用註解。 Block,由多個敘述所構成,{ } C# 程式設計 - 南華大學資管系 適當的縮排,增加可讀性

變數(Variable)的命名與宣告 變數名字(識別字):用來代表記憶體位址。具有命名規則,不可用關鍵字,區分大小寫。 資料型態:決定記憶體大小以及記憶體內容的解釋方式(資料格式) 變數宣告:型別名稱 變數名稱 [ = 初值 ]; 給值:指定敘述 (Assignment Statement ) 。 存 取 L值 = R值 C# 程式設計 - 南華大學資管系

變數的存取 兩變數值的交換 (善用暫存變數) int a = 5 , b = 10; int temp; a = b; temp = a; b = a; int temp; temp = a; a = b; b = temp; C# 程式設計 - 南華大學資管系

基本型態(Primitive Data Types)、 單一値的資料型態 1/5 如 char, short, int, long, float, double 記憶體大小與值的範圍(有限) 資料型態 位元組 範圍 char 2 bytes 0~65535 (Unicode) short -32,768~32,767 int 4 bytes -2,147,483,648~2,147,48,3647 long 8 bytes -9,223,372,036,854,775,808~ 9,223,372.036,854,775,807 float -3.402823E38~3.402823E38 double -1.79769313486232E308~ 1.79769313486232E308 C# 程式設計 - 南華大學資管系

基本型態(Primitive Data Types)、 單一値的資料型態 2/5 字面值(literal)的預設型態。 可以指定字面值的型態(利用Type Characters) 變數值的範圍是有限的 123 → int 3.1415 → double 123L, 3.1415F C# 程式設計 - 南華大學資管系 short a = 456;// OK short s = 40000;/* Error, Overflow(溢位) 無法轉換, 明顯轉換也不行 */

基本型態(Primitive Data Types)、 單一値的資料型態 3/5 Implicit Conversions (隱含型態轉換) int k = 40000; long l = k; short s = k;// X int i = 1.23f; // X float 不能隱含轉換為 int int i = 1.23; // X double 不能隱含轉換為 int Explicit Conversions (明顯型態轉換) (利用Cast operator,型態轉換運算子) C# 程式設計 - 南華大學資管系 short s = (short) k;// √ 結果 = -25536 int i = (int) 1.23f ;// √ 結果 = 1

基本型態(Primitive Data Types)、 單一値的資料型態 4/5 不同型態的資料在運算時會進行隱含型態轉換 (a) int num = 125; double d ; d = num + 123.45f; (b) int a = 17, b = 5; float f; f = a / b; // 3.0 f = (float) a / (float) b; // 3.4 C# 程式設計 - 南華大學資管系

基本型態(Primitive Data Types)、 單一値的資料型態 5/5 字元型態(Char Type):單一Unicode 內碼的字元。 字元字面值(Character literals):使用單引號括起的 字元。 char a = 'A' ; char c = '\u0020' ; // 空白字元(space) C# 程式設計 - 南華大學資管系 Escape Character

參考資料型態(Reference Data Types) 如 string (字串), array (陣列) , object (物件)。 其變數值是(資料存放的)記憶體位址:間接存取 字串字面值(string literals):由雙引號括起的文字 內容。 如何輸出含有特殊字元的字串: My "C#" program 使用Escape Character (逸出字元) C# 程式設計 - 南華大學資管系 string str1 = "Hello World!" ; Console.WriteLine("My \"C#\" program");

算術運算式 (Arithmetic Expressions) 運算元(operand):X , 2 , 3 (算術)運算子(operator):*, - , + - 注意運算子的優先順序(precedence) 及 結合性(Associativity)。 Ex:C = (5.0 / 9.0) * (f - 32) C# 程式設計 - 南華大學資管系

「+」:加法與串接 int a = 100 , b = 120 ; 1. a + b → 220 (+) 2. "a = " + "100 " → "a = 100 " (串接) 3. "a = " + a → "a = 100" (串接) 4. a + " + " + b + " = " + (a + b) (+、串接) → "100 + 120 = 220" C# 程式設計 - 南華大學資管系

int num1 = Convert.ToInt32(txtN1.Text); 練習:整數四則運算 表單屬性:Text , Font , ControlBox。 Close(); // 關閉表單。 數字字串轉換成整數 利用字串串接輸出結果(txtResult)。 利用空字串(“ ”)清除文字盒(TextBox)。 C# 程式設計 - 南華大學資管系 int num1 = Convert.ToInt32(txtN1.Text);

同義的運算 1. X = X + 1 ; ≡ X += 1; ≡ X ++ ; ≡ ++ X; 2. string s = "2*2 = 4;" ; s = s + "3*3 = 9;";(串接) ≡ s += "3*3 = 9;"; s 內容 → "2*2 = 4;3*3 = 9;" 3. int a = 10; (累加) a = a + 10; ≡ a += 10; a內容 → 20 C# 程式設計 - 南華大學資管系

基本流程控制:選擇結構(Selection) 單一選擇:依條件的真假,決定是否進行特定的動作。 布林型態(Boolean Type):其值只有 true 和 false 兩個值。 關係運算子(Relational Operators) bool isFound = true; C# 程式設計 - 南華大學資管系 int a = 16 , b = 13; a == b → false a != b → true a >= b → true a < (b+2) → false

選擇結構:單選 false false true true if (C) S1 ; S2 ; S3 ; (X) if (C) { S1; } S3; C# 程式設計 - 南華大學資管系 (X) (√) (√) if (C) S1 ; S2 ; (√) if (C) {S1 ;} S2;

lblResult.Text = "錯誤:數字一超過99"; 練習:整數四則運算 檢查範圍 (0~99)。 輸出錯誤訊息。 Return 敘述。 if (num1 < 0) { lblResult.Text = "錯誤:數字一小於Ø " ; return ; } if (num1 > 99) { lblResult.Text = "錯誤:數字一超過99"; return; C# 程式設計 - 南華大學資管系

訊息方塊(MessageBox) 使用訊息方塊來顯示訊息文字或輸出結果 MessageBox.Show(訊息文字,[標題文字,顯示按鈕,顯示圖示]) MessageBox.Show("數字一小於Ø", // 訊息 "錯誤訊息", // 標題 MessageBoxButtons.OK , //確定鈕 MessageBoxIcon.Error // 圖示 ); C# 程式設計 - 南華大學資管系

練習:輸入三個0~99數字 輸出最大值和最小(MessageBox) int max = n1 ; if (n2 > max) max = n2 ; if (n3 > max) max = n3 ; MessageBox.Show( "最大值 = " + max , " 三數比較 " , MessageBoxButtons.OK , MessageBoxIcon.Information ) ; C# 程式設計 - 南華大學資管系

例外處理(Exception Handling) (e.g. 除以0,格式不符) try { // 測試的程式碼(可能有例外發生) } catch (Exception ex) { // 可以有多個Catch // 例外處理的程式碼(顯示錯誤訊息) // ex.ToString(), ex.Message finally { // 選擇性的程式區塊。 // 如果有的話,一定會執行。 C# 程式設計 - 南華大學資管系

練習:整數四則運算(除法) 除以Ø (整數) 格式不符 int num1 = Convert.ToInt32(txtN1.Text) ; try { int num1 = Convert.ToInt32(txtN1.Text) ; if (num1 < 0) { . . . . . . . } if (num1 > 99) { . . . . . . . } int num2 = . . . … output = output + num1 + " / " + num2 + " = " + (num1 / num2); } catch(Exception ex) { MessageBox.Show(ex.Message , "錯誤訊息" , . . . . ); C# 程式設計 - 南華大學資管系