Bài giảng Kỹ thuật lập trình: Chương 2 - ThS. Phạm Thanh An
lượt xem 14
download
Nội dung cơ bản trong chương 2 Nền tảng ngôn ngữ C# thuộc bài giảng kỹ thuật lập trình nhằm trình bày về các kiểu dữ liệu cơ bản, biến và hằng, biểu thức, câu lệnh, toán tử, namespace và các chỉ dẫn biên dịch, xử lý ngoại lệ. Cùng học chương này để hiểu sâu hơn về nền tảng ngôn ngữ C.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 2 - ThS. Phạm Thanh An
- 4/10/2012 Chương 2 Nền tảng ngôn ngữ C# Giảng viên: ThS. Phạm Thanh An Khoa công nghệ thông tin Đại học Ngân hàng Tp. Hồ Chí Minh Nội dung trình bày Kiểu dữ liệu cơ bản. Biến và hằng. Biểu thức. Câu lệnh. Toán tử. Namespace. Các chỉ dẫn biên dịch. Xử lý ngoại lệ. Mô tả kiểu dữ liệu trong C# System-defined types Object User-defined types String Array ValueType Exception Delegate Class1 Primitive types Multicast Enum Structure1 Class2 Delegate Boolean Single Byte Double Int16 Decimal Enum1 Delegate1 Class3 Int32 DateTime Int64 TimeSpan Char Guid 1
- 4/10/2012 Kiểu dữ liệu C# là một ngữ mạnh về kiểu dữ liệu Phải khai báo kiểu của mỗi biến, đối tượng khi sử dụng integer, float, string, byte, buttons, v.v C# chia thành hai tập hợp kiểu dữ liệu chính: Kiểu xây dựng sẵn (built- in) Kiểu được người dùng định nghĩa (user-defined) do người lập trình tạo ra (lớp, struct, v.v). Kiểu dữ liệu (tt) C# phân tập hợp kiểu dữ liệu này thành hai loại: Kiểu dữ liệu giá trị (value type): int, char , và structures Kiểu dữ liệu tham chiếu (reference type): classes, interfaces, arrays và strings Kiểu dữ liệu xây dựng sẵn Kiểu C# Số Kiểu Mô tả Ví dụ Byte .NET object Kiểu dữ liệu cơ sở cho tất cả các kiểu object o = null; dữ liệu khác. string Lưu trữ giá trị chuỗi string s = “hello”; short 2 Int16 Số nguyên có dấu giá trị từ -32768 đến 32767. ushort 2 Uint16 Số nguyên không dấu 0 – 65.535 int 4 Int32 Số nguyên có dấu –2.147.483.647 và int val = 12; 2.147.483.647 uint 4 Uint32 Số nguyên không dấu 0 – 4.294.967.295 2
- 4/10/2012 Kiểu dữ liệu xây dựng sẵn (tt) Kiểu C# Số Kiểu Mô tả Ví dụ Byte .NET sbyte 1 Sbyte Số nguyên có dấu ( từ -128 đến 127) byte 1 Số nguyên không dấu từ 0 - 255 long 8 Int64 Kiểu số nguyên có dấu có giá trị trong khoảng : -9.223.370.036.854.775.808 đến 9.223.372.036.854.775.807 ulong 8 Uint64 Số nguyên không dấu từ 0 đến 18446744073709551615 Kiểu dữ liệu xây dựng sẵn (tt) Kiểu Số Kiểu Mô tả Ví dụ C# Byte .NET float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ float val = 3,4E- 38 đến 3,4E+38, với 7 chữ số 1.23F; có nghĩa. Có thêm hậu tố F sau giá trị double 8 Double Kiểu dấu chấm động có độ chính xác gấp đôi, giá trị xấp xỉ 1.7E-308 - 1.7E+308, với 15,16 chữ số có nghĩa decimal 8 Decimal Chính xác đến 28 con số và giá trị thập phân, được dùng trong tính toán tài chính, đòi hỏi hầu tố “m” hay “M” theo sau giá trị Kiểu dữ liệu xây dựng sẵn (tt) Kiểu C# Số Kiểu Mô tả Ví dụ Byte .NET bool 1 Boolean Giá trị logic true/ false bool val1 = true; bool val2 = false; char 2 Char Ký tự Unicdoe char val = 'h'; 3
- 4/10/2012 Kiểu dữ liệu xây dựng sẵn (tt) Ghi chú: Kiểu giá trị logic chỉ có thể nhận được giá trị là true hay false. Khác với C/C++, một giá trị nguyên không thể gán vào một biến kiểu logic trong C# và không có bất cứ chuyển đổi ngầm định nào Biên dịch: xuất hiện lỗi Error CS0029 : Cannot implicitly convert type 'int' to 'bool' Kiểu dữ liệu xây dựng sẵn (tt) Kiểu dữ liệu ký tự thể hiện các ký tự Unicode Bao gồm các ký tự đơn giản, ký tự theo mã Unicode và các ký tự thoát khác được bao trong những dấu nháy đơn Ký tự thoát là những ký tự đặc biệt bao gồm hai ký tự liên tiếp trong đó ký tự dầu tiên là dấu chéo ‘\’. Ví dụ, \t là dấu tab Giá trị mặc định của kiểu dữ liệu Kiểu Giá trị mặc định Numeric (int,float,short) 0 hoặc 0.0 Bool false Char ‘\0’ Enum 0 String null Kiểu tham chiếu null 4
- 4/10/2012 Các ký tự đặc biệt Ký tự Ý nghĩa \' Dấu nháy đơn \" Dấu nháy kép \\ Dấu chéo (Backslash) \0 Ký tự Null \a Alert Các ký tự đặc biệt (tt) Ký tự Ý nghĩa \b Backspace \f Sang trang Form feed \n Dòng mời (Newline) \r Đầu dòng (Carriage return) \t Tab ngang (Horizontal tab) \v Tab dọc (Vertical tab) Chuyển đổi kiểu dữ liệu Chuyển đổi kiểu dữ liệu này qua kiểu dữ liệ khác Có 2 cách: chuyển đổi tường minh và ngầm định Chuyển đổi ngầm định được thực hiện một cách tự động đảm bảo là không mất thông tin. Từ kiểu nhỏ sang kiểu lớn short x = 10; int y = x; // chuyển đổi ngầm định Trường hợp này không thực hiện short x; int y = 100; x = y; // Không biên dịch, lỗi !!! 5
- 4/10/2012 Chuyển đổi kiểu dữ liệu (tt) short x; int y = 500; x = (short) y; // Ép kiểu tường minh, trình biên dịch không báo lỗi Để chuyển đổi một ký tự sang mã ASCII (int)'A‘ Để chuyển một số sang ký tự ta thực hiện như sau: (char)65 Chuyển đổi ngầm định From To sbyte short, int, long, float, double, decimal byte short, ushort, int, uint, long, ulong, float, double, decimal short int, long, float, double, decimal ushort int, uint, long, ulong, float, double, decimal int long, float, double, decimal uint long, ulong, float, double, decimal long, ulong float, double, decimal float double char ushort, int, uint, long, ulong, float, double, decimal Chuyển đổi tường mình Do lập trình viên chỉ định Xảy ra khi Ép từ kiểu lớn qua kiểu nhỏ: có thể mất giá trị double x = 74.86; int i = (int))x; // i = 74 Ép từ lớp cơ sở qua lớp dẫn xuất string s = "Hello"; object o = s; string s2 = (string)o; 6
- 4/10/2012 Ví dụ sử dụng kiểu dữ liệu Khai bao trước khi public class App sử dụng { public static void Main() Gán giá trị trước { khi sử dụng Khai báo int width, height; width = 2; height = 4; Khai báo + khởi đầu int area = width * height; int x; Lỗi int y = x * 2; ... } } Ví dụ using System; class TestDefaultValues { static void Main() { int number, result; number=5; result=100 * number; Console.WriteLine (“Result is {0} when 100 is multiplied by number {1}”, result, number); } } Ví dụ: chuyển đổi kiểu dữ liệu int i = 5; double d = 3.2; string s = "496"; Chuyển đổi ngầm định d = i; Chuyển đổi tường minh i = (int) d; Chuyển đổi tường minh i = System.Convert.ToInt32(s); 7
- 4/10/2012 Input / Output trong C# Sử dụng các phương thức của lớp Console trong không gian tên System Console.ReadLine() Console.WriteLine() Định danh Là tên mà người lập trình chỉ định cho các kiểu dữ liệu, các phương thức, tên biến, hằng, lớp hay đối tượng.... Định danh không trùng với từ khóa của C# Định danh phải bắt đầu với một ký tự chữ cái hay dấu gạch dưới, các ký tự còn lại phải là ký tự chữ cái, chữ số, dấu gạch dưới. C# phân biệt chữ hoa và chữ thường Ví dụ: Định danh đúng: result , _score, footballTeam, plan9 Định danh sai: result%, footballTeam$, 9plan Các từ khóa của C# Các từ khóa trong C# abstract const extern in operator sbyte throw virtual as continue false int out sealed true void base decimal finally interface override set try volatile bool default fixed internal params short typeof where break delegate float is partial sizeof uint while byte do for lock private stackalloc ulong yield case double foreach long protected static unchecked catch else get namespace public string unsafe char enum goto new readonly struct ushort checked event if null ref switch using class explicit implicit object return this value 8
- 4/10/2012 Biến Biến là nơi lưu dữ liệu của chương trình Dữ liệu của biến Nằm trong bộ nhớ vật lý (physical RAM) Có thể thay đổi giá trị Phải khai báo trước khi dùng Định danh: tên để đại diện cho biến Kiểu dữ liệu: dạng lưu trữ dữ liệu của biến Biến (tt) Bạn có thể khai báo kết hợp khởi đầu giá trị cho biến Tên biến không được trùng với từ khóa của C#, nếu muốn sử dụng từ khóa làm tên biến phải thêm @ trước từ khóa Khai báo biến: int tuoi; tên biến ; tuoi = 21 ; Console.WriteLine(tuoi); Ví dụ 9
- 4/10/2012 Ví dụ: về khai báo biến using System; using System.Collections.Generic; using System.Text; namespace InitializingVariables { class Values { static void Main( ) { int myInt = 7; System.Console.WriteLine(“Khởi đâu, myInt: {0}", myInt); myInt = 5; System.Console.WriteLine(“Sau khi gán, myInt: {0}", myInt); } } } Output: Khởi đầu, myInt: 7 sau khi gán, myInt: 5 Ví dụ: sử dụng từ khóa làm tên biến using System; class VariableDemo { public static void Main() { string @string; @string = ”Su dung tu khoa lam ten bien”; Console.WriteLine (@string); } } Hằng Hằng là một biến mà giá trị của nó không thể thay đổi Phải gán giá trị ngay khi khai báo Khai báo hằng = ; const int DoSoi = 100; // Độ C const int DoDong = 0; // Độ C System.Console.WriteLine( “Do dong cua nuoc {0}”, DoDong ); System.Console.WriteLine( “Do soi cua nuoc {0}”, DoSoi ); 10
- 4/10/2012 Câu lệnh (Statements ) Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu lệnh tuần tự với nhau. Mỗi câu lệnh phải kết thúc với một dấu chấm phẩy “;” int x ; // 1 câu lệnh x = 23 ; // 1 câu lệnh khác int y = x; // một câu lệnh khác Những câu lệnh này sẽ được xử lý theo thứ tự. Biểu thức Câu lệnh thực hiện việc đánh giá một giá trị gọi là biểu thức. Một phép gán một giá trị cho một biến cũng là một biểu thức: var1 = 24; a = b = c = d = 24; Khoảng trắng Trong C#, những khoảng trắng, tab và các dòng được xem như là khoảng trắng (whitespace), C# sẽ bỏ qua tất cả các khoảng trắng đó, do vậy chúng ta có thể viết như sau: var1 = 24; hay int x = 5; Giống như: var1 = 24 ; int x=5; Khác với: intx=5; 11
- 4/10/2012 Chú thích trong C# C# sử dụng kiểu chú thích của C++ // chú thích 1 dòng /* các dòng chú thích ……………………………………. ……………………………………..*/ Phân nhánh Phân nhánh không có điều kiện Gọi hàm Sử dụng từ khóa phân nhánh : goto, break, continue, return, throw Phân nhánh có điều kiện if switch Ví dụ: gọi hàm using System; using System.Collections.Generic; using System.Text; namespace Goiham { class Goimotham { static void Main( ) { Console.WriteLine(“Trong Main! Gọi hàm SomeMethod( )..."); SomeMethod( ); Console.WriteLine(“Quay về Main( )."); } static void SomeMethod( ) { Console.WriteLine(“Xin chao tu SomeMethod!"); } } } 12
- 4/10/2012 Câu lệnh if if (biểu thức điều kiện) { ; ; ............ ; } [else { ; ; ... } ] Nhóm câu lệnh trong [….] có thể có hoặc không Ví dụ if string str = ”hello”; if (str) // Lỗi System.Console.WriteLine (“Giá trị là True”); if (str == “hello”) System.Console.WriteLine (“Giá trị là đúng”); Câu lệnh Switch switch(variable) { case value: ; break; case value: ; break; default: ; break; } 13
- 4/10/2012 Ví dụ : sử dụng Switch switch(weekday) { case 1: Console.WriteLine (“You have selected Monday”); break; case 2: Console.WriteLine (“You have selected Tuesday”); break; default: Console.WriteLine (“Sunday is the Default choice!”); break; } Sử dụng lệnh nhảy: goto Để sử dụng goto using System; Tạo một nhãn public class UsingGoto { goto đến nhãn public static int Main() { int i = 0; lap: // nhãn Console.WriteLine(“i:{0}”,i); i++; if ( i < 10 ) goto lap; // nhãy về nhãn lap return 0; } } Cấu trúc lệnh lặp while Loop do Loop for Loop foreach Loop 14
- 4/10/2012 Cấu trúc while while { ; } Thực hiện câu lệnh trong khi điều kiện vẫn còn đúng Câu lệnh break sẽ thoát ngay khỏi vòng lặp Câu lệnh continue sẽ bỏ qua lần lặp hiện tại và thực hiện lần lặp tiếp theo Ví dụ: while using System; public class UsingWhile { public static int Main() { int i = 0; while ( i < 10 ) { Console.WriteLine(“ i: {0} ”,i); i++; } return 0; } } Cấu trúc do … while do using System; public class UsingDoWhile ; { public static int Main( ) while ( điều kiện ) { int i = 11; Thực hiện câu lệnh ít nhất 1 do lần trong khi điều kiện vẫn { còn đúng Console.WriteLine(“i: {0}”,i); i++; } while ( i < 10 ) return 0; } } 15
- 4/10/2012 Cấu trúc lặp for …. for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp]) Ví dụ: sử dụng for using System; public class UsingFor { public static int Main() { for (int i = 0; i < 30; i++) { if (i %10 ==0) // phân dư { Console.WriteLine(“{0} ”,i); } else { Console.Write(“{0} ”,i); } } return 0; } } Phạm vi của biến khai báo trong vòng lặp for using System; public class UsingFor { public static int Main() { for (int i = 0; i < 30; i++) { if (i %10 ==0) // phân dư { Console.WriteLine(“{0} ”,i); } else { Console.Write(“{0} ”,i); } } Console.WriteLine(“ Ket qua cuoi cung cua i:{0}”,i);// Sai return 0; } } 16
- 4/10/2012 Cấu trúc foreach Cú pháp: foreach ( in < tên tập hợp>) ; Ví dụ : foreach using System; public class UsingForeach { public static int Main() { int[] intArray = {1,2,3,4,5,6,7,8,9,10}; foreach( int item in intArray) { Console.Write(“{0} ”, item); } return 0; } Toán tử Toán tử gán (=) Toán tử toán học Toán tử số học đơn giản (+, -, *, /): Lưu ý khi chia hai số nguyên : 17/4 = 4 Chia cho số thực có kiểu như float, double, hay decimal thì kết quả chia được trả về là một số thực. Toán tử chia dư (%) : 17%4 = 1 17
- 4/10/2012 Toán tử Toán tử tăng giảm Luong = Luong * 2; Luong = Luong – 100.000; C# cung cấp các phép toán tự gán Toán tử Toán tử Toán tử : ++ , -- Toán tử tăng giảm tiền tố và tăng giảm hậu tố, var2 =10 var1 = ++var2; // var1 = 11, var2 = 11 var1 = var2++; //var1 = 10 , var2 = 11 18
- 4/10/2012 Toán tử quan hệ Toán tử logic Độ ưu tiên toán tử Một ngôi 19
- 4/10/2012 Độ ưu tiên toán tử Toán tử ba ngôi ? : Ví dụ maxValue = value1 > value2 ? value1 : value2; Namespace Sử dụng namespace Nhằm tránh sự xung đột về tên, giúp cho việc sử dụng các thư viện khác nhau từ các nhà cung cấp. Giảm bớt độ phức tạp khi sử dụng lại mã cho ứng dụng khác C# đưa ra từ khóa using đề khai báo sử dụng namespace trong chương trình: 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
0 p | 220 | 32
-
Bài giảng Kỹ thuật lập trình: Chương I - Lưu Hồng Việt
48 p | 194 | 23
-
Bài giảng Kỹ thuật lập trình: Chương IV - Lưu Hồng Việt
32 p | 151 | 17
-
Bài giảng Kỹ thuật lập trình: Chương III - Lưu Hồng Việt
51 p | 147 | 15
-
Bài giảng Kỹ thuật lập trình: Chương V - Lưu Hồng Việt
19 p | 127 | 15
-
Bài giảng Kỹ thuật lập trình: Phần 1 - ĐH CNTT&TT
37 p | 114 | 10
-
Bài giảng Kỹ thuật lập trình - Bài 1: Tổng quan về kỹ thuật lập trình
65 p | 164 | 8
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 127 | 7
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 4 - ThS. Dương Thành Phết
26 p | 92 | 7
-
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 p | 15 | 4
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 6 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 7 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 3 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 8 | 1
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 6 | 1
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 10 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn