Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan lập trình C#
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan lập trình C#", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ky_thuat_lap_trinh_chuong_1_tong_quan_lap_trinh_c.pptx
Nội dung text: Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan lập trình C#
- Chương 1 Tổng quan lập trình C#
- Nội dung ❖Biến và khai báo biến ❖Các phép toán ❖Các hàm có sẵn của C# ❖Phát biểu điều kiện ❖Phát biểu lặp ❖Hàm
- Dữ liệu ❖Dữ liệu đầu vào ❖Dữ liệu đầu ra ❖Dữ liệu trong quá trình xử lý ❖Ví dụ ▪ Chương trình giải PT bậc 2 ▪ Chương trình tính số tiền nhận được khi gửi tiết kiệm
- Kiểu dữ liệu ❖Kiểu số ❖Kiểu ký tự ❖Kiểu chuỗi ❖Kiểu ngày tháng ❖Kiểu hình ảnh ❖
- Biến ❖Biến ▪ Là tên gọi cho một vùng nhớ (bên trong bộ nhớ máy tính khi chương trình được chạy) có khả năng chứa được một giá trị = một dữ liệu ▪ Được khai báo và sử dụng để chứa dữ liệu của chương trình ❖Khai báo biến ▪ kiểu_biến tên_biến [= giá_trị]; ▪ Ví dụ • int age; • string chuoi = “xin chao”;
- Đặt tên biến ❖Tên biến phân biệt chữ hoa và chữ thường ▪ tenBien khác với TenBien và Tenbien ❖Không bắt đầu bằng số ❖Không chứa các ký tự đặt biệt như ~ ! @ # $ % ^ & * ( ) ❖Không đặt tên biến trùng với từ khoá ▪ string, int, private tên không hợp lệ ❖Quy tắc camel
- Kiểu biến Kiểu biến Mô tả bool {true, false} Giá trị mặc định : false char [0, 65535] Số nguyên không dấu 16 bit, thường dùng để lưu trữ mã ASCII, Unicode của các ký tự. Giá trị mặc định : 0 DateTime [ – 12:00:00 AM, – 11:59:59.9999999 PM] 64 bit, lưu trữ các thông tin về ngày tháng và thời gian. Giá trị mặc định : 1/1//0001 – 0:00:00 decimal Số thực có dấu 128 bit (96 bit phần nguyên và 32 bit phần thập phân) Giá trị mặc định : 0 double Số thực có dấu 64 bit Giá trị mặc định : 0 int Số nguyên có dấu 32 bit [-231, 231) Giá trị mặc định: 0 string Mảng các ký tự thuộc kiểu Char. Giá trị mặc định : Nothing (không phải chuỗi rỗng)
- Một số vấn đề nâng cao ❖Kiểu sơ cấp (đơn trị) & Kiểu đối tượng (đa trị) ❖Tham chiếu ❖Kiểu biến do người lập trình tự định nghĩa ❖Khái niệm Cấu trúc dữ liệu của chương trình ❖Kiểu mảng
- Các phép toán ❖Phép gán = += -= ❖Phép toán toán học cơ bản + - * / % ^ ❖Phép toán so sánh == > = <= ❖Phép toán logic ! && ||
- Phép toán nâng cao ❖Phép gán kết hợp : += -= *= /= ❖Phép toán trên bit ! & | ❖Vấn đề về phù hợp kiểu trong phép gán ▪ Ép kiểu (Type-casting/Type converting) ▪ Implicit convert & Explicit convert
- Một số hàm có sẵn ❖Hàm nhập/xuất ▪ Console.ReadLine ▪ Console.Write/Console.WriteLine ❖Hàm chuyển đổi kiểu ❖Hàm toán học cơ bản ❖Hàm xử lý trên kiểu dữ liệu chuỗi ❖Hàm xử lý trên kiểu dữ liệu ngày tháng
- Phát biểu điều kiện if { ; } else { ; }
- Phát biểu điều kiện ❖Ví dụ if (i % 2 == 0) Console.WriteLine("i la so chan"); else Console.WriteLine("i la so le");
- Toán tử ? : ❖Dạng rút gọn của if else ❖Ví dụ ▪ string a = (i % 2 == 0) ? “so chan” : “so le”
- Phát biểu chọn switch { case : ; break; case : ; break; default: ; break; }
- Phát biểu chọn ❖Ví dụ switch (i) { case 1: Console.WriteLine("so 1"); break; case 2: Console.WriteLine("so 2"); break; default: Console.WriteLine("default"); break; }
- Phát biểu do while do { ; }while ( ); ❖Để thoát vòng lặp: dùng break ❖Để kết thúc sớm 1 vòng lặp: dùng continue ❖Nhận xét: ▪ Vòng lặp được chạy ít nhất 1 lần
- Phát biểu do while ❖Ví dụ n = 1; i = 1; do { n *= i; i++; } while (i<=5); Console.WriteLine("5! = {0}", n);
- Phát biểu while while ( ) { ; } ❖Để thoát vòng lặp: dùng break ❖Để kết thúc sớm 1 vòng lặp: dùng continue
- Phát biểu while ❖Ví dụ n = 1; i = 1; while (i <= 5) { n *= i; i++; } Console.WriteLine("5 giai thua la : {0}", n);
- Phát biểu for for ( = ; ; ) { ; } ❖Để thoát vòng lặp: dùng break ❖Để kết thúc sớm 1 vòng lặp: dùng continue
- Phát biểu for ❖Ví dụ int i; int n = 1; for(i=1; i<=5; i++) { n *= i; } Console.WriteLine("5 giai thừa là : {0}", n);
- Phát biểu foreach foreach( in ) { ; }
- Phát biểu foreach ❖Ví dụ string str = "abcde"; string newCh = ""; string ch = ""; foreach(char c in str) { ch = char.ToUpper(c).ToString(); newCh += ch; } Console.WriteLine(newCh);
- Phát biểu lặp ❖Nhận xét ▪ do while: phù hợp với suy nghĩ tự nhiên khi thiết kế thuật toán. ▪ while: khắc phục một số trường hợp lỗi của phát biểu do while ▪ for: cách viết ngắn gọn của phát biểu while, sử dụng khi điều kiện lặp phụ thuộc vào biến lặp và số lần lặp có thể biết trước
- Hàm ❖Khai báo hàm ( , ) { Nội dung hàm; [return ]; } ❖Đặt tên hàm ▪ Tương tự cách đặt tên biến ▪ Dùng động từ
- Hàm ❖Ví dụ private int TinhGiaiThua(int n) { int giaiThua = 1; for (int i = 1; i <= n; i++) { giaiThua *= i; } return giaiThua; }
- Hàm không trả về giá trị ❖Hàm không trả về giá trị thì khai báo kiểu trả về là void ❖Từ khoá return - kết thúc hàm ▪ Thường dùng kèm với điều kiện thoát khỏi hàm
- Hàm không trả về giá trị ❖Ví dụ private void XuatKetQua(int n) { if(n > 0) Console.WriteLine(n.ToString()); else return; }
- Truyền tham số theo tham trị ❖Hàm chỉ tác động đến bản sao của biến truyền vào ❖Giá trị biến truyền vào sau khi thực hiện không bị thay đổi
- Truyền tham số theo tham trị ❖Ví dụ private int TangSo(int i) { i = i + 1; return i; } int a = 10; int b = TangSo(a); ❖Kết quả ▪ a = 10 ▪ b = 11
- Truyền tham số theo tham chiếu ❖Tham số chứa địa chỉ đến vùng nhớ của biến truyền vào ❖Hàm tác động trực tiếp đến biến truyền vào ❖Giá trị biến truyền vào sau khi thực hiện bị thay đổi ❖Sử dụng từ khoá ref hoặc out ❖Tham số kiểu đa trị (mảng, đối tượng ) là truyền theo tham chiếu
- Truyền tham số theo tham chiếu ❖Ví dụ private int TangSo(out int i) { i = i + 1; return i; } int a = 10; int b = TangSo(out a); ❖Kết quả ▪ a = 11 ▪ b = 11
- Đệ quy ❖Thuật toán đệ quy ▪ Giải bài toán bằng cách rút gọn liên tiếp bài toán ban đầu thành bài toán cũng tương tự nhưng có dữ liệu đầu vào nhỏ hơn ▪ Ví dụ • n! có thể được định nghĩa bằng cách qui nạp như sau: • 0! = 1, • n! = n*(n-1)!, với mọi n > 0. • →Bài toán tính N! bây giờ thành tính N*(N-1)!
- Hàm đệ quy ❖Hàm đệ quy ▪ Trong quá trình thực hiện nó tự gọi đến chính mình. ❖Đệ qui trực tiếp ▪ Lời gọi có thể nằm bên trong hàm ❖Đệ qui gián tiếp ▪ Hàm gọi tới hàm khác, mà hàm này lần lượt gọi tới hàm ban đầu.
- Hàm đệ quy ❖Ví dụ int GiaiThua(int n) { if(n == 1) || (n == 0) return 1; return (GiaiThua(n - 1) * n); }
- Viết hàm và viết chương trình ❖Về đối tượng phục vụ : ▪ Đối tượng phục vụ của chương trình = người sử dụng ▪ Đối tượng phục vụ của hàm = lập trình viên ❖Về cấu trúc (các giai đoạn trong thiết kế) : ▪ Chương trình: Nhập dữ liệu từ người sử dụng → Xử lý →Xuất kết quả ra màn hình ▪ Hàm: Qui định cú pháp (khai báo) hàm→Xử lý →Trả về giá trị kết quả