ใบงานที่ 7.3
แมตริกซ์ทรานสโพส
ให้ผู้เรียนศึกษาใบความรู้ที่
7.2 จากนั้นสร้างโปรเจ็กต์และเขียนโปรแกรมจากโจทย์ที่กำหนดให้ต่อไปนี้
เพิ่มเมท็อดชื่อ
TransposeMatrix ลงในโปรแกรมจากแบบฝึกหัดที่แล้ว เพื่อคำนวณทรานสโพส
แมตริกซ์
(การสลับเปลี่ยนแถวและคอลัมน์) จากแมตริกซ์ที่รับเข้ามา
ตัวเมท็อดจะรับแมตริกซ์ในรูป
พารามิเตอร์แบบอาเรย์สองมิติและส่งค่ากลับเป็นอาเรย์ตัวใหม่ที่เก็บค่าแมตริกซ์ที่ถูกทรานสโพสแล้ว
using System;
class Matrix {
// คัดลอกเมท็อด ShowMatrix และ ReadMatrix
// จากแบบฝึกหัดที่แล้วมาปะในตำแหน่งนี้
static int[,] TransposeMatrix(int[,] m) {
int[,] mt = new
int[____________________,____________________];
for (int i = 0; i
< m.GetLength(0); i++)
for (int j = 0; j
< m.GetLength(1); j++)
______________________________________________________;
return mt;
}
static void
Main() {
int num_rows,
num_cols;
int[,] A, At;
Console.Write("How
many rows? ");
num_rows =
int.Parse(Console.ReadLine());
Console.Write("How
many columns? ");
num_cols =
int.Parse(Console.ReadLine());
A =
ReadMatrix(num_rows, num_cols);
Console.WriteLine("Matrix
A is");
ShowMatrix(A);
Console.WriteLine("Transpose
of Matrix A is");
At =
TransposeMatrix(A);
ShowMatrix(At);
}
}
|
ตัวอย่างผลการทำงาน
How many rows? 2
How many columns?
3
Enter
element[1,1]: 1
Enter
element[1,2]: 2
Enter
element[1,3]: 3
Enter
element[2,1]: 4
Enter
element[2,2]: 5
Enter
element[2,3]: 6
Matrix A is
1 2 3
4 5 6
Transpose of
Matrix A is
1 4
2 5
3 6
|
using System;
class Matrix
{
static void ShowMatrix(int[,]
m)
{
for (int i = 0; i < m.GetLength(0); i++)
{
for
(int j = 0; j < m.GetLength(1); j++)
{
Console.Write("{0,4}", m[i, j]);
}
Console.WriteLine();
}
}
static int[,] ReadMatrix(int
nrows, int ncols)
{
int[,]
m = new int[nrows,
ncols];
for (int i = 0; i < nrows; i++)
{
for
(int j = 0; j < ncols; j++)
{
Console.Write("Enter element[{0},{1}]: ", i + 1, j +
1);
m[i, j] = int.Parse(Console.ReadLine());
}
}
return
m;
}
static int[,] TransposeMatrix(int[,]
m)
{
int[,]
mt = new int[m.GetLength(1),
m.GetLength(0)];
for (int i = 0; i < m.GetLength(0); i++)
for (int j = 0; j < m.GetLength(1); j++)
mt[j, i] = m[i, j];
return
mt;
}
static void Main()
{
int
num_rows, num_cols;
int[,]
A, At;
Console.Write("How many rows? ");
num_rows = int.Parse(Console.ReadLine());
Console.Write("How many columns? ");
num_cols = int.Parse(Console.ReadLine());
A = ReadMatrix(num_rows, num_cols);
Console.WriteLine("Matrix A is");
ShowMatrix(A);
Console.WriteLine("Transpose of Matrix A is");
At = TransposeMatrix(A);
ShowMatrix(At);
Console.Read();
}
}
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น