Golang程序 显示上三角矩阵

在这篇文章中,我们将编写一个go语言程序来打印任何给定矩阵的上三角矩阵。

介绍 - 如果一个正方形矩阵的主对角线以下的数值为零,则称为上三角矩阵。矩阵只有在正方形的情况下才能以上三角形式显示,即它必须有相同的行数和列数。一个典型的上三角矩阵的顺序是N X N。

方法1:使用For循环显示上三角矩阵

在这个方法中,我们将编写一个go语言程序,在main()函数中使用for循环来显示上三角矩阵。

算法

第1步 --导入fmt包。

第2步 --启动main()函数。

第3步 – 初始化int类型的变量和一个大小为3X3的矩阵。

第4步 – 现在,使用fmt.Println()函数在屏幕上显示矩阵。

第5步 - 为了显示矩阵的上三角形式,使用for循环和if条件的组合。for 循环帮助我们在数组上进行迭代。

第6步 - 在每次迭代中,如果列数大于行数,则打印矩阵中相应的元素,否则就打印零。

第7步 - 重复这个过程,直到矩阵的每个元素都被迭代,并打印出相应的值。

例子

Golang程序使用for循环来显示上三角矩阵。

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

方法2:使用用户定义的函数打印上三角矩阵

在这个方法中,我们将编写一个go语言程序,使用一个外部用户定义的函数来打印上三角矩阵。该函数将接受一个矩阵作为参数,并将转换和打印N X N阶的上三角矩阵。

算法

第1步 --导入fmt包。

第2步 - 创建一个函数来寻找上三角矩阵,名为 upperTriangle()。该函数接受矩阵作为参数,并返回最终的矩阵作为结果。

第3步 - 使用for循环和if条件的组合来显示矩阵的上三角形式。for 循环帮助我们对数组进行迭代。

第4步 - 对于每一次迭代,如果列数大于行数,则打印矩阵中相应的元素,否则打印零。

第5步 - 一旦所有的迭代完成,返回结果。

第6步 - 现在,启动main()函数。初始化一个整数数据类型的矩阵,并为其存储数值。此外,在屏幕上打印这个矩阵。

第7步 – 调用upperTriangle()函数,将两个矩阵作为参数传给该函数并存储结果。

第8步 - 使用fmt.Println()函数在屏幕上打印出最终结果。

例子

Golang程序使用外部函数来打印上三角矩阵。

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 循环来显示上三角矩阵,另一个是使用一个用户定义的函数来实现这个结果。