Bài giảng Ngôn ngữ lập trình nâng cao: Bài 2.1 - Nguyễn Xuân Hùng

33 12 0
Bài giảng Ngôn ngữ lập trình nâng cao: Bài 2.1 - Nguyễn Xuân Hùng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Ngôn ngữ lập trình nâng cao: Bài 2.1 với mục tiêu miêu tả sự cấp phát bộ nhớ, sử dụng cấu trúc (structures), sử dụng kiểu liệt kê(enumerations), thực thi mảng (arrays), sử dụng tập hợp (collections).

Object-Oriented Programming Using C# NGƠN NGỮ LẬP TRÌNH NÂNG CAO Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Mục tiêu Trong mục học: Miêu tả cấp phát nhớ Sử dụng cấu trúc (structures) Sử dụng kiểu liệt kê(enumerations) Thực thi mảng (arrays) Sử dụng tập hợp (collections) Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ Bộ nhớ cấp phát cho biến đề cập theo cách sau: Kiểu giá trị (Value types): Chứa liệu Kiểu liệu gắn liền kiểu int, char float kiểu giá trị Kiểu tham chiếu (Reference types): Chứa địa tham chiếu tới khối nhớ Các kiểu liệu string class kiểu tham chiếu Chúng ta tìm hiểu chi tiết khái niệm cấp phát nhớ Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ (tiếp) Kiểu giá trị - Value Type: int Num1; Num1=50; Khai báo biến Num1 Khởi tạo 50 Cả Num1 Num2 chứa 50 Num2 int Num2; Num2=Num1; Ver 1.0 Khai báo biến 50 Khởi tạo Num2 Num1 Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ (tiếp) Kiểu giá trị - Value Type (tiếp): Num1 Giá trị gán cho Num1 Giá trị Num2 không ảnh hưởng Num1=60; 60 Num2 50 Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ (tiếp) Kiểu tham chiếu - Reference Type: Car Suzuki= new Car(); Suzuki.Model=10; Đối tượng class Car() Khởi tạo Biến thành viên class Car() Car Mercedes; Mercedes=Suzuki; Ver 1.0 Đối tượng class Car() Khởi tạo Mercedes Suzuki Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ (tiếp) Kiểu tham chiếu - Reference Type (tiếp): Suzuki Tham chiếu tới vị trị nhớ nơi liệu lưu trữ *** 10 Mercedes Tham chiếu tới vị trí nhớ nơi liệu lưu trữ Ver 1.0 *** Slide of 33 Object-Oriented Programming Using C# Sử dụng cấu trúc - Structure Một structure liệu kiểu giá trị Khi muốn biến đơn để lưu trữ liệu liên quan tới đa dạng kiểu liệu, tạo structure Để tạo structure sử dụng từ khóa struct Đoạn mã sau minh họa cách thức khai báo structure tên Bill_Details: struct Bill_Details { public string inv_No; // Tên đơn hàng string ord_Dt; // Ngày mua string custName; // Tên khách hàng Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Sử dụng cấu trúc - Structure (tiếp) public string product; // Tên sản phẩm public double cost; // Giá sản phẩm public double due_Amt; // Tổng số tiền } Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Sử dụng kiểu liệt kê Kiểu liệt kê liệu kiểu giá trị Kiểu liệt kê chứa giá trị khơng thể kế thừa Kiểu liệt kê cho phép gán tên tượng trung cho số nguyên Để tạo kiểu liệt kê, sử dụng từ khóa enum Ver 1.0 Slide 10 of 33 Object-Oriented Programming Using C# Khởi tạo gán giá trị cho mảng (tiếp) Chúng ta gán giá trị cho thành phần mảng thông qua số mảng Ví dụ sau minh họa việc gán gái trị vào mảng: int[] Score = new int[3]; Score[0]=10; Hoặc int[] Score={5,10,15}; Khi chép biến mảng, biến nguồn đích phải thể mảng nhớ Ví dụ sau minh họa việc chép biến mảng: int[] Source = new int[5] {0, 1, 2, 3, 4}; int[] Target= Source; Ver 1.0 Slide 19 of 33 Object-Oriented Programming Using C# Thao tác với thành phần mảng Khi mảng khởi tạo, truy cập giá trị thành phần mảng thao tác chúng Vòng lặp foreach sử dụng để thao tác với mảng Cú pháp vòng lặp foreach sau: foreach (type identifier in expression) { //Câu lệnh } Ver 1.0 Slide 20 of 33 Object-Oriented Programming Using C# Thao tác với thành phần mảng (tiếp) Ví dụ vịng lặp foreach sau: int[] Numbers = { 4, 3, 2, 1, 0, -1, -2, 9, }; Console.WriteLine("The Contents of an Array is:"); foreach (int K in Numbers) { Console.WriteLine("{0} \t",K); } Ver 1.0 Slide 21 of 33 Object-Oriented Programming Using C# Thao tác với thành phần mảng (tiếp) Trong khai báo phương thức không số lượng tham số truyền vào, sử dụn mảng param Ví dụ minh họa mảng param sau: public int Adding_ArrayElement(params int[] List) { int Total = 0; foreach ( int I in List ) { Total += I; } return Total; } Ver 1.0 Slide 22 of 33 Object-Oriented Programming Using C# Ví dụ: Trừ ma trận sử dụng mảng Vấn đề đặt ra: Đăng, sinh viên trường WRU, theo đuổi lĩnh vực toán học Anh ta làm việc dự án Matrix Subtraction Anh ta cần thực thi công việc sau cho dự án anh ấy: Chấp nhận liệu hai mảng Thực thi việc trừ hai mảng Hiển thị giá trị trừ Giúp Đăng làm công việc sử dụng Visual Studio IDE Ver 1.0 Slide 23 of 33 Object-Oriented Programming Using C# Ví dụ: Trừ ma trận sử dụng mảng (tiếp) Giải pháp: Để giải vấn đề đưa ra, Đăng cần thực thi công việc sau: Tạo console-based application cho dự án Matrix Subtraction Build and execute ứng dụng Ver 1.0 Slide 24 of 33 Object-Oriented Programming Using C# Mảng nhiều chiều Giá trị hạng mảng biết tới kích thước mảng Mảng mảng chiều hay mảng nhiều chiều Mảng chiều lưu trữ liệu môt hàng Mảng nhiều chiều lưu trữ liệu sử dụng kích thước khác Hình sau minh họa giá trị lưu trữ mảng đơn mảng nhiều chiều int [] Num; int[,] Num; 0 Ver 1.0 Slide 25 of 33 Object-Oriented Programming Using C# Mảng nhiều chiều (tiếp) class Array lớp cho tất ảng C# class Array cung cấp thuộc tính phương thức để làm việc với mảng Thuộc tính: Bảng sau giải thích số thuộc tính thường sử dụng class Array Ver 1.0 Thuộc tính Giải thích Length Trả tổng số phần tử mảng Rank Trả hạng (số chiều) mảng IsFixedSize Trả giá trị biểu thị mảng cố định kích thước khơng IsReadOnly Trả giá trị biểu thị mảng đọc không Slide 26 of 33 Object-Oriented Programming Using C# Mảng nhiều chiều (tiếp) Phương thức: Bảng sau giải thích số phương thức hay sử dụng class Array Ver 1.0 Phương thức Giải thích Sort Thực thi xếp thành phần mảng Clear Xóa bỏ tất phần tử mảng thiết lập giá trị mảng GetLength Trả số lượng phần tử mảng GetValue Trả giá trị phần tử cụ thể mảng IndexOf Trả số giá trị tìm thấy mảng chiều mọt phần mảng Slide 27 of 33 Object-Oriented Programming Using C# Sử dụng tập hợp Mảng sử dụng để tập hợp phần tử có kiểu liệu .NET Framework cung cấp vài lớp tập hợp thành phần ttheo cách đặc biệt Các lớp lớp Collection, khai báo không gian tên System.Collections không gian Ver 1.0 Slide 28 of 33 Object-Oriented Programming Using C# Sử dụng tập hợp (tiếp) Các lớp tập hợp chấp nhận, lưu trữ, trả thành phần phần tử Các kiểu phần tử lớp tập hợp đối tượng Đối tượng kiểu tham chiếu Hình sau minh họa lưu trữ giá trị mảng kiểu int: HEAP STACK Array @ int [] array= {9, 7, 3, 2}; Ver 1.0 Slide 29 of 33 Object-Oriented Programming Using C# Sử dụng tập hợp (tiếp) Hoạt động tự động chuyển đổi kiểu giá trị sang kiểu tham chiếu Hình sau minh họa kỹ thuật boxing HEAP STACK Array @ @ @ @ @ int [] array= {9, 7, 3, 2}; Ver 1.0 Slide 30 of 33 Object-Oriented Programming Using C# Sử dụng tập hợp (tiếp) Khi muốn truy cập thành phần mảng thông qua số nó, sử dụng lớp ArrayList Bảng sau miêu tả đa dạng phương thức lớp ArrayList Ver 1.0 Phương thức Sử dung Add Bổ sung đối tượng vào cuối ArrayList Remove Loại bỏ phần tử ví trí gặp đối tượng định từ ArrayList Clear Loại bỏ tất phần tử từ ArrayList Insert Chèn phần tử vào ArrayList vị trí cụ thể TrimToSize Thiết lập dung lượng thực số thành phần ArrayList Sort Sắp xếp thành phần ArrayList Reverse Đảo ngược phần tử ArrayList Slide 31 of 33 Object-Oriented Programming Using C# Tổng kết Trong mục này, học được: Bộ nhớ phân bố cho biến có hai kiểu: giá trị tham chiếu Kiểu giá trị kiểu đơn giản C# Các biến kiểu giá trị chứa trực tiếp liệu biến Kiểu tham chiếu chứa tham chiếu tới liệu Dữ liệu lưu trữ vùng nhớ khác Biến kiểu giá trị lưu trữ giá trị stack Biến kiểu tham chiếu lưu trữ tham chiếu tới đối tượng heap Để lưu giữ liệu liên quan dạng kiểu liệu biến đơn, structures sử dụng C# cung cấp đặc tính enum để tạo kiểu liệu người dùng định nghĩa với số mọt giá trị số để truy cập chúng Một mảng tập hợp giá trị giá trị có kiểu Ver 1.0 Slide 32 of 33 Object-Oriented Programming Using C# Tổng kết (tiếp) Câu lệnh foreach làm sang tỏ q trình vịng lặp thông thường loại bỏ cần thiết cho để kiểm tra kích thước mảng Mảng Param sử dụng phương thức với danh sách tham số số tham số trước .NET Framework cung cấp vài class tập hơp thành phần theo cách đặc biệt Đó lớp Collection nằm khơng gian tên System ArrayList hữu dụng muốn thao tác với giá trị mảng dễ dàng Ver 1.0 Slide 33 of 33 ... Ver 1.0 Slide 20 of 33 Object-Oriented Programming Using C# Thao tác với thành phần mảng (tiếp) Ví dụ vòng lặp foreach sau: int[] Numbers = { 4, 3, 2, 1, 0, -1 , -2 , 9, }; Console.WriteLine("The... Ver 1.0 Khai báo biến 50 Khởi tạo Num2 Num1 Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ (tiếp) Kiểu giá trị - Value Type (tiếp): Num1 Giá trị gán cho Num1 Giá trị Num2... không ảnh hưởng Num1=60; 60 Num2 50 Ver 1.0 Slide of 33 Object-Oriented Programming Using C# Miêu tả cấp phát nhớ (tiếp) Kiểu tham chiếu - Reference Type: Car Suzuki= new Car(); Suzuki.Model=10;

Ngày đăng: 11/05/2021, 00:13

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan