Перевести из Паскаля в C#
Формулировка задачи:
Код программы с Паскаль, перевести в C# не получается.
Программа проходит по диагоналям матрицы (змее), начиная с последнего элемента 1й строки. Для сортировки прописал через if правила "отскока" от стенок, вот их перевести на C# и не получается. Прописываю все это на Си, но ничего хорошего не происходит.
Вот код с Паскаля:
var
a:array[1..40,1..40]of integer;
b:array[1..100] of integer;
z,u,w,h,n, n2, m,k,i,j,tt:integer;
begin
clrscr;
randomize;
write('ГђГ*çìåð Г¬Г*òðèöû n=');
readln(n);
writeln('_____________________________');
n2:=n;
writeln('ÈñõîäГ*Г*Гї Г¬Г*òðèöГ*:');
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(50);
////
begin
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:2,' ');
writeln;
end;
end;
/////////
m:=0;
i:=1;
j:=n;
k:=1;
//////
for z:=1 to n*n do
begin
// if (a[ij]<21) then
begin
m:=m+1;
b[m]:=a[i,j];
end;
i:=i+k;
j:=j+k;
if (i=0)and(j<>0) then
begin
i:=1;
k:=-k;
end;
if (j>n)and(i<=n) then
begin
j:=n;
k:=-k;
end;
if i>n then
begin
i:=n;
j:=j-2;
k:=-k;
end;
if j=0 then
begin
j:=1;
i:=i+2;
k:=-k;
end;
end;
writeln('_____________________________');
writeln('ÇìåéêГ*:');
for i:=1 to m do
write(b[i],' ');
writeln;
writeln('_____________________________');Решение задачи: «Перевести из Паскаля в C#»
textual
Листинг программы
static void Main(string[] args)
{
int[,] a = new int[40, 40];
int[] b = new int[100];
int i, j;
Console.Clear();
Random rdm = new Random();
Console.Write("Размер матрицы n=");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("<br>");
Console.WriteLine("Исходная матрица:");
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++) a[i, j] = rdm.Next(50);
//
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++) Console.Write("{0,2} ", a[i, j]);
Console.WriteLine();
}
/////////
int m = 0;
i = 1;
j = n;
int k = 1;
//////
for (int z = 1; z <= n * n; z++)
{
m++;
b[m] = a[i, j];
i += k;
j += k;
if (i == 0 && j != 0)
{
i = 1;
k -= k;
}
if (j > n && i <= n)
{
j = n;
k -= k;
}
if (i > n)
{
i = n;
j -= 2;
k -= k;
}
if (j == 0)
{
j = 1;
i += 2;
k -= k;
}
}
Console.WriteLine("<br>");
Console.WriteLine("Змейка:");
for (i = 1; i <= m; i++) Console.WriteLine("{0} ", b[i]);
Console.WriteLine("\n<br>");
Console.ReadKey();
}
}