欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 3x3矩陣的加法、乘法運算(運用了2維數組) [打印本頁]

作者: taotie    時間: 2025-9-25 16:29
標題: 3x3矩陣的加法、乘法運算(運用了2維數組)
'====================================================
' 程序:3x3矩陣運算測試版
' 功能:實現兩個3x3矩陣的加法、乘法運算并顯示結果
'本程序由deekseep生成~~~~
'====================================================

' 單片機配置文件
$regfile = "m16def.dat"            ' 設置晶振頻率為8MHz
$crystal = 8000000                 ' 設置串口波特率為9600
$baud = 9600

' 定義3x3矩陣變量(索引從1開始)
Dim MatrixA(3 , 3) As Single    ' 矩陣A
Dim MatrixB(3 , 3) As Single    ' 矩陣B
Dim MatrixResult(3 , 3) As Single  ' 結果矩陣

' 定義循環計數器
Dim I As Byte , J As Byte , K As Byte

' 定義臨時變量用于計算
Dim Temp As Single
Dim Temp1 As Single
Dim Temp2 As Single

' 預設測試矩陣數據
' 矩陣A:1-9的連續數字
MatrixA(1,1) = 1 : MatrixA(1,2) = 2 : MatrixA(1,3) = 3
MatrixA(2,1) = 4 : MatrixA(2,2) = 5 : MatrixA(2,3) = 6
MatrixA(3,1) = 7 : MatrixA(3,2) = 8 : MatrixA(3,3) = 9

' 矩陣B:9-1的遞減數字
MatrixB(1,1) = 9 : MatrixB(1,2) = 8 : MatrixB(1,3) = 7
MatrixB(2,1) = 6 : MatrixB(2,2) = 5 : MatrixB(2,3) = 4
MatrixB(3,1) = 3 : MatrixB(3,2) = 2 : MatrixB(3,3) = 1

' 主程序開始
Main:
   ' 顯示矩陣A
   Print "矩陣A:"
   Gosub Print_matrixa     '調用打印矩陣A的子程序
wait 2  
Print
   ' 顯示矩陣B
   Print "矩陣B:"
   Gosub Print_matrixb     ''調用打印矩陣B的子程序
wait 2
Print  
   ' 計算并顯示矩陣加法結果
   Print "加法結果(A+B):"

   Gosub Matrix_add        ' 調用矩陣加法運算子程序
   Gosub Print_result      ' 調用打印結果矩陣的子程序
wait 2
Print  
   ' 計算并顯示矩陣乘法結果
   Print "乘法結果(A*B):"

   Gosub Matrix_mul        ' 調用矩陣乘法運算子程序
   Gosub Print_result      ' 調用打印結果矩陣的子程序

   ' 程序結束
   End

' 打印矩陣A的子程序
Print_matrixa:
   ' 外層循環遍歷行
   For I = 1 To 3
      ' 內層循環遍歷列
      For J = 1 To 3
         ' 打印當前元素并加空格
         Print MatrixA(i , J) ; " ";
waitms 200
      Next J
      ' 換行到下一行
      Print
   Next I
Return

' 打印矩陣B的子程序
Print_matrixb:
   For I = 1 To 3
      For J = 1 To 3
         Print MatrixB(i , J) ; " ";
waitms 200
      Next J
      Print
   Next I
Return

' 打印結果矩陣的子程序
Print_result:
   For I = 1 To 3
      For J = 1 To 3
         Print MatrixResult(i , J) ; " ";  '打印當前果矩陣元素并加空格
waitms 300
      Next J
      Print
   Next I
Return

' 矩陣加法運算子程序
Matrix_add:
   For I = 1 To 3        ' 遍歷行
      For J = 1 To 3     ' 遍歷列
         ' 對應位置元素相加
         MatrixResult(i , J) = MatrixA(i , J) + MatrixB(i , J)
      Next J
   Next I
Return

' 矩陣乘法運算子程序
Matrix_mul:
   For I = 1 To 3        ' 遍歷結果矩陣的行
      For J = 1 To 3     ' 遍歷結果矩陣的列
         Temp = 0        ' 初始化累加器        
         ' 矩陣乘法:A的第i行與B的第j列點乘
         For K = 1 To 3                  ' 遍歷公共維度           
            Temp1 = MatrixA(i , K)       ' 單步計算:先取矩陣A第i行第K列的值           
            Temp2 = MatrixB(k , J)       ' 再取矩陣B第K行第j列的值           
            Temp1 = Temp1 * Temp2        ' 然后相乘得到單個乘積           
            Temp = Temp + Temp1          ' 最后累加到臨時變量
         Next K      
         MatrixResult(i , J) = Temp      ' 將計算結果存入結果矩陣
      Next J
   Next I
Return

'(
程序功能說明:
這是一個用于ATmega16單片機的3x3矩陣運算程序,主要功能包括:

1. 矩陣定義:預定義了兩個3x3測試矩陣(MatrixA和MatrixB)

2. 矩陣顯示:可以打印顯示原始矩陣和計算結果

3. 矩陣加法:實現兩個矩陣的對應元素相加

4. 矩陣乘法:實現標準的矩陣乘法運算

5. 程序通過串口輸出結果,便于調試和驗證矩陣運算的正確性。

')



作者: taotie    時間: 2025-9-25 18:44






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1