Bài giảng Phương pháp lập trình - Chương 4: Mảng (Array) - Võ Quang Hoàng Khang

pdf 19 trang phuongnguyen 2601
Bạn đang xem tài liệu "Bài giảng Phương pháp lập trình - Chương 4: Mảng (Array) - Võ Quang Hoàng Khang", để 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:

  • pdfbai_giang_phuong_phap_lap_trinh_chuong_4_mang_array_vo_quang.pdf

Nội dung text: Bài giảng Phương pháp lập trình - Chương 4: Mảng (Array) - Võ Quang Hoàng Khang

  1. CHƯƠNG 4 MẢNG (Array)
  2. 1. Khái ni ệm y Mảng là mộttậphợp các biến có cùng kiểu dữ liệunằmliêntiếp nhau trong bộ nhớ và được tham chiếubởimột tên chung chính là tên mảng. y Mỗiphầntử củamảng được tham chiếuthông qua chỉ mục (index).
  3. 1. Khái ni ệm y Nếumảng có n phầntử thì phầntửđầutiên có chỉ mụclà0 và phầntử cuốicóchỉ mụclà n-1. y Để tham chiếu đếnmộtphầntử ta dùng tên mảng và chỉ mụccủaphầntửđược đặttrong cặp dấu []. Ví dụ:a[0] y Số phần tử trong mảng được gọi là kích thước củamảng. luôn cốđịnh,phải được xác định trước và không đổi trong suốt quá trình thực hiệnchương trình.
  4. 2. M ảng mộttchi chiều Khai báo một mảng một chiều y Cú pháp: type arrayName[elements]; −type: kiểu dữ liệu của mỗi phần tử mảng. −elements: số phần tử có trong mảng −arrayName: tên mảng ● Ví dụ: int a[[]5] a a[0] a[1] a[2] a[3] a[4]
  5. 2. M ảng mộttchi chiều y Mảng phải được khai báo tường minh y Kích thước (tính bằng byte) của mảng được tính theo công thức: Total_size = sizeof(type) * elements Ví dụ: int num[100]; Mảng num có kích thước là: 2bytes * 100 = 200bytes (giả sử int chiếm 2 bytes)
  6. 2. M ảng mộttchi chiều y Mổi phần tử mảng là một biến thông thường. Ví dụ: int num[3]; num[0] = 2; //gán 2 cho phần tử num[0] num[[]1] = num[ []0] + 3 //num[[]1] có g iá trị 5 num[2] = num[0] + num[1]; //num[2] có giá trị 7 cout << num[[];//1]; //In ra giá trị 5
  7. 2. M ảng mộttchi chiều Khai báo và khởi tạo mảng một chiều y Cú pháp: type arrayName[]= {value1, value2, , valuen}; y Lưu ý: − Không kh ai bá o kí ch th ước mảng. − Số lượng phầntử trong mảng là số các giá trịđượccung cấptrong cặpdấungoặc {}, được phân cách nhau bởidấuphẩy.
  8. 2. M ảng mộttchi chiều y Ví dụ: int soChan[] = {2,4,6,8,10}; Mảng soChan có 5 phần tử lần lượt là: soChan[0] có giá trị là 2 soChan[[]1] có g iá trị là 4 soChan[4] có giá tr ị là 10
  9. 2. M ảng mộttchi chiều Ví dụ:Tạomộtmảng nguyên a có N phầntử.Mỗiphầntử có giá trị là chỉ mục của nó. In mảng ra màn hình. #include #include #define N 10 void main() { int a[N]; for(int i=0 ; i < N ; i++) a[i] = i ; cout"It<< "In mang:\n"; for(int i=0 ; i < N ; i++) cout << “a[“ << i <<”] = ” << a[i] << endl; }
  10. Ví dụ : Nhập vào một mảng số nguyên sau đó sắp xếptheothp theo thứ tự tăng dần #include #define n 5 main ( ) { int a [ n ] ; int i , j, t ; for ( i = 0 ; i >a[i]; cout a [j ] ) { t = a [ i ] ; a [ i ] = a [ j ]; a [j ] = t ; } for ( i = 0 ; i < n ; i ++ )//xuất mảng cout<<setw(3)<<a[i]; getch ( ); }
  11. Ví dụ: Đổi một số nguyên dương thập phân thành số nhị phân void main() { n=46 2 2 int i,j=0, n, np[20]; n%2 0 23 cout >n; 11 2 1 2 do 1 5 { 1 2 2 2 np[j]= n%2; 0 1 j++; 1 0 n = n/2; }while(n>0); cout 0 ; i ) np[j] cout<<setw(3)<<np[i]; getch(); }
  12. Sử dụng hàm tạoso số ngẫu nhiên y C++ cung cấp hàm random để tạo ra các số ngẫu nhiên. y Cú pháp: int random(int n) y Kết quả của hàm là tạo ra các số nguyên ngẫu nhiên từ 0 đến n-1 y Khi sử dụng random ta phải gọi randomize để khởi tạo chế độ tạo số ngẫu nhiên. y Để sử dụng các hàm trên thì trong chương trìhình ph ảiikhibá khai báo th ư viện
  13. Ví dụ: tạo mảnggg ngẫu nhiên và in ra màn hình. #include #include #include #include void main() { randomize(); cout <<"Tao mang ngẫu nhiên :\n"; for (int i=0; i<n; i++) a[i]=random(100); for(int j=0; j<n; j++) cout <<setw(3)<<a[j]; }
  14. 3. M ảng nhiềuchiu chiều y C/C++ hổ trợ mảng nhiềuchiều. Dạng đơn giảnnhấtcủamảng nhiềuchiềulàmảng hai chiều. y Mảng hai chiềuthựcchất là mảng củanhững mảng mộtchiều. Ta có thể xem mảng hai chiều là một ma trận gồm các hàng và các cột
  15. 3. M ảng nhiềuchiu chiều Khai báo mảng hai chiều type arrayName[rows][columns]; − rows:s: số hàng − columns: số cột Ví d ụ: Khai báo m ảng s ố nguyên 3 hàng 4 c ột int a[3][4]
  16. 3. M ảng nhiềuchiu chiều y Khai báo và khởi tạo mảng hai chiều y Cú pháp: type arrayName[][columns] = { {value1,value2, ,valueN}, {value1,value2, ,valueN}, { }, {value1,value2, ,valueN}};
  17. 3. M ảng nhiềuchiu chiều y Số phầntử củamỗihàngphảibằng số cột y Số hàng củakhaibáomảng hai chiều để trống. y Số hàng củamảng đượcxácđịnh dựavàosố hàng trong phần khởi tạo. Giá trị các phần tử trong mỗihàngđược đặttrongcặp {}, các hàng phân cách nhau bằng một dấu phẩy. y Ví dụ: int a[][4] = {{1 {{1234}{5678}{9101112}};,2,3,4}, {5,6,7,8},{9,10,11,12}};
  18. #include #include void main() { int a[4][3]; srand(time(NULL)) ; for(int i=0 ; i<4 ; i++) for(int j=0 ; j<3 ; j++) a[i][j] = rand()%10; for(int ii0=0 ; i<4 ; i++) { for(int j=0 ; j<3 ; j++) cout << a[i][j] << " "; cout << endl; } }
  19. #include #include void main() { int a[][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}, {{,,,}};13,14,15,16}}; int sum=0; for(int ii0=0;i ; i4<4;i ; i)++) for(int j=0 ; j<4 ; j++) if(i== j) sum += a[i][j]; cout << “Tong duong cheo chinh la: ” << sum; }