Presentation is loading. Please wait.

Presentation is loading. Please wait.

.NET 程式設計入門(使用 C#) 講師:鄧智鴻.

Similar presentations


Presentation on theme: ".NET 程式設計入門(使用 C#) 講師:鄧智鴻."— Presentation transcript:

1 .NET 程式設計入門(使用 C#) 講師:鄧智鴻

2 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

3 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

4 變數 何謂變數 為什麼要有變數 變數是儲存某項資訊的空間(此空間在記憶體中)
外界輸入的資訊以及處理過程中產生的資訊,必須要用一 個空間來暫存它們,所以我們用變數來暫存

5 變數-命名原則 開頭第一個字必須為A-Z、a-z 或 _ (底線) 不允許數字0-9 當做變數的開頭 字母的大小會視為不相同的變數
SCHOOL、School、school 變數名稱最好具意義,可用底線或大小寫增加可讀性 school_name、schoolName 可使用中文命名,但易造成混淆 變數名稱中不能有運算元(+ - * / ) 不可以使用C# 的關鍵字命名 錯誤的命名方式 my name、7_eleven、B&Q、new

6 變數- C#關鍵字(1)

7 變數- C#關鍵字(2)

8 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

9 變數的宣告 何謂變數的宣告 宣告的方法 告訴電腦我們需要一個空間放資訊,請電腦幫我們在記憶 體中留空間放資訊 型別名稱 變數名稱; 例:
型別名稱 變數名稱; 例: string telephone_number; string ID=“9420”;

10 變數的宣告 -課堂範例 程式功能 Code 請使用者輸入一個身高 換行後列印”你有xxx公分高呢!” string Height;
Console.Write(“請輸入你的身高:”); Height=Console.Readline(); Console.WriteLine("你有"+ Height +"公分高呢!");

11 變數的宣告 -課堂練習 程式功能 提示: 第一行先請使用者輸入名字 第二行再請使用者輸入性別 第三行先列印出"XXX 您好!!“
第四行再列印出"我猜XXX 您一定是O !! " 提示: 宣告兩個string(字串)變數分別儲存使用者的姓名和性別

12 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

13 變數的型別 何謂變數型別 有哪些型別 不一樣的資訊所需的空間大小不同,資訊被解讀的方式也 不同,所以存放資訊的變數分成很多不同型別 整數
浮點數 字串 字元 物件…..

14 變數的型別 整數型別 型別 佔用的記憶體大小 可儲存的數值範圍 sbyte 8 (位元) -128~127 byte 8 0~255
short 16 -32768~32768 ushort 0~65536 Int 32 ~ uint 0 ~ long 64 ~ ulong 0 ~

15 變數的型別 浮點數型別 Decimal型別 布林型別 用來儲存具有小數點的數字 assign值到float型別的變數時,要在數值後加上f
可處理至小數點後第28位,主要用在財務金融計算上 布林型別 值為true或false (1或0) ,佔用空間視平台而定 型別 佔用的記憶體大小 精確度 float 32(位元) 7位 double 64 16位

16 變數的型別 字元型別 char 字串型別string 例子:string a=“my name is John”
用來表示單一個字元,字元資料需要以單引號將字元頭尾 括起來 大小為16 位元 例子:char a=’A’ 字串型別string 用來表示一串字元(就是一段文字),字串資料需要以雙引號將 字串頭尾括起來 大小依字串內的字元數目而定 例子:string a=“my name is John”

17 變數的型別-課堂範例 程式功能 Code 請使用者輸入一個姓名,並用string型別儲存 請使用者輸入一個身高,並用int型別儲存
換行後列印”ooo你有xxx公分高呢!” Code string Name; int Height; Console.Write(“請輸入你的姓名:”); Name=Console.ReadLine(); Console.Write(“請輸入你的身高:”); Height = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(Name+"你有"+ Height +"公分高呢!");

18 變數的型別-課堂練習 程式功能 提示 請使用者輸入name、phone number(10碼)、生日
然後輸出”王小明你970812出生,電話號碼為 ” 請盡量節省記憶體空間的方式來存這些資訊 提示 翻閱前幾章投影片來查閱不同變數型別所需的記憶體大小

19 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

20 型別轉換 何謂型別轉換 例子 不一樣的資訊所需的空間大小不同,資訊被解讀的方式也 不同,不同型別變數間要互相運算時要經過轉換
string c; c = “10”+“天”; c = 10+”天”;

21 型別轉換 隱含轉換(implicity) 明確轉換(explicity)
數值範圍較小的型別,被指定至數值範圍較大的型別,此 種轉換由編譯器自動完成 例如: int a=321; long b = a; 明確轉換(explicity) 使用型別”轉換關鍵字” (型別名)變數 超出轉換型別的資料內容均會遺失 例如︰ long a = 123; int b = (int) a;

22 型別轉換 數值轉成字串型別 字串轉數值型別 利用ToString() 方法來完成 例如︰ 利用數值型別Parse() 方法來完成
int a = 321; string b = a.ToString(); 字串轉數值型別 利用數值型別Parse() 方法來完成 string b = "321"; int a = int.Parse(b);

23 型別轉換-課堂練習 試著將下列程式中錯誤的型別改正 double d=23.14; int i=d; int i2=123;
string s=i2; string s2=“12345”; int i3=s2; long L=12345; byte b=L;

24 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

25 各式運算子 算數運算子 字串的相加為字串合併 用以進行數字間的數學運算 例: int a; a=1+2;
Console.WriteLine(“1+2=”+a); 字串的相加為字串合併 例: String a = “abc”+”123”; 運算子符號 意義 實例 + 相加 i+k - 相減 j-k * 相乘 j*k / 相除取商 j/k % 相除取餘 j%k

26 各式運算子-課堂範例-算數運算子 程式功能 Code: int a,b; Console.Write("請輸入三角型的底:");
計算三角形的面積 先列印出兩行文字,請使用者輸入三角形的底及高(整數) 計算後列印出三角形的面積大小 Code: int a,b; Console.Write("請輸入三角型的底:"); a=int.Parse(Console.ReadLine()); Console.Write("請輸入三角型的高:"); b = int.Parse(Console.ReadLine()); Console.WriteLine("三腳形的面積是"+a*b/2); Console.ReadKey();

27 各式運算子-課堂練習-算數運算子 程式功能 具有計算機功能的程式 請宣告兩個整數變數a,b 請使用者輸入a,b的值 然後輸出

28 各式運算子 關係運算子 用來比較數字的大小(也可比較字元大小) ,然後回傳true或 false 運算子符號 意義 實例 == 相等
u == j != 不相等 u != j > 大於 u > j < 小於 u < j >= 大於或等於 u >= j <= 小於或等於 u <= j

29 各式運算子 關係運算子-用法 字元比較 4 > 3 // true ‘a’ > ‘b’ // 輸出為false
每個字元都有一個Unicode,例如a的Unicode為97,b為98。 當我們要比較兩個字元的時候,實際上是比較他們的 Unicode。因此b大於a(98大於97)

30 各式運算子-課堂範例-關係運算子 程式功能 Code 輸入二個數字 列出二數之間的關係 Console.Write("輸入第一個數字:");
//輸入二數 Console.Write("輸入第一個數字:"); int i = int.Parse(Console.ReadLine()); Console.Write("輸入第二個數字:"); int j = int.Parse(Console.ReadLine()); //列出結果 Console.WriteLine(i + " == " + j + " 的結果為" + (i==j)); Console.WriteLine(i + " != " + j + " 的結果為" + (i!=j)); Console.WriteLine(i + " > " + j + " 的結果為" + (i>j)); Console.WriteLine(i + " < " + j + " 的結果為" + (i<j)); Console.WriteLine(i + " >= " + j + " 的結果為" + (i>=j)); Console.WriteLine(i + " <= " + j + " 的結果為" + (i<=j));

31 各式運算子-關係運算子-課堂練習 程式功能 基本概念 請使用者輸入兩個字元a,b 判斷a是否大於b
大於則列印”a>b為true” ,否則列印”a>b為false” 基本概念 利用關係運算子即可完成

32 各式運算子 條件(邏輯)運算子 用法 條件運算子是用來測試複雜的條件
(3>2) && (2>1) //(true) && (true) →true (4>3) || (1>2) //(true) || (false) →true ! (4>3) // !(true) →false Console.WriteLine(4>3); 符號 意義 實例 用法 && a && b 當a和b都為真時,結果才為真 || a || b 若a和b其中一個為真,結果就為真 ! 相反 !a 若a為真結果為假、若a為假結果為真

33 各式運算子-條件運算子-課堂練習 用Console.WriteLine();分別把上列式子的true/false 印出來吧 練習
((3>2) && (2>1)) && (1>2)  (4>3) || ('a'=='b') ! ((4<3)||(5>1)) 用Console.WriteLine();分別把上列式子的true/false 印出來吧 //((true) && (true)) && (false) →false //(true) || (false) →true // ! ((false)||(true)) →!(true) →false

34 各式運算子 指定與複合指定運算子 將右式的值指定(assign)給左式 符號 意義 實例 原來的式子 = 指定 a=5 += 相加後再指定
a=a+5 -= 相減後再指定 a-=5 a=a-5 *= 相乘後再指定 a*=5 a=a*5 /= 相除後取商,再指定 a/=5 a=a/5 %= 相除後取餘,再指定 a%=5 a=a%5

35 各式運算子-複合指定運算子-課堂練習 程式功能 基本概念 計算正方形面積 請使用者輸入正方形邊長(整數) “請輸入正方形邊長:”
計算後列印出正方形面積大小 請利用複合運算子完成 基本概念 正方形面積公式為邊長平方

36 各式運算子 遞增與遞減運算子 用法 int a = 5, b = 5; int c = a++; //c 的結果為5
擺在變數前表示先加減值再做其它運算,擺在變數後表示先做其 它運算再加減值 用法 int a = 5, b = 5; int c = a++; //c 的結果為5 int d = ++b; //d 的結果為6 符號 意義 實例 ++ 將變數值加一 a++、++a -- 將變數值減一 a--、--a

37 各式運算子-關係運算子-課堂範例 程式功能 程式說明 複合指定及遞增運算子說明 int i=10, j, x=10, y; j = ++i;
Console.WriteLine(“j = ++i後的j為“ + j); y = x--; Console.WriteLine (“y = x--後的y為“ + y); Console.Readkey();

38 各式運算子-關係運算子-課堂練習 程式功能 “請輸入一個整數a” “請輸入一個整數b”
“a+=b++後的a為?” 請你自己輸入你估計的a值,若答錯則輸 出false,答對則輸入true “a+=++b後的a為?” “a+=b--後的a為?” “a+=--b後的a為?” “a-=b++後的a為?” “a-=++b後的a為?” “a-=b--後的a為?” “a-=--b後的a為?”

39 = , != , < , > , >= , <=
各式運算子 運算子的優先順序 在一個數學運算式中,不同的運算子有其先後順序的差別 例如: 100+25*30 算術運算子 -(負號) * , / % + , - + 比較運算子 = , != , < , > , >= , <= 條件(邏輯)運算子 ! && ||

40 各式運算子 只要被小括號框起來的部分一定都會先執行 (100+25)*30 例子: a+b+c a+b*c (a+b)*c

41 各式運算子-運算子的優先順序-課堂練習 列印出”10+7%4-5*2+(3*12/4-2)%3 +9%5*3= ?”
然後輸入你自己心算後的值,答對的話印true, 否則印 false

42 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

43 常數 常數 和變數的作用相同,用來儲存特定的資料
不同的地方在於常數的值必須在宣告時給定初始值,並且 常數值的初始值決定後,就無法在程式中做任何修改 用法 const double pi = ;

44 常數-課堂練習 程式功能 基本概念 計算圓面積 請使用者輸入圓半徑(整數) 計算後列印出圓形面積大小
請設定常數值pi = 圓面積公式為半徑* 半徑* pi

45 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

46 列舉型別 列舉型別可用來表示一些性質相似的項目對照到固定 的值(為常數)
列舉底層型別預設為int,可用的型別尚包含byte、sbyte、 short、ushort、uint、long 及ulong 列舉的清單項目以『, 』分隔 列舉型別不可以在方法內宣告 用法 enum language:long { English = 0, Chinese = 1 };

47 列舉型別-課堂範例 程式功能 程式說明 用列舉記錄學生和座號對照表 enum studentID:int { alice = 12,
bob = 24 } static void Main(string[] args) Console.WriteLine(studentID.alice + " 的座號為: " + (int)studentID.alice); Console.WriteLine(studentID.bob + " 的座號為: " + (int)studentID.bob); Console.WriteLine("座號12 號的是: "+(studentID)12); Console.WriteLine("座號24 號的是: "+(studentID)24);

48 列舉型別-課堂練習 程式功能 基本概念 列印出星期一到日各為一星期的第幾天 列印出一個星期的1~7天分別為星期幾 以星期日為第一天
利用列舉將星期一到日的名稱對應至第幾天的常數值記錄 下來 Sun = 1, Mon = 2, Tue = 3, Wed = 4, Thi = 5, Fri = 6, Sat = 7

49 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

50 結構型別 結構可用來讓使用者自訂需要的型別,它是由許多不 同型別組織在一起所組成 結構不可在方法內宣告
struct內的變數名前面要加上public,否則外界無法存 取 用法 struct student { public int id; public string name; }

51 結構型別-課堂範例 程式功能 程式說明 利用struct 建立student 基本資料 struct student { }
public int id; public string name; } static void Main(string[] args) student John; John.id = 27; John.name = “Teng John"; Console.WriteLine("學生姓名: " + John.name + "\n" + "學生座號: " + john.id );

52 結構型別-課堂練習 程式功能 基本概念 利用結構型別來包裝個人基本資料(請自行設定四個以上的 變數來儲存關於一個人該有的資訊)
每一個資訊都用一行請使用者輸入 輸入完後列印出使用者所有的相關資料 基本概念 建立一個名為person的struct,並在其內建立多個資料欄位

53 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 課後練習

54 亂數 亂數作用 亂數宣告 亂數產生方法 可用來產生隨機的數字 Random 變數名稱= new Random();
變數名稱.Next(最小值,最大值) 亂數的值會介於最大最小值之間

55 亂數-課堂範例 程式功能 程式說明 列印出三個1 ~ 9 之間的亂數 //亂數宣告 Random rnd = new Random();
//產生亂數 Console.WriteLine(rnd.Next(1,10));

56 亂數-課堂練習 程式功能 基本概念 先用亂數產生一個1 ~ 3 之間的數 讓使用者輸入一個數字 使用者猜對則列印ture 猜錯印出false
利用Random 中的Next 方法即可達成

57 亂數-課堂練習2 程式功能 亂數產生三個0.01 ~0.09之間的數

58 亂數-課堂練習3 程式功能 亂數產生三個0.012 ~1.7561之間的數

59 亂數-課堂練習4 程式功能 亂數產生三個 ~1.7561之間的數

60 亂數-課堂練習5 程式功能 讓使用者輸入兩個數字(可為小數) 隨機產生3個介於這兩數間數字

61 Outline 變數 變數的宣告 變數的型別 型別轉換 各式運算子 常數 列舉型別 結構型別 亂數 綜合練習

62 綜合練習 程式功能 要求 Alice和Bob月薪不一樣
Alice和Bob兩個人買衣服,請使用者輸入Bob和Alice分 別買了幾件衣服以及分別有多少折扣 請計算並列印出Bob和Alice花了多少比例的錢在買衣 服上 請判斷並列印出Bob花了比較高的比例的錢去買衣服 為真或假 要求 請利用struct 記錄Bob 和Alice 的相關資訊 請用常數定義衣服價錢 請用亂數產生兩人合理的範圍內的薪水


Download ppt ".NET 程式設計入門(使用 C#) 講師:鄧智鴻."

Similar presentations


Ads by Google