Yêu cầu mọi thông tin sao chép từ blog này phải được ghi rõ đầy đủ: Thông tin được sao chép từ "http://www.dangngochoangthanh.blogspot.com".

Cool wallpaper http://www.fancymessage.com

EMOJI KEYBOARD PRO http://emojiselector.com

THƯ VIỆN HÌNH ĐỘNG FLASH ANIMATION: http://flashanimationlibrary.blogspot.ru/

Hệ thống học trực tuyến đang được phát triển và sẽ đưa vào sử dụng vào cuối năm nay. Hãy xem qua một số demo của Học Trực Tuyến.


HỌC TRỰC TUYẾN ĐÃ CUNG CẤP PHIÊN BẢN TRUY CẬP QUA MOBILE http://dangngochoangthanh.blogspot.com/?m=1

XEM KÊNH HỌC TRỰC TUYẾN TRÊN YOUTUBE



Search on This Blog

Saturday, September 11, 2010

Mảng giả nhiều chiều

Mảng giả nhiều chiều
Nếu bạn khai báo mảng như sau
//Khai báo ma trận int matrix[4*4];//Ma trận có 16 phần tử
thì mảng này gọi là mảng giả nhiều chiều (giả hai chiều). Số phần tử của mảng giả hai chiều này bằng số phần tử của mảng hai chiều. Thực chất của mảng giả nhiều chiều là mảng một chiều. Các thao tác xử lý với mảng giả nhiều chiều được thực thi như mảng một chiều.
Bạn cũng lưu ý rằng, việc chuyển đổi chỉ số qua lại giữa mảng nhiều chiều và mảng giả nhiều chiều là hoàn toàn có thể thực hiện được. Ví dụ sau đây sẽ in ra giá trị của các phần tử theo dạng ma trận bằng cách sử dụng khai báo mảng hai chiều và mảng giả hai chiều.

Mảng hai chiều Mảng giả hai chiều
int matrix[4][4]; //Nhập mảng
for(int i=0; i<4; i++)
for(int j=0;j<4;j++)
matrix[i][j]=i+j;
//In giá trị mảng
for(int i=0; i<4; i++){
for(int j=0;j<4;j++)
cout<<<” “;
cout<
}
int matrix[4*4]; //Nhập mảng
for(int i=0; i<4; i++)
for(int j=0;j<4;j++)
matrix[i*4+j]=i+j;
//In giá trị mảng
for(int i=0;i<4;i++){
for(int j=0; j<4;j++)
cout<<<” “;
cout<
}
Mảng là tham số hình thức: khi sử dụng mảng làm tham số hình thức, bạn cần lưu ý các điểm sau đây:
  • Trong trường hợp mảng một chiều, ta có thể không cần khai báo kích thước của mảng (ví dụ type tên_hàm(int args[])).
  • Trong trường hợp mảng nhiều chiều, thì chỉ có số phần tử trong chiều thứ nhất là có thể không cần khai báo, còn các chiều còn lại, nhất thiết phải khai báo (ví dụ type tên_hàm(int args[][10][10])).
  • Mảng được truyền theo tham biến.
Bài tập 8.
  1. Xây dựng các hàm sau đây
    1. Nhập vào một mảng hai chiều các số nguyên.
    2. Thực hiện các phép cộng, nhân hai mảng này.
    3. Xác định phần tử lớn nhất, nhỏ nhất trong mỗi dòng.
    4. Xây dựng mới một ma trận từ ma trận cũ, trong đó các phần tử của ma trận cũ này có giá trị chẵn sẽ bằng chính nó cộng với phần tử lớn nhất của dòng đó. Các phần tử lẻ sẽ bằng chính nó trừ cho phần tử nhỏ nhất của dòng đó. Tương ứng với chỉ số đó, ta sẽ xây dựng nên ma trận mới từ ma trận cũ đã cho.
Ví dụ:
1 2
3 2
Phần tử lớn nhất của dòng 1: 2
Phần tử lớn nhất của dòng 2: 3
Phần tử nhỏ nhất của dòng 1: 1
Phần tử nhỏ nhất của dòng 2: 2
Phần tử 1×1 là lẻ, nên nó bằng 1-1=0, và đây chính là phần tử 1×1 trong ma trận mới. Tương tự cho các phần tử còn lại. Ma trận mới thu được là
0 4
1 5
  1. Cho mảng một chiều, viết chương trình hoán đổi vòng các giá trị của mảng đó (phần tử đầu trở thành phần tử cuối, …). Ví dụ {1, 2, 3}, sau khi hoán đổi, ta thu được {2, 3, 1}
  2. Cho ma trận, hãy sử dụng phương pháp khử Gauss để đưa ma trận này về dạng tam giác trên.

No comments:

Post a Comment