Lập trình tìm ma trận tam giác trên là gì năm 2024

Viết chương trình C# để nhập một ma trận, sau đó in ma trận tam giác trên của ma trận đã cho trên màn hình. Ma trận tam giác trên này sẽ có các phần tử nằm dưới đường chéo chính đều bằng 0, các phần tử còn lại bằng phần tử của ma trận ban đầu.

Các bài tập về ma trận là các bài tập đặc trưng về cách sử dụng mảng hai chiều trong C#. Bài tập in ma trận tam giác trên này là bài tập minh họa cho bạn cách khai báo, khởi tạo, truy cập các phần tử của mảng hai chiều trong C#. Từ bài tập này, bạn cũng có thể suy ra cách làm cho bài tập về kiểm tra ma trận tam giác trên và ma trận tam giác dưới dựa vào mối quan hệ về hàng và cột (bạn theo dõi lời giải phần thiết lập các phần tử nằm dưới đường chéo chính bằng 0).

Chương trình C#

Dưới đây là chương trình C# để giải bài tập in ma trận tam giác trên trong C#:

using System; namespace VietJackCsharp {

class TestCsharp
{
    public static void Main()
    {
        int i, j, n;
        int[,] arr1 = new int[10, 10];
        Console.Write("\nIn ma tran tam giac tren trong C#:\n");
        Console.Write("-----------------------------------\n");
        Console.Write("Nhap kich co cua ma tran vuong: ");
        n = Convert.ToInt32(Console.ReadLine());
        Console.Write("Nhap cac phan tu vao trong ma tran:\n");
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
            {
                Console.Write("Phan tu - [{0}],[{1}]: ", i, j);
                arr1[i, j] = Convert.ToInt32(Console.ReadLine());
            }
        }
        Console.Write("In ma tran ban dau:\n");
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
                Console.Write("{0}  ", arr1[i, j]);
            Console.Write("\n");
        }
        Console.Write("\nThiet lap cac phan tu nam duoi duong cheo chinh bang 0.\n");
        for (i = 0; i < n; i++)
        {
            Console.Write("\n");
            for (j = 0; j < n; j++)
                if (i <= j)
                    Console.Write("{0}  ", arr1[i, j]);
                else
                    Console.Write("{0}  ", 0);
        }
        Console.Write("\n\n");     
        Console.ReadKey();
    } 
}
}

Quảng cáo

Lập trình tìm ma trận tam giác trên là gì năm 2024

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Kết quả chương trình C#

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Lập trình tìm ma trận tam giác trên là gì năm 2024

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Lập trình tìm ma trận tam giác trên là gì năm 2024

Lập trình tìm ma trận tam giác trên là gì năm 2024

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

\(A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ 0& a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & a_{m,n} \end{pmatrix}\)

Mảng 2 chiều thường được sử dụng để lưu trữ dữ liệu cho các bài toán liên quan tới ma trận, trong bài viết này mình nhắc lại những khái niệm quan trọng với ma trận

NỘI DUNG :

  • Ma Trận
  • Đường Chéo Chính, Phụ
  • Tam Giác Trên, Dưới
  • Ma Trận Chuyển Vị
  • Video Tutorial

1. Ma Trận

Ma trận là một khái niệm quan trọng trong môn học đại số tuyến tính nhưng nếu bạn chưa học đại số tuyến tính thì cũng không có vấn đề gì khó khăn khi tiếp cận với ma trận.

Ma trận là một bảng số gồm các hàng và các cột, ví dụ ma trận A có n hàng và m cột thì sẽ được ký hiệu : Anxm

Do đó khi cần lưu trữ ma trận trong lập trình C++ thì bạn chỉ cần sử dụng một mảng 2 chiều

Ma trận có số hàng và số cột bằng nhau gọi là ma trận vuông.

ma trận


2. Đường Chéo Chính, Phụ

Trong ma trận vuông thì đường chéo chính chứa những phần tử có chỉ số hàng và cột bằng nhau

đường chéo chính

Ví dụ 1 : Liệt kê các số nguyên tố trên đường chéo chính

include "iostream"

include "math.h"

include "algorithm"

using namespace std; bool nt(int n){

for(int i = 2; i <= sqrt(n); i++){  
    if(n % i == 0) return false;  
}  
return n > 1;  
} int main(){
int n = 4;   
int a[4][4] = {  
    {3, 1, 0, 7},  
    {2, 5, 10, 3},  
    {3, 7, 4, 1},  
    {10, 2, 0, 11}  
};  
cout << "Cac so nguyen to tren duong cheo chinh : ";  
for(int i = 0; i < n; i++){  
    if(nt(a[i][i])){  
        cout << a[i][i] << " ";  
    }  
}  
return 0;  
}

Output :

Cac so nguyen to tren duong cheo chinh : 3 5 11

Trong ma trận vuông thì đường chéo phụ chứa các phần tử như hình dưới

đường chéo phụ

Ví dụ 2 : Liệt kê các số nguyên tố trên đường chéo phụ

include "iostream"

include "math.h"

include "algorithm"

using namespace std; bool nt(int n){

for(int i = 2; i <= sqrt(n); i++){  
    if(n % i == 0) return false;  
}  
return n > 1;  
} int main(){
int n = 4;   
int a[4][4] = {  
    {3, 1, 0, 7},  
    {2, 5, 10, 3},  
    {3, 17, 4, 1},  
    {10, 2, 0, 11}  
};  
cout << "Cac so nguyen to tren duong cheo phu : ";  
for(int i = 0; i < n; i++){  
    if(nt(a[i][n - i - 1])){  
        cout << a[i][n - i - 1] << " ";  
    }  
}  
return 0;  
}

Output :

Cac so nguyen to tren duong cheo phu : 7 17


3. Tam Giác Trên, Dưới

Tam giác dưới chứa các phần tử từ đường chéo chính đổ xuống, các phần tử màu vàng trong hình dưới

tam giác dưới

Ví dụ 1 : Tính tổng các phần tử trong tam giác dưới

include "iostream"

include "math.h"

include "algorithm"

using namespace std; int main(){

int n = 4;   
int a[4][4] = {  
    {3, 1, 0, 7},  
    {2, 5, 10, 3},  
    {3, 17, 4, 1},  
    {10, 2, 0, 11}  
};  
int tong = 0;  
for(int i = 0; i < n; i++){  
    for(int j = 0; j <= i; j++){  
        tong += a[i][j];  
    }  
}  
cout << "Tong cac so trong tam giac duoi : " << tong << endl;  
return 0;  
}

Output :

Tong cac so trong tam giac duoi : 57

Tam giác trên chứa các phần tử từ đường chéo chính đổ lên, các phần tử màu vàng trong hình dưới

tam giác trên

Ví dụ 2 : Tính tổng các phần tử trong tam giác trên

include "iostream"

include "math.h"

include "algorithm"

using namespace std; int main(){

int n = 4;   
int a[4][4] = {  
    {3, 1, 0, 7},  
    {2, 5, 10, 3},  
    {3, 17, 4, 1},  
    {10, 2, 0, 11}  
};  
int tong = 0;  
for(int i = 0; i < n; i++){  
    for(int j = i; j < n; j++){  
        tong += a[i][j];  
    }  
}  
cout << "Tong cac so trong tam giac tren : " << tong << endl;  
return 0;  
}

Output :

Tong cac so trong tam giac tren : 45


4. Ma Trận Chuyển Vị

Ma trận chuyển vị của ma trận A có n hàng và m cột là ma trận AT có m hàng và n cột, trong đó các phần tử ở hàng của ma trận A sẽ thành cột của của ma trận AT

Ma trận bằng nhau khi nào?

Trường hợp đặc biệt, nếu cả đường chéo chính chỉ gồm các số 1 thì đó gọi là ma trận đơn vị (identity or unit matrix). Hai ma trận bằng nhau khi chúng có cùng shape, các cặp phần tử tương ứng đều bằng nhau.

Ma trận tam giác trên là ma trận như thế nào?

Một ma trận vuông được gọi là ma trận tam giác dưới nếu tất cả các mục bên trên đường chéo chính bằng không. Tương tự, một ma trận vuông được gọi là ma trận tam giác trên nếu tất cả các mục bên dưới đường chéo chính bằng không. Một ma trận tam giác là một ma trận tam giác dưới hoặc tam giác trên.

Ma trận tam giác trên Tiếng Anh là gì?

Ma trận tam giác và ma trận đường chéo Nếu mọi phần tử của A ở bên dưới đường chéo chính bằng 0, thì A được gọi là ma trận tam giác trên (upper triangular matrix). Tương tự, nếu mọi phần tử của A ở bên trên đường chéo chính bằng 0, thì A được gọi là ma trận tam giác dưới (lower triangular matrix).

Ma trận A T là gì?

Trong đại số tuyến tính, ma trận chuyển vị (Tiếng Anh: transpose) là một ma trận mà ở đó các hàng được thay thế bằng các cột, và ngược lại. Để có được ma trận chuyển vị, chúng ta có thể sử dụng toán tử lật ma trận theo đường chéo chính của nó. Ma trận chuyển vị của ma trận A được ký hiệu là AT.