Pascal 实现矩阵乘法:代码详解与步骤剖析
```pascal program MatrixMultiplication; uses SysUtils; const MaxN = 100; MaxM = 100; MaxP = 100; MaxQ = 100; type TMatrix = array[1..MaxN, 1..MaxM] of integer; var n, m, p, q: integer; A: TMatrix; B: TMatrix; C: array[1..MaxN, 1..MaxQ] of integer; i, j, k: integer; begin // 读取矩阵 A 的行数 n 和列数 m read(n, m); // 读取矩阵 A 的元素 for i := 1 to n do for j := 1 to m do read(A[i, j]); // 读取矩阵 B 的行数 p 和列数 q read(p, q); // 读取矩阵 B 的元素 for i := 1 to p do for j := 1 to q do read(B[i, j]); // 初始化结果矩阵 C for i := 1 to n do for j := 1 to q do C[i, j] := 0; // 进行矩阵相乘 for i := 1 to n do for j := 1 to q do for k := 1 to m do C[i, j] := C[i, j] + A[i, k] * B[k, j]; // 输出结果矩阵 C for i := 1 to n do begin for j := 1 to q do begin if j > 1 then write(' '); write(C[i, j]); end; writeln; end; end. ``` 代码解释: 1. 常量和类型定义: - 定义了几个常量 `MaxN`、`MaxM`、`MaxP`、`MaxQ` 来表示矩阵可能的最大行数和列数。 - 定义了类型 `TMatrix` 为一个二维数组类型,用于存储矩阵。 2. 变量声明: - `n`、`m` 表示矩阵 `A` 的行数和列数,`p`、`q` 表示矩阵 `B` 的行数和列数。 - `A` 和 `B` 是存储输入矩阵的二维数组,`C` 是存储结果矩阵的二维数组。 - `i`、`j`、`k` 作为循环控制变量。 3. 输入矩阵: - 先读取矩阵 `A` 的行数 `n` 和列数 `m`,然后通过嵌套循环读取矩阵 `A` 的元素。 - 接着读取矩阵 `B` 的行数 `p` 和列数 `q`,再用嵌套循环读取矩阵 `B` 的元素。 4. 初始化结果矩阵: - 使用嵌套循环将结果矩阵 `C` 的所有元素初始化为 0。 5. 矩阵相乘: - 通过三层嵌套循环完成矩阵相乘操作,外层两层循环遍历结果矩阵 `C` 的每个位置,内层循环计算对应位置的元素值。 6. 输出结果矩阵: - 使用嵌套循环遍历结果矩阵 `C`,按行输出结果,元素之间用空格分隔,每行结束后换行。 ######[AI问答 | 791点数解答 | 2025-12-09 12:31:32]
- C++ 实现:轻松计算两个矩阵的乘法并输出结果(字节豆包 | 381点数解答 | 2025-12-03 19:20:23)123
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)352
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)237
- PyCharm 中用 Selenium 编写自动化测试脚本,轻松登录 eShop 测试平台并点击“我的订单”(字节豆包 | 304点数解答 | 2024-11-06 15:38:30)442
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)324
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)477
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)363
- 开启多语言编程模式:C++、Python、Pascal、Java、C语言为你解答问题!(字节豆包 | 33点数解答 | 2025-12-13 19:57:46)56
- 用Pascal和C语言解单调方程:求最小正小数x使S(x)>y(DeepSeek | 1664点数解答 | 2025-12-17 17:52:32)35
- 编程五语齐上阵!满足你问题的多样解答需求(DeepSeek | 34点数解答 | 2025-12-27 19:46:30)52
- Pascal实现电视节目观看数量最大化问题的解决方案(字节豆包 | 587点数解答 | 2026-03-18 18:01:57)21
- Free Pascal瑞士轮AC代码:适配fpc 3.0.4的qsort与循环变量修复方案(阿里通义 | 1396点数解答 | 2026-03-20 12:31:01)20