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
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
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
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:
- bai_giang_lap_trinh_dotnet_chuong_1_co_ban_ve_ngon_ngu_lap_t.pdf