Thứ Bảy, 5 tháng 4, 2014

Một số kĩ thuật cơ bản khi làm bài toán ma trận


Kĩ thuật đặt cờ hiệu.
Viết hàm kiểm tra xem trong ma trận các số nguyên có tồn tại các số nguyên lẻ lớn hơn 100 không?

Giải:
int KiemTraLe (MATRAN a, int d, int c)
{
          int flag = 0;                               //tra ve 1 neu co nguoc lai tra ve 0
          for (int i = 0; i < d; i ++ )
               for (int j = 0; j < c; j++)
                    if ( a[i][j] % 2 != 0 && a[i][j] > 100 )
                         {
                               flag = 1;
                               break;
                          }
          return flag;
}

• Kĩ thuật đặt lính canh.
Viết hàm tìm phần tử nhỏ nhất trong ma trận.

Giải:
int Min (MATRAN a, int d, int c )
{
        int min = a[0][0];
        for ( int i = 0 ; i < d ; i ++ )
             for (int j = 0 ; j < c ; j ++)
                   if ( a[i][j] < min )
                        min = a[i][j];
                   return min;
}

Phương pháp tính tổng.
Viết hàm tính tổng các phần tử trong ma trận.

Giải:
long Tong (MATRAN a, int d, int c)
{
       long tong = 0;
       for ( int i = 0; i < d; i ++ )
             for ( int j = 0; j < c; j ++)
                    tong + = a[i][j];
                    return tong;
}

• Phương pháp sắp xếp.
Viết hàm sắp xếp ma trận tăng dần từ trên xuống dưới và từ trái sang phải không dùng mảng phụ.

Giải:
void SapTang(MATRAN a, int d, int c)
{
       for (int i = 0; i <= d*c-2; i ++)
            for (int j = 0; j <= d*c-1; j ++)
                 if (a[i/c][i%c] < a[j/c][j%c])
                    {
                           int tmp = a[i/c][i%c] ;
                           a[i/c][i%c] = a[j/c][j%c] ;
                           a[j/c][j%c] = tmp ;
                    }
}

Phương pháp đếm
Viết hàm đếm các phần tử chẵn trong ma trận.

Giải:
int DemChan (MATRAN a, int d, int c)
{
     int dem = 0;
     for ( int i = 0 ; i < d ; i ++)
         for ( int j = 0 ; j < c ; j ++)
               if ( a[i][j] % 2 = = 0 )
                    dem ++;
                    return dem;
}

0 nhận xét:

Đăng nhận xét