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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 453|回復: 1
收起左側

3x3矩陣的加法、乘法運算(運用了2維數組)

[復制鏈接]
ID:342822 發表于 2025-9-25 16:29 | 顯示全部樓層 |閱讀模式
'====================================================
' 程序: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. 程序通過串口輸出結果,便于調試和驗證矩陣運算的正確性。

')


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的獎勵!

查看全部評分

回復

使用道具 舉報

ID:342822 發表于 2025-9-25 18:44 | 顯示全部樓層

運行結果

運行結果

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表