Lập trình C# - Bài 4: Một số cấu trúc dữ liệu khác

- Sử dụng thuộc tính Length của mảng thay vì phải nắm số phần tử trong mảng - Cấu trúc lặp foreach hữu hiệu hơn là dùng for !!! - Lấy số chiều 1 mảng : sử dụng thuộc tính rank

ppt34 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 388 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Lập trình C# - Bài 4: Một số cấu trúc dữ liệu khác, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BUỔI 4 : Một số cấu trúc dữ liệu khác *Khai báo và cấp phát vùng nhớ các biến*Lưu ÝTrong Pascal,C hay C++ : việc khai báo đồng nghĩa với việc cấp phát vùng nhớ cho biến để lưu trữ dữ liệuVí dụ Var i : integer ; r : Real;ir*Lưu ÝCũng tương tự trong C/C++, ngoài ra khi khai báo thì tự động gán giá trị ngầm định cho từng kiểu dữ liệuVí dụ int i ; char c;0\0ic*Lưu ÝTrong C# thì khai báo và cấp phát vùng nhớ là 2 việc khác nhau !!!Ví dụ (trong C#) int i ; // chỉ khai báo biến float f = 1.34f; // khai báo và cấp phát //vùng nhớ*Lưu ÝCó thể “tưởng tượng” như sau :int i, j=12, k;float f=12.5f, g,h=17.6f;1212.517.6jfh i k g*using System;class Test{ public static void Main() {int i, j=12, k; float f=12.5f, g,h=17.6f; }}*using System;class Test{public static void Main(){int i, j=12;Console.WriteLine(" i = {0} , j = {1} ",i,j);}}*Nhận xétThường khai báo trước kiểu dữ liệu của biến để tránh sai sót khi thực hiện các phép tính toán về sauNên kết hợp khai báo và khởi tạo biến cùng lúc*using System;class Test{public static void Main(){int i, j=12;i=Math.Sqrt(12);Console.WriteLine(" i = {0} , j = {1} ",i,j);}}*Sử DụngMảng Trong C#*Ưu điểm của mảngTổ chức quản lý tốtCùng 1 kiểu (!!!)Thể hiện cấu trúc dữ liệu Danh sách đặc : duyệt, thêm, chèn, xóa tìm, sắp xếp nối ghép danh sách,trộn  Nên sử dụng các CTDL do .NET cung cấp*Cú pháp khai báo mảngKhai báo mảng 1 chiều [ ] ;Lưu ý - Cú pháp khác so với C/C++- Chỉ là khai báo, chứ chưa cấp phát vùng nhớ (chưa khởi tạo)*Khai báo và khởi tạo mảngCú pháp khai báo và khởi tạo = new [sốpt];Có thể kết hợp khai báo lẫn khởi tạoVí dụ float [ ] f_array = new float[10]; int [ ] i = new int[]{2,4,6,8};Khai báo riêng và phải khởi tạo trước khi sử dụngstring[] list;list = new string[3];*Ví Dụpublic class Class1{ //tạm thời chưa khaí báo biến ỡ đây!!static public void Main () { float [ ] f_arr= new float[10]; int [ ] i_arr = new int[ ]{2,4,6,8}; string[ ] list; list = new string[3]; for (int i=0;i in ) ;using System;class Vidu2_4{static public void Main(){float [] num = new float[] {1,2,3,4,5,6};string[] name= new string[]{"Tam","Vu","Hung","Dung"};foreach (float f in num ) Console.WriteLine(f);foreach (string s in name ) Console.WriteLine(s);}}*Mảng nhiều chiềuCho phép tạo mảng nhiều chiềuDạng bảng chữ nhậtCú pháp [ , ..] ;Ví dụ float [ , ] this year; //2 chiều int [ , , ] vacumm; // 3 chiều*Ví dụ khai báo và cấp phátusing System;class Vidu2_6{static public void Main(){int[,] month = new int[2,4];float [, ,] room = new float [4,5,10];string[,] name; }}*Ví dụusing System;class Vidu2_7{static public void Main() { int r=3, c=2; int[,] month ; float [,,] room; month = new int [r,c]; room = new float [r,r,r]; for (int i=0;i [ ] [ ] ;Nhận xét :  là 1 mảng, mỗi phần tử trong mảng lại là 1 mảng khác*Ví dụMảng có 2 chiều, chiều thứ nhất có 2 phần tửPhần tử thứ 1 chiều thứ nhất có 2 phần tửPhần tử thứ 2 chiều thứ nhất có 5 phần tử*Khai báo (Ví dụ)int [ ] [ ] list ; //khai báolist = new int[ 2][ ] ;list[0] = new int [2] ;list [1] = new int [5] ;*Một số lưu ý khi sử dụng mảng- Sử dụng thuộc tính Length của mảng thay vì phải nắm số phần tử trong mảng- Cấu trúc lặp foreach hữu hiệu hơn là dùng for !!!- Lấy số chiều 1 mảng : sử dụng thuộc tính rank

Các file đính kèm theo tài liệu này:

  • pptltcs_bai4_hcktdh_6511.ppt