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.