intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình nâng cao - Phan Hồ Duy Phương

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:62

22
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Lập trình nâng cao do Phan Hồ Duy Phương biên soạn cung cấp cho người học những kiến thức như: Đệ qui; Chuỗi và các thao tác trên chuỗi; Tập tin; Đa luồng; Phân tích thuật toán. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình nâng cao - Phan Hồ Duy Phương

  1. LẬP TRÌNH NÂNG CAO KHOA CNTT - 2022 PHAN HỒ DUY PHƯƠNG 3/29/2022 PHAN HỒ DUY PHƯƠNG
  2. NỘI DUNG 1. Đệ qui 2. Chuỗi 3. Tập tin 4. Đa luồng 5. Phân tích thuật toán 3/29/2022 PHAN HỒ DUY PHƯƠNG
  3. ĐỆ QUI LẬP TRÌNH NÂNG CAO Phan Hồ Duy Phương http://duyphuong.top 3/29/2022 PHAN HỒ DUY PHƯƠNG
  4. ĐỆ QUI Định nghĩa: là phương pháp lập trình cho phép một hàm gọi lại chính nó. VD: void Test(){ Test(); } => phải có điểm dừng 3/29/2022 PHAN HỒ DUY PHƯƠNG
  5. ĐỆ QUI Ưu điểm: oThuận lợi cho việc biểu diễn bài toán oLập trình tinh gọn Khuyết điểm: oKhông tối ưu về thời gian oGây tốn bộ nhớ. 3/29/2022 PHAN HỒ DUY PHƯƠNG
  6. ĐỆ QUI Chương trình đệ qui được chia 2 phần: Phần cơ sở: Điểm dừng hay điều kiện thoát khởi chương trình. Phần đệ qui: Gọi lại chính nó 3/29/2022 PHAN HỒ DUY PHƯƠNG
  7. ĐỆ QUI oĐệ qui tuyến tính (Linear Recusion) oĐệ qui nhị phân (Binary Recursion) oĐệ qui lồng (Nested Recursion) oĐệ qui hỗ tương (Mutual Recursion) 3/29/2022 PHAN HỒ DUY PHƯƠNG
  8. ĐỆ QUI Đệ qui tuyến tính (Linear Recusion): Mỗi lần thực hiện gọi đệ qui một lần. VD: int tinhGiaiThua(int n){ if(n==1) return 1; else return n*tinhGiaiThua(n-1); } 3/29/2022 PHAN HỒ DUY PHƯƠNG
  9. ĐỆ QUI Đệ qui nhị phân (Binary Recusion): Mỗi lần thực hiện gọi đệ qui hai lần. VD: int Combine(int n, int k){ if(k==0||k==n) return 1; else return Combine(n-1,k)+ Combine(n-1,k-1); } 3/29/2022 PHAN HỒ DUY PHƯƠNG
  10. ĐỆ QUI Đệ qui lồng (Nested Recusion) VD: int Ackerman(int n, int n){ if(m==0) return n+1; else if(n==0) return Ackerman(m-1,1); else return Ackerman(m-1, Ackerman(m,n-1)); } 3/29/2022 PHAN HỒ DUY PHƯƠNG
  11. ĐỆ QUI Đệ qui hỗ tương (Mutual Recusion) VD: bool isEven(int n) bool isOdd(int n) { { if(n==0) if(n==1) return true; return true; else else return isOdd(n-1); return isEven(n-1); } } 3/29/2022 PHAN HỒ DUY PHƯƠNG
  12. BÀI TẬP 1. Đổi sang hệ nhị phân của số nguyên dương n o Nếu n == 0 thì => Bn = 0 o Bn = Bn/2 * 10 + b; với b = n%2 2. Tính P(n)=1.3.5...(2n+1) với n>=0 o Nếu n= 0 thì => Pn = 1 o Pn = (2n+1) * P(n-1) 3/29/2022 PHAN HỒ DUY PHƯƠNG
  13. NỘI DUNG 1. Đệ qui 2. Chuỗi và các thao tác trên chuỗi 3. Tập tin 4. Đa luồng 5. Phân tích thuật toán 3/29/2022 PHAN HỒ DUY PHƯƠNG
  14. CHUỖI VÀ CÁC THAO TÁC TRÊN CHUỖI LẬP TRÌNH NÂNG CAO Phan Hồ Duy Phương http://duyphuong.top 3/29/2022 PHAN HỒ DUY PHƯƠNG
  15. CHUỖI KHÁI NIỆM oKiểu char chỉ chứa được 1 ký tự => để lưu trữ một chuỗi các ký tự (nhiều ký tự) ta sử dụng một mảng (array) các ký tự. oChuỗi ký tự kết thúc bằng ký tự ‘\0’ (null) oĐộ dài chuỗi = kích thước mảng – 1 VD: string s; 3/29/2022 PHAN HỒ DUY PHƯƠNG
  16. CHUỖI KHAI BÁO CHUỖI oKhai báo : string s = “\t Mekong \nUni”; Console.Write(“{0}”,s); // Mekong // Uni oKhai báo verbatim (@) – nguyên thể: string s = @“\tMekong \n Un i”; Console.Write(“{0}”,s); // \tMekong \n Uni 3/29/2022 PHAN HỒ DUY PHƯƠNG
  17. CHUỖI KHAI BÁO CHUỖI oKhai báo chuỗi interpolation($) : int a = 5; string s = $“Gia tri a = {a}”; Console.Write(s); // Gia tri a = 5 3/29/2022 PHAN HỒ DUY PHƯƠNG
  18. CHUỖI NHẬP XUẤT CHUỖI string s; Console.Write(“Nhap chuoi:”); S = Console.ReadLine(); Console.Write(“{0}”,s); 3/29/2022 PHAN HỒ DUY PHƯƠNG
  19. CHUỖI CÁC HÀM THAO TÁC TRÊN CHUỖI o s.Length: độ dài chuỗi s VD: string s = “mekong”; int len = s.Length; // len = 6 o .ToLower(): chuyển chuỗi s thành chuỗi thường VD: string s = “MeKong”; s = s.ToLower(); Console.Write(s); // mekong 3/29/2022 PHAN HỒ DUY PHƯƠNG
  20. CHUỖI CÁC HÀM THAO TÁC TRÊN CHUỖI o s.ToCharArray: chuyển đổi thành mảng ký tự VD: string s = “mekong”; char[] arr = s.ToCharArray() foreach(char c in arr){ Console.Write(c); } 3/29/2022 PHAN HỒ DUY PHƯƠNG
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2