<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1></div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
*
<b>Ma trận</b>
Cách 1: Con trỏ hằng
<b>< KDL> < Tên mảng >[< Số dòng tối đa>][<Số cột tối đa>];</b>
*Ví dụ:
<i><b>int A[10][10]; //Khai báo ma trận kiểu int gồm 10 dòng, 10 cột</b></i>
<i><b>float b[10][10];//Khai báo ma trận kiểu float gồm 10 dòng 10 cột</b></i>
Cách 2 : Con trỏ
<b>< Kiểu dữ liệu > **<Tên mảng>;</b>
*Ví dụ :
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
*
<b>Định nghĩa kiểu dữ liệu</b>
Để đơn giản trong việc khai báo ma trận:
<i><b>#define MAX 100</b></i>
<i><b>typedef <kiểu dữ liệu> matran[MAX][MAX]; </b></i>
<b>Ví dụ: Khai báo ma trận các số nguyên a</b>
<i><b>#define MAX 100</b></i>
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
*
<b>Truy xuất</b>
Để truy xuất các thành phần của mảng hai chiều ta phải dựa
vào chỉ số dòng và chỉ số cột.
Cú pháp: <b>tên_ma_trận[chỉ số dòng][chỉ số cột]</b>
*
<i><b>Ví dụ: int A[3][4] = { {2,3,9,4} , {5,6,7,6} , {2,9,4,7} };</b></i>
Với các khai báo như trên ta có:
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
*
<b>Ma trận vuông </b>
*
Ma trận có số dòng và số cột bằng nhau
*
<i>Đường chéo chính: chỉ số dòng = chỉ số cột</i>
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
*
<b>Các thao tác</b>
*
Nhập/ x́t
*
Tìm kiếm
*
Đếm
*
Tính tổng/ trung bình
*
Sắp xếp dòng/ cợt
*
Xóa dòng/ cột
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
*
<b>Nhập/xuất ma trận số nguyên</b>
<b>Khai báo</b>
#define MAX 100
typedef int matran[MAX][MAX];
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
*
<b>Nhập/xuất ma trận số nguyên</b>
void NhapMT(matran a, int sd, int sc)
{
for(int i=0; i<sd; i++)
{
for(int j=0; j<sc; j++)
{
cout<<"Nhap gt ["<<i<<"]["<<j<<"]: ";
cin>>a[i][j];
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
*
<b>Nhập/xuất ma trận số nguyên</b>
void XuatMT(matran a, int sd, int sc)
{
for(int i=0; i<sd; i++)
{
for(int j=0; j<sc; j++)
{
cout<<a[i][j]<<"\t";
}
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
*
<b>Nhập/xuất ma trận số nguyên</b>
void main()
{
matran a;
int sd, sc;
cout<<"Nhap so dong cua ma tran: ";
cin>>sd;
cout<<"Nhap so cot cua ma tran: ";
cin>>sc;
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
*
<b>Bài tập nhập/xuất</b>
Cho ma trận số nguyên a, viết các hàm:
*
Xuất các phần tử lẻ
*
Xuất các phần tử là số nguyên tố
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
*
<b>Bài tập nhập/xuất</b>
Cho ma trận vuông số nguyên kích thước n, viết các
hàm:
*
Nhập ma trận
*
Xuất ma trận
*
Xuất các phần tử thuộc đường chéo chính
*
Xuất các phần tử thuộc đường chéo phụ
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
*
<b>Bài tập tìm kiếm</b>
Cho ma trận sớ ngun, viết các hàm:
*
Tìm phần tử lớn nhất
*
Tìm vị trí phần tử lớn nhất
*
Tìm vị trí xuất hiện đầu tiên của phần tử có giá
trị x
*
Tìm dòng có tổng lớn nhất
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
*
<b>Bài tập xóa</b>
Cho ma trận sớ ngun, viết các hàm:
*
Xóa dòng có chứa giá trị lớn nhất
</div>
<!--links-->