В побочную диагональ матрицы вывести элементы каждого столбца с минимальными кодами - C#

Узнай цену своей работы

Формулировка задачи:

Горю на лабе. Вот условие. Помогите кто чем может. Для кого-то несколько минут, а для меня завал( Дана символьная матpица А(5,5). В побочную диагонали вывести элементы каждого столбца с минимальными кодами. Тpанспониpовать полученную матpицу и повтоpить указанные действия еще pаз. Из алфавитных символов составить 2 стpоки и выполнить их сpавнение. В исходной матрице заменить все символы на их коды по таблице ASCII и в дальнейшем рассматривать матрицу как числовую.

Решение задачи: «В побочную диагональ матрицы вывести элементы каждого столбца с минимальными кодами»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication3
{
    enum Mode:byte
    {
        Codes,
        Numbers
    }
   sealed  class MyArray
   {
       private readonly char[,] _arr;
       private  int[,] _tmpArr;
       public MyArray(int x)
       {
           _arr=new char[x,x];
           _tmpArr=new int[x,x];
           FillArray();
           PrintArray(_arr,"Начальный массив:",Mode.Codes);
           PrintArray(_tmpArr,"Числовые значения:",Mode.Numbers);
          TakeminElements();
          PrintArray(_tmpArr, "Перестановка минимальных элементов:", Mode.Numbers);
           Transp();
          PrintArray(_tmpArr, "Транспонирование:", Mode.Numbers);
           PrintArray(_tmpArr, "Транспонирование:", Mode.Codes);
       }
 
       private void FillArray()
       {
           int tmp;
           var rnd = new Random();
           for (int i = 0; i < _arr.GetLength(0); i++)
           {
               for (int y = 0; y < _arr.GetLength(1); y++)
               {
                   tmp = rnd.Next(100, 200);
                   _arr[i, y] = Convert.ToChar(tmp);
                   _tmpArr[i, y] = tmp;
               }
           }
       }
 
       private void TakeminElements()
       {
          
           var minElem=new int[_arr.GetLength(1)];
           int tmp=int.MaxValue;
           for (int i = 0; i < _tmpArr.GetLength(0); i++)
           {
               for (int y = _tmpArr.GetLength(1)-1; y >=0; y--)
               {
 
                   if (_tmpArr[y, i] < tmp)
                   {
                       tmp = _tmpArr[y, i];
                       minElem[i] = tmp;  
                   }
               }
               tmp = int.MaxValue;
           }
           for (int i=_tmpArr.GetLength(0),y=0;i>0;i--,y++)
           {
               _tmpArr[i - 1, y] =minElem[y];
           }
 
       }
 
       private void PrintArray(char[,]myArr,string text,Mode mode)
       {
           SetConsoleColor();
           Console.WriteLine(text);
           ClearConsoleColor();
           for (int i = 0; i < myArr.GetLength(0); i++)
           {
               for (int y = 0; y < myArr.GetLength(1); y++)
               {
                   if (mode == Mode.Codes)
                   {
                       Console.Write((char)myArr[i, y] + " ");
                   }
                   else
                   {
                       Console.Write(myArr[i, y] + " ");
                   }
               }
               Console.WriteLine("\n");
           }
           Console.WriteLine();
       }
       private void PrintArray(int[,] myArr, string text, Mode mode)
       {
           SetConsoleColor();
           Console.WriteLine(text);
           ClearConsoleColor();
           for (int i = 0; i < myArr.GetLength(0); i++)
           {
               for (int y = 0; y < myArr.GetLength(1); y++)
               {
                   if (mode == Mode.Codes)
                   {
                       Console.Write((char)myArr[i, y] + " ");
                   }
                   else
                   {
                       Console.Write(myArr[i, y] + " ");
                   }
               }
               Console.WriteLine("\n");
           }
           Console.WriteLine();
       }
 
       private void SetConsoleColor()
       {
           Console.ForegroundColor = ConsoleColor.DarkCyan;
       }
 
       private void ClearConsoleColor()
       {
           Console.ForegroundColor = ConsoleColor.Gray;
       }
 
       private void Transp()
       {
           int tmp;
           for (int i = 0; i < _tmpArr.GetLength(0); i++)
           {
               for (int j = 0; j <i; j++)
               {
                   tmp = _tmpArr[i,j];
                   _tmpArr[i,j] = _tmpArr[j,i];
                   _tmpArr[j,i] = tmp;
               }
           }    
       }
   }
 
    static class Program
    {
 
        static void Main(string[] args)
        {
            var a = new MyArray(5);
        }
 
    }
}

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


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

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

12   голосов , оценка 3.75 из 5
Похожие ответы