Go語言程式顯示上三角矩陣


在本文中,我們將編寫一個Go語言程式來列印任何給定矩陣的上三角矩陣。

引言 − 如果方陣的主對角線以下的值都為零,則該方陣稱為上三角矩陣。只有當矩陣是方陣時(即行數和列數相同),才能以其上三角形式顯示矩陣。典型上三角矩陣的階數為 N X N。

方法一:使用for迴圈顯示上三角矩陣

在這種方法中,我們將編寫一個Go語言程式,使用main()函式中的for迴圈來顯示上三角矩陣。

演算法

步驟1 − 匯入fmt包。

步驟2 − 開始main()函式。

步驟3 − 初始化int型別的變數和一個3 X 3大小的矩陣。

步驟4 − 現在,使用fmt.Println()函式在螢幕上顯示矩陣。

步驟5 − 要以其上三角形式顯示矩陣,請使用for迴圈和if條件的組合。for迴圈幫助我們迭代陣列。

步驟6 − 對於每次迭代,如果列數大於行數,則列印矩陣的相應元素;否則,列印其位置的零。

步驟7 − 重複此過程,直到迭代完矩陣的每個元素並列印相應的值。

示例

使用for迴圈顯示上三角矩陣的Go語言程式。

package main
import "fmt"
func main() {
   
   // initializing variables
   var i, j int
   matrixA := [3][3]int{
      {3, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }

   // printing matrices on the screen
   fmt.Println("The given matrix is:")
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         fmt.Print(matrixA[i][j], "\t")
      }
      fmt.Println()
   }
   
   // printing a new line
   fmt.Println()

   // getting upper triangle
   fmt.Println("The upper triangular matrix obtained from the matrix is:")
   for i = 0; i < 3; i++ {
      fmt.Println()
      for j = 0; j < 3; j++ {
         if j >= i {
            fmt.Print(matrixA[i][j], "\t")
         } else {
            fmt.Print("0 ", "\t")
         }
      }
   }
   fmt.Println()
}

輸出

The given matrix is:
3    1    2
4    5    6
8    9   10

The upper triangular matrix obtained from the matrix is:
3    1    2
0    5    6
0    0   10

方法二:使用使用者定義函式列印上三角矩陣

在這種方法中,我們將編寫一個Go語言程式,使用外部使用者定義函式來列印上三角矩陣。該函式將接受矩陣作為引數,並將轉換並列印 N X N 階的上三角矩陣。

演算法

步驟1 − 匯入fmt包。

步驟2 − 建立一個名為upperTriangle()的函式來查詢上三角矩陣。此函式接受矩陣作為引數,並返回最終矩陣作為結果。

步驟3 − 要以其上三角形式顯示矩陣,請使用for迴圈和if條件的組合。for迴圈幫助我們迭代陣列。

步驟4 − 對於每次迭代,如果列數大於行數,則列印矩陣的相應元素;否則,列印其位置的零。

步驟5 − 完成所有迭代後,返回結果。

步驟6 − 現在,開始main()函式。初始化整數資料型別的矩陣並將值儲存到其中。此外,在螢幕上列印此矩陣。

步驟7 − 透過將兩個矩陣作為引數傳遞給函式並存儲結果來呼叫upperTriangle()函式。

步驟8 − 使用fmt.Println()函式在螢幕上列印獲得的最終結果。

示例

使用外部函式列印上三角矩陣的Go語言程式。

package main
import "fmt"

// creating the upper triangular matrix function
func upperTriangle(matrixA [3][3]int) [3][3]int {
   var result [3][3]int
   for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
         if j >= i {
            result[i][j] = matrixA[i][j]
         } else {
            result[i][j] = 0
         }
      }
   }
   return result
}
func main() {

   // initializing variables
   var i, j int
   matrixA := [3][3]int{
      {3, 1, 2},
      {4, 5, 6},
      {8, 9, 10},
   }

   // printing matrices on the screen
   fmt.Println("The given matrix is:")
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         fmt.Print(matrixA[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()

   // calling the upperTriangle() function
   result := upperTriangle(matrixA)
   fmt.Println("The upper triangular matrix obtained from the above matrix is:")
   for i = 0; i < 3; i++ {
      for j = 0; j < 3; j++ {
         fmt.Print(result[i][j], "\t")
      }
      fmt.Println()
   }
   fmt.Println()
}

輸出

The given matrix is:
3    1    2
4    5    6
8    9   10

The upper triangular matrix obtained from the above matrix is:
3    1    2
0    5    6
0    0   10

結論

我們已經成功地編譯並執行了一個Go語言程式來列印上三角矩陣以及一個示例。為實現此目的,我們使用了兩個程式:一個程式使用main()函式中的for迴圈顯示上三角矩陣,另一個程式使用使用者定義函式來實現結果。

更新於:2023年1月6日

244 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.