Перевести из Паскаля в 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();
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.462 из 5