Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh

NỘI DUNG

1. Giới thiệu ngôn ngữ C#

2. Kiểu dữ liệu, các phương thức chuyển kiểu

3. Khai báo biến, hằng, phép toán

4. Các cấu trúc lệnh

5. Hàm, tham số và cách truyền tham số

6. Các lớp cơ sở: chuỗi, mảng, tập hợp

7. Những ứng dụng Console

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 1

Trang 1

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 2

Trang 2

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 3

Trang 3

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 4

Trang 4

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 5

Trang 5

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 6

Trang 6

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 7

Trang 7

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 8

Trang 8

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 9

Trang 9

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 74 trang xuanhieu 5761
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh

Bài giảng Lập trình DOTNET - Chương 1: Cơ bản về ngôn ngữ lập trình C# - Huỳnh Lê Uyên Minh
 
 int a, b; 
 Console.Write("Nhap vao a: "); 
 a = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap vao b: "); 
 b = int.Parse(Console.ReadLine()); 
 if (a == 0) 
 if (b == 0) 
 Console.WriteLine("PT VSN”); 
 else 
 Console.WriteLine("PT VN"); 
 else 
 Console.WriteLine("Ng cua PT: {0:0.00}", (float)-b/a); 
 } 
 29 
Cấu trúc lựa chọn - switchcase 
switch (biểu thức) 
 case n1: 
 các câu lệnh ; KQ phải là nguyên 
 break ; 
 case n2: 
 các câu lệnh ; 
 break ; 
 case nk: 
 ; 
 break ; 
 [default: các câu lệnh] 
 break; 
 
 30 
Ví dụ: Nhập vào số nguyên n có giá trị từ 1 đến 5. In cách đọc 
của số đó ra màn hình 
 static void Main(string[] args) 
 { 
 int n; 
 Console.Write("Nhap vao n (1<=n<=5): "); 
 n = int.Parse(Console.ReadLine()); 
 switch (n) 
 { 
 case 1: Console.WriteLine("So mot"); break; 
 case 2: Console.WriteLine("So hai"); break; 
 case 3: Console.WriteLine("So ba"); break; 
 case 4: Console.WriteLine("So bon"); break; 
 case 5: Console.WriteLine("So nam"); break; 
 default : Console.WriteLine(“Gia tri khong hop le"); 
 break; 
 } 
 } 
 31 
Bài tập 
 • Nhập vào hai số nguyên a, b. In ra màn hình giá trị lớn nhất. 
 • Cho ba số a, b, c đọc vào từ bàn phím. Hãy tìm giá trị lớn nhất của 
 ba số trên và in ra kết quả. 
Cấu trúc lặp 
 • while 
 • for 
 • dowhile 
 • foreach 
 33 
Cấu trúc lặp while và for 
 Khôûi gaùn
 Sai (Biểu thức Ñuùng (Bieåu thöùc 
 ñiều kiện = 0) Kieåm tra bieåu ñieàu kieän khaùc 0)
 thöùc ñieàu kieän
 Thöïc hieän caùc leänh 
 trong voøng laëp
 Taêng/ giaûm chæ 
 soá laëp
 34 
Hoạt động cấu trúc lặp while và for 
 • Bước 1: Thực hiện khởi gán 
 • Bước 2: Kiểm tra biểu thức điều kiện 
 - Nếu kết quả là true thì cho thực hiện các lệnh của vòng 
 lặp, thực hiện biểu thức tăng/ giảm. Quay trở lại bước 2. 
 - Ngược lại kết thúc vòng lặp. 
Cấu trúc lặp while 
 ; 
 while () 
 lệnh/ khối lệnh; 
 ; 
  
 36 
VD: Xuất ra màn hình 10 dòng chữ ABC 
 static void Main(string[] args) 
 { 
 int d = 1; 
 while (d <= 10) 
 { 
 Console.WriteLine("Dong {0}: ABC", d); 
 d++; 
 } 
 } 
Cấu trúc lặp for 
 for (;;) 
 { 
 ; 
 } 
 38 
VD: Xuất ra màn hình 10 dòng chữ ABC 
 static void Main(string[] args) 
 { 
 for (int d = 1; d <= 10; d++) 
 Console.WriteLine("Dong {0}: ABC", d); 
 } 
 39 
Cấu trúc lặp dowhile 
 Khởi gán do 
 { 
 Lệnh / Khối lệnh ; 
 } while (biểu thức ĐK); 
 Cập nhật vòng lặp
 Thực hiện khối lệnh 
 Điều kiện lặp Yes cho đến khi biểu thức 
 điều kiện là false 
 40 
Cấu trúc lặp foreach 
• Sử dụng cho mảng 
foreach ( in ) 
{ 
 Khối lệnh; 
} 
Xét từng phần tử trong mảng 
 41 
VD: Tính tổng các phần tử chẵn trong mảng 
static void Main(string[] args) 
{ 
 int s=0; 
 int [ ] a = new int [5] {3, 8, 7, 1, 6}; 
 foreach(int m in a) 
 if(m%2==0) 
 s+=m; 
 Console.WriteLine("Tong chan = " +s); 
} 
 42 
Bài tập 
• Viết chương trình đếm số US của số nguyên 
 dương. 
• Viết chương trình in ra màn hình hình chữ 
 nhật đặc kích thước (m, n nhập từ bàn phím). 
 Ví dụ: Nhập m=5, n=4 
 * * * * * 
 * * * * * 
 * * * * * 
 * * * * * 
 43 
Các lệnh điều khiển 
• Lệnh goto: 
 goto Label1; 
 Console.WriteLine(“Cau lenh 1"); 
 Label1: 
 Console.WriteLine(“Cau lenh 2"); 
• Lệnh break: dùng câu lệnh break khi muốn thoát khỏi vòng lặp 
 for (int i = 0; i < 10; i++) 
 { 
 if (i > 5) 
 break; 
 Console.WriteLine(" " + i); 
 } 
 44 
Các lệnh điều khiển 
 • Lệnh continue: được dùng trong vòng lặp khi muốn thi hành tiếp vòng lặp 
 nhưng không thi hành các lệnh còn lại trong vòng lặp, các lệnh sau lệnh 
 continue. 
 for (int i = 0; i < 10; i++) 
 { 
 if (i < 5) 
 continue; 
 Console.WriteLine(" " + i); 
 } 
 • Lệnh return: dùng để thoát khỏi một hàm, nếu hàm có một kiểu dữ liệu trả 
 về thì return phải trả về một kiểu dữ liệu này. 
 45 
5. Một số hàm thông dụng 
 • Thông qua lớp Math 
 – Lấy giá trị tuyệt đối 
 int x = Math.Abs(-10); // kết quả x = 10 
 – Lũy thừa 
 int x = Math.Pow(2,3); // kết quả x = 2^3 
 – Lấy căn 
 double x = Math.Sqrt(4); // kết quả x = 2 
 – Làm tròn 
 double x = Math.Round(0.1234,2); // kết quả x = 0.12 
 46 
Một số hàm thông dụng (tt) 
 • Lớp ký tự - char 
 – bool char.IsDigit(char c) : có phải là ký số 
 – bool char.IsLetter(char c) : có phải là ký tự 
 – bool char.IsLetterOrDigit(char c) : có phải là ký tự hoặc ký số 
 – bool char.IsLower(char c) : có phải là ký tự thường 
 – bool char.IsUpper(char c) : có phải là ký tự hoa 
 – char char.ToUpper(char c) : trả về ký tự hoa 
 – char char.ToLower(char c) : trả về ký tự thường 
 Ví dụ: string str = “123”; 
 Console.WriteLine(“Ky tu dau la “ + str[0] + “. Do dai: “ + str.Length); 
 bool b1 = char.IsDigit(str[0]); 
 Console.WriteLine(b1); // true 
 //Kiểm tra tất cả các ký tự của chuỗi có phải là ký tự số ? 
 47 
Một số hàm thông dụng (tt) 
static void Main(string[] args) 
 { 
 int a = 5; 
 int b = 10; 
 Console.WriteLine("Truoc ham: a = " + a.ToString() + " b = " + b.ToString()); 
 Swap(a, ref b); 
 Console.WriteLine("Sau ham: a = " + a.ToString() + " b = " + b.ToString()); 
 Console.ReadKey(); 
 } 
static void Swap(int a, ref int b) 
 { 
 a = a + b; 
 b = a - b; 
 a = a - b; 
 Console.WriteLine("Trong ham: a = " + a.ToString() + " b = " + b.ToString()); 
 } 
 48 
Một số hàm thông dụng (tt) 
 • Lớp chuỗi – string 
 – Length : Chiều dài chuỗi (số ký tự) 
 – IndexOf(): Vị trí xuất hiện đầu tiên của một chuỗi con trong chuỗi 
 – LastIndexOf(): Vị trí xuất hiện cuối cùng của một chuỗi con trong 
 chuỗi 
 – ToUpper(): Trả về chuỗi chữ hoa 
 – ToLower(): Trả về chuỗi chữ thường 
 – Replace(): Thay thế chuỗi con trong chuỗi bằng một 
 chuỗi con khác 
 – Split(): Cắt một chuỗi thành nhiều chuỗi con 
 – SubString(): Lấy một chuỗi con 
 49 
Một số hàm thông dụng (tt) 
 • Ví dụ 1: 
 string str1 = “Hello world”, str2; 
 char c = str1[0]; // c='H'; 
 int i = str1.Length; // i = 10 
 int i = str1.IndexOf(“wo”); // i = 6 
 str2 = str1.Replace(“w”, “W”); // str2=”Hello World” 
 str2 = str1.ToLower(); // str2 = “hello world” 
 str2 = str1.ToUpper(); // str2 = “HELLO WORLD” 
 50 
Một số hàm thông dụng (tt) 
 • Ví dụ 2: 
 int a = 1, b = 2, tong = a+b; 
 string str = "Tong " + a.ToString() + " va " + b.ToString() + " la " + tong.ToString(); 
 Console.WriteLine(str); 
 str = string.Format("Tong {0} va {1} la {2}", a, b, tong); 
 Console.WriteLine(str); 
 // ----------------------------------------------------------------------------------- 
 string str = “2,15,678”; 
 string[] arrStr = str.Split(',') ; 
 for (int i=0; i<arrStr.Length;i++) 
 { 
 sum += Convert.ToInt32(arrStr[i]); 
 } 
 51 
Một số hàm thông dụng (tt) 
 • Ví dụ 3: Hàm kiểm tra MSSV có phải là 7 ký tự số không? 
 private bool KiemTraMSSV(string mssv) { 
 // Kiem tra mssv chi co 7 ky tu 
 if (mssv.Length != 7) return false; 
 // Kiem tra cac ky tu phai la chu so 
 for (int i = 0; i < mssv.Length; i++) 
 { 
 if (char.IsDigit(mssv[i]) == false) return false; 
 } 
 return true; 
 } 
 52 
Bài tập – dữ liệu kiểu chuỗi 
 • 1.Viết hàm tách tên. Tham số truyền vào là họ và tên, hàm sẽ trả về tên. 
 • 2.Viết hàm tách họ. Tham số truyền vào là họ và tên, hàm sẽ trả về họ và 
 chữ lót. 
 • 3. Viết hàm chuẩn hóa chuỗi họ tên: 
 – Không có khoảng trắng trước và sau tên 
 – Không có hơn 1 ký tự khoảng trắng giữa các ký tự 
 – Ký tự đầu của các từ phải viết hoa 
 – Ví dụ: “Nguyen Y Van” là hợp lệ 
 • 4.Viết hàm đếm số từ trong chuỗi. 
 – Ví dụ: “Truong Dai hoc Dong Thap” 5 
 • 5.Viết hàm chuyển đổi số thành chữ. 
 – Ví dụ: 12345 Mười hai nghìn ba trăm bốn mươi lăm 
 53 
6. Method - Phương thức 
 • Phương thức (hay còn gọi là hàm) là một đoạn chương 
 trình độc lập thực hiện trọn vẹn một công việc nhất định 
 sau đó trả về giá trị cho chương trình gọi nó, hay nói cách 
 khác hàm là sự chia nhỏ của chương trình. 
 Mục đích sử dụng phương thức: 
 • Khi có một công việc giống nhau cần thực hiện ở nhiều vị 
 trí. 
 • Khi cần chia một chương trình lớn phức tạp thành các 
 đơn thể nhỏ (hàm con) để chương trình được trong sáng, 
 dễ hiểu trong việc xử lý, tính toán. 
 54 
Phương thức 
 Mẫu tổng quát của phương thức 
 TênPhươngThức([tham số]); 
 Phạm vi 
 • Xác định phạm vi hay cách phương thức được gọi (sử 
 dụng) 
 • Các từ khoá phạm vi : private, public, static 
 55 
Phương thức 
 KDL của phương thức (đầu ra), gồm 2 loại 
 • void: Không trả về giá trị 
 • float / int / long / string / kiểu cấu trúc /  : Trả về giá 
 trị có KDL tương ứng với kết quả xử lý 
 56 
Phương thức 
 • Tên phương thức : Đặt tên theo qui ước sao cho phản 
 ánh đúng chức năng thực hiện của phương thức 
 • Danh sách các tham số (nếu có) : đầu vào của phương 
 thức (trong một số trường hợp có thể là đầu vào và đầu 
 ra của phương thức nếu kết quả đầu ra có nhiều giá trị - 
 Tham số này gọi là tham chiếu) 
 57 
Khi hàm xử lý biến toàn cục thì không cần tham số 
 static int a, b; 
 static void Nhap() 
 { 
 Console.Write("Nhap a: "); 
 a = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap b: "); 
 b = int.Parse(Console.ReadLine()); 
 } 
 static void Xuat() 
 { 
 Console.WriteLine("a = {0}; b = {1}", a, b); 
 } 
 static void Main(string[] args) 
 { 
 Nhap(); 
 Xuat(); 
 } 
 58 
 Phương thức không trả về giá trị 
static void TênPhươngThức([danh sách các tham số]) 
{ 
 Khai báo các biến cục bô ̣
 Các câu lệnh hay lời gọi đến phương thức khác. 
} 
• Gọi hàm: TênPhươngThức(danh sách tên các đối số); 
• Những phương thức loại này thường rơi vào những 
 nhóm chức năng: Nhập / xuất dữ liệu, thống kê, sắp xếp, 
 liệt kê 
 59 
Viết chương trình nhập số nguyên dương n và in ra màn 
hình các ước số của n 
• Input: số nguyên dương (Xác định tham số) 
• Output: In ra các ước số của n (Xác định KDL trả về của 
 phương thức) 
- Xuất Không trả về giá trị KDL là void. 
- Xác định tên phương thức: Phương thức này dùng in ra các 
 US của n nên có thể đặt là LietKeUocSo 
 static void LietKeUocSo(uint n) 
 60 
Viết chương trình nhập số nguyên dương n và in ra màn 
hình các ước số của n 
 static void LietKeUocSo(uint n) 
 { 
 for (int i = 1; i <= n; i++) 
 if (n % i == 0) 
 Console.Write("{0}\t", i); 
 } 
 static void Main(string[] args) 
 { 
 uint n; 
 Console.Write("Nhap so nguyen duong n: "); 
 n=uint.Parse(Console.ReadLine()); 
 Console.Write("Cac uoc so cua {0}: ", n); 
 LietKeUocSo(n); 
 Console.ReadLine(); 
 } 
 61 
 Phương thức có trả về kết quả 
 static TênPhươngThức([tham số]) 
 { 
 kq; 
 Khai báo các biến cục bô ̣
 Các câu lệnh hay lời gọi đến phương thức khác. 
 return kq; 
 } 
 Gọi hàm: 
 Tên biến = TênPhươngThức(tên các đối số); 
 Những phương thức này thường rơi vào các nhóm: Tính 
 tổng, tích, trung bình, đếm, kiểm tra, tìm kiếm 
 62 
 Phương thức có trả về kết quả - Ví dụ 
 Viết chương trình nhập số nguyên dương n và tính 
 Sn 1 2 3  n ;n 0
 • Input: số nguyên dương n (Xác định tham số) 
 • Output: Tổng S (Xác định KDL trả về của phương thức) 
  Trả về giá trị tổng (S). 
  S là tổng các số nguyên dương nên S cũng là số nguyên dương 
 Kiểu trả về của hàm là ulong. 
 • Xác định TênPhươngThức: Dùng tính tổng S nên có thể đặt là TongS 
 static ulong TongS(uint n) 
 63 
 Phương thức có trả về kết quả - Ví dụ 
static ulong TongS(uint n) 
{ 
 ulong kq = 0; 
 for (uint i = 1; i <= n; i++) 
 kq + = i; 
 return kq; 
} 
static void Main(string[] args) 
{ 
 ulong S; 
 uint n; 
 Console.Write("Nhap vao so nguyen n: "); 
 n = uint.Parse(Console.ReadLine()); 
 S = TongS(n); 
 Console.Write("Tong tu 1 den n: " + S); 
 Console.ReadLine(); 
} 
 64 
 Tham số là tham chiếu 
• Tham số lưu kết quả xử lý của hàm: out (thường dùng cho 
 trường hợp nhập dữ liệu, kết quả hàm có nhiều giá trị) 
• Tham số vừa làm đầu vào và đầu ra: ref 
• Dùng từ khóa ref hoặc out trước KDL của khai báo tham 
 số và trước tên đối số khi gọi phương thức. 
• Dùng từ khóa ref bắt buộc phải khởi gán giá trị ban đầu 
 cho đối số trước khi truyền vào khi gọi phương thức (Nếu 
 dùng out thì không cần thiết) 
 65 
Ví dụ: Hoán vị 2 số nguyên a, b cho trước 
 Đánh giá kết quả khi viết chương trình với hai 
 trường hợp sau 
 1. Trường hợp không dùng tham chiếu 
 2. Trường hợp dùng tham chiếu: ref 
  Không dùng tham chiếu 
static void HoanVi(int a, int b) 
{ 
 int tam = a; 
 a = b; 
 b = tam; 
 Console.WriteLine("Trong HoanVi: a = " + a + ";b = " + b); 
} 
static void Main(string[] args) 
{ 
 int a = 5, b = 21; 
 Console.WriteLine("Truoc HoanVi: a = {0}; b = {1}", a, b); 
 HoanVi(a, b); 
 Console.WriteLine("Sau HoanVi: a = " + a + ";b = " + b); 
} 
 67 
  Dùng tham chiếu 
static void HoanVi(ref int a, ref int b) 
{ 
 int tam = a; 
 a = b; 
 b = tam; 
 Console.WriteLine("Trong HoanVi: a = " + a + ";b = " + b); 
} 
static void Main(string[] args) 
{ 
 int a = 5, b = 21; 
 Console.WriteLine("Truoc HoanVi: a = {0}; b = {1}", a, b); 
 HoanVi(ref a, ref b); 
 Console.WriteLine("Sau HoanVi: a = " + a + ";b = " + b); 
} 
 68 
Ví dụ - sử dụng tham chiếu out 
 static void Nhap(out int a, out int b) 
 { 
 Console.Write("Nhap a: "); 
 a = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap b: "); 
 b = int.Parse(Console.ReadLine()); 
 } 
 static int Tong(int a, int b) 
 { 
 return a + b; 
 } 
 static void Main(string[] args) 
 { 
 int a, b; 
 Nhap(out a, out b); 
 s=Tinh(a, b); 
 Console.WriteLine(“{0}+{1}={2}”, a, b, s); 
 } 
 69 
 Bài tập 
. Viết chương trình tính diện tích và chu vi của hình chữ 
 nhật. 
. Viết chương trình tính diện tích và chu vi hình tròn. 
. Nhập vào 3 số thực a, b, c và kiểm tra xem chúng có lập 
 thành 3 cạnh của một tam giác hay không? Nếu có hãy 
 tính diện tích, chiều dài mỗi đường cao của tam giác và 
 in kết quả ra màn hình. 
 70 
Bài tập 
 . Viết chương trình nhập 2 số nguyên dương a, b. 
 Tìm USCLN & BSCNN. 
 . Viết chương trình nhập số nguyên dương n, tính 
 tổng các ước số của n. 
 Ví dụ: Nhập n=6 
 Tổng các ước số từ 1 đến n: 1+2+3+6=12. 
 . Nhập vào giờ, phút, giây. Kiểm tra xem giờ, 
 phút, giây đó có hợp lệ hay không? 
 71 
7. Những ứng dụng Consle 
 • Các ứng dụng Console là môi trường tốt cho những người mới bắt đầu 
 học lập trình và giải thuật. 
 • Các ứng dụng Console chạy trên môi trường DOS, và có giao diện dòng 
 lệnh. 
 • Sử dụng: Console. 
 72 
Thao tác trên Console 
 Console.WindowWidth
 t CCửửaa ssổổ CCoonnssoollee
 h
 g
 i
 e (0, 0)
 H Cột
 w
 o
 d
 n
 i
 D
 W
 ò
 .
 n
 e
 l
 g
 o
 s
 n
 o
 C
 73 
Một số site tham khảo 
 https://sites.google.com/site/duongniit905/lap-trinh/tai-
 lieu-hoc-c-danh-cho-nguoi-moi-bat-dau 
 74 

File đính kèm:

  • pdfbai_giang_lap_trinh_dotnet_chuong_1_co_ban_ve_ngon_ngu_lap_t.pdf