第6講 配列
第5話 もとの行列・左右反転した行列・上限反転した配列・転置行列のすべての表示
(データは毎回異なります。)
を実現するプログラム例
//以下C#を始めるためのお呪い
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//以上C#を始めるためのお呪い
namespace a //初心者はお呪い=決まり事と思い一切気にしない
{
class Program //初心者はお呪い=決まり事と思い一切気にしない
{
static void Main(string[] args) //私は社長だ。
{
f();
}
static void f()
{
int[,] a = new int[3,4];
Random r = new Random();
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
a[i, j] = r.Next(100);
}
}
for (int i = 0; i < 3; i++)
{
for(int j = 0; j < 4; j++)
{
if(a[i,j] < 10)Console.Write(" {0:d} ", a[i, j]);
if(a[i,j] >= 10)Console.Write("{0:d} ", a[i, j]);
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (a[i, 3 - j] < 10) Console.Write(" {0:d} ", a[i,
3 - j]);
if (a[i, 3 - j] >= 10) Console.Write("{0:d} ", a[i,
3 - j]);
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (a[2 - i, j] < 10) Console.Write(" {0:d} ", a[2
- i, j]);
if (a[2 - i, j] >= 10) Console.Write("{0:d} ", a[2
- i, j]);
}
Console.WriteLine();
}
Console.WriteLine();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
if (a[j, i] < 10) Console.Write(" {0:d} ", a[j,
i]);
if (a[j, i] >= 10) Console.Write("{0:d} ", a[j,
i]);
}
Console.WriteLine();
}
}
}
}
社員f()の負担が大きすぎますので、
社員f()はデータ発生のみを担当して、
もとの行列の表示・左右反転行列の表示・上限反転行列の表示・転置行列の表示
をそれぞれ異なる社員にやらせたいところですが、
配列を送る方法を学んでいない段階では仕方がありません。
第8講の関数(2)において、分業を実現しますが、
現時点では妥協するしかありません。
次は、3次元配列
int[,,] a = new int[3,10,6]; //最初の添え字は学期、2番目の添え字は出席番号、3番目は各教科に対応
を利用して、成績一覧表
をつくりましょう。
データはもちろん100未満のランダムデータです。
表示位置の調整は試行錯誤するよりありません。
出席番号は1桁と2桁の場合分け、
教科得点については、1桁と2桁と3桁の場合分けをして、
if文で対応するしかありません。
3次元for文と3次元配列になり初心者には難しい課題ですが、
30分は粘りましょう。
30分試行錯誤してうまくいかないときは次話をクリック!