1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 5: Mảng - Ngoại lệ

54 398 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 561,5 KB

Nội dung

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 5 Mảng- Ngọai Lệ Nội dung Khai báo mảng 1 chiều Mảng nhiều chiều Mảng răng cưa Mảng • Ưu điểm - Tổ chức quản lý tốt - Cù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ảng Khai báo mảng 1 chiều <kiểu dữ liệu> [ ] <tên mảng> ; 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) Khởi tạo mảng Nhắc lại -Có 2 trường hợp khai báo biến +Khai báo trong phương thức +Khai báo bên ngòai phương thức (nhưng nằm trong 1 lớp) -Trong C# : khai báo và khởi tạo biến ???? -Cho phép sử dụng giá trị biểu thức để mô tả kích thước mảng static int M=10; int [] xxx= new int [2*M]; Khai báo bên trong 1 ph/thức Cú pháp khởi tạo <tên mảng> = new <tên kiểu dữ liệu>[sốpt]; Có thể kết hợp khai báo lẫn khởi tạo Ví dụ float [ ] f_array = new float[10]; int [] i = new int[]{2,4,6,8}; Khai báo riêng và sẽ khởi tạo trước khi sử dụng sring[] list; ……………… list = new string[3]; Khai báo bên ngòai ph.thức Do khai báo bên ngòai ph/thức nhưng nằm bên trong 1 lớp  xem như thành phần 1 lớp class ABC { string [ ] ds ; …………. } Do vậy Khai báo bên ngòai và việc khởi tạo có thể trực tiếp hay thực hiện trong 1 phương thức nào đó Ví dụ public class Class1 { int[] x_arr; float[] fx = new float[3] {2.3F, 56.2F, 6.78F } ; public Class1() { float [] f_arr= new float[10]; int [] i_arr = new int[]{2,4,6,8}; string[] list; list = new string[3]; x_arr = new int[10]; for (int i=0;i<x_arr.Length;i++) x_arr[i]=i*4; } } Xử lý mảng Thường sử dụng vòng lặp để xứ lý mảng do while while … for và foreach Bài tập Cho khai báo sau const int N=100; int [ ] array = new int [N]; …………………. Yêu cầu : 1- In ra các phần tử trong mảng array 2- In ra các phần tử ở vị trí chẵn trong mảng array 3- Có bao nhiêu phần tử trong mảng array có giá trị lớn hơn hay bằng X (X là 1 số kiểu int) Mảng nhiều chiều Cho phép tạo mảng nhiều chiều Cú pháp <kiểu dữ liệu> [ , … ] <tên mảng> ; Ví dụ float [ , ] this year; int [ , , ] vacumm; [...]... 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 Lớp Array, ArrayList Làm quen với cấu trúcdữ liệu - Lớp trừu tượng Array - Lớp ArrayList : mô phỏng danh sách đặc và dsliên kết - Lớp Queue : mô phỏng hàng đợi - Lớp Stack : mô phỏng ngăn xếp (chồng) - Lớp Hashtable... trong mảng thisyear thỏa điều kiện chứa 1 số lẻ ??? (Dùng foreach) Tam giác Pascal 1 1 1 1 1 1 2 3 4 5 1 3 6 10 1 4 10 1 5 1 1- Viết chương trình in ra hàng thứ N của tgiác Pascal Mảng răng cưa (jagged array) Mảng răng cưa : là mảng mà số phần tử trong mỗi chiều có thể khác nhau Ví dụ khai báo mảng răng cưa có 2 chiều [ ] [ ] ; Nhận xét :  là 1 mảng, mỗi phần tử trong mảng. ..Yêu cầu - Thử khai báo và khởi tạo mảng thisyear chứa số thực có chiều thứ nhất là 12 phần tử, chiều thứ 2 có 31 phần tử - Thử khai báo mảng soluong chứa các số thực, mảng có 3 chiều, chiều thứ nhất có 4 phần tử, chiều thứ 2 có 10 phần tử và chiều thứ 3 có 6 phần tử Yêu cầu - Đếm và in ra số phần tử trong mảng soluong chứa giá trị là 1 số chẵn ??? (Dùng for, while hay do ) - In ra vị trí và... lại là 1 mảng khác 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ử Yêu cầu : Thứ khai báo và khởi tạo int [ ] [ ] list ; ……… list = new int[ 2][ ] ; list[0] = new int [2] ; list [1] = new int [5] ; Yêu cầu Thực hiện khai báo,khởi tạo và gán dữ liệu là các số nguyên theo như hình vẽ vào các phần tử trong mảng (tên mảng là... "integer array:" ); PrintValues( myIntArray ); Console.Write( "Object array: " );PrintValues( myObjArray ); Array.Copy( myObjArray, myObjArray.GetUpperBound(0) 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2 ); Console.WriteLine( "\nAfter copying the last two elements of the Object array to the integer array," ); Console.Write( "integer array:" ); PrintValues( myIntArray ); Console.Write( "Object array:... void PrintValues( int[] myArr ) { foreach ( int i in myArr ) Console.Write( "\t{0}", i ); Console.WriteLine(); } Ví dụ: SamplesArray2.cs public static void Main() { // Creates and initializes a new three-dimensional Array of type Int32 Array myArr = Array.CreateInstance( typeof(Int32), 2, 3, 4 ); for (int i=myArr.GetLowerBound(0);i

Ngày đăng: 09/05/2014, 14:34

TỪ KHÓA LIÊN QUAN